Я создаю векторы TFIDF, используя Apache Mahout. Уточняю EnglishAnalyzer как часть документа tokenizing так:EnglishAnalyzer с лучшей фильтрацией остановки мира?
DocumentProcessor.tokenizeDocuments(documentsSequencePath, EnglishAnalyzer.class, tokenizedDocumentsPath, configuration);
, который дает мне следующий вектор для документа я назвал business.txt
. Я был удивлен, увидев бесполезные слова там, как have
, on
, i
, e.g.
. У одного из моих других документов больше нагрузок.
Что является самым простым способом улучшить качество терминов, которые он находит? Я знаю, что EnglishAnalyzer может быть передан список стоп-слов, но конструктор получает вызов через отражение, поэтому кажется, что я не могу этого сделать.
Должен ли я писать свой собственный анализатор? Я немного смущен тем, как составлять токенизаторы, фильтры и т. Д. Могу ли я повторно использовать EnglishAnalyzer вместе со своими собственными фильтрами? Подкласс EnglishAnalyzer не представляется возможным таким образом.
# document: tfidf-score term
business.txt: 109 comput
business.txt: 110 us
business.txt: 111 innov
business.txt: 111 profit
business.txt: 112 market
business.txt: 114 technolog
business.txt: 117 revolut
business.txt: 119 on
business.txt: 119 platform
business.txt: 119 strategi
business.txt: 120 logo
business.txt: 121 i
business.txt: 121 pirat
business.txt: 123 econom
business.txt: 127 creation
business.txt: 127 have
business.txt: 128 peopl
business.txt: 128 compani
business.txt: 134 idea
business.txt: 139 luxuri
business.txt: 139 synergi
business.txt: 140 disrupt
business.txt: 140 your
business.txt: 141 piraci
business.txt: 145 product
business.txt: 147 busi
business.txt: 168 funnel
business.txt: 176 you
business.txt: 186 custom
business.txt: 197 e.g
business.txt: 301 brand
Спасибо, я ценю помощь в предоставлении кода, который будет выполнять эту работу. Я немного удивлен, что нет более умного способа повторного использования анализаторов без копирования и вставки. –
@ Sridhar-Sarnobat - Анализаторы действительно довольно просты в создании. Вам в значительной степени просто нужно реализовать цепочку анализа в 'createComponents'. Не сомневайтесь, поэтому они отмечены как окончательные. На самом деле нет смысла расширять их, в общем, и если вы реализуете собственный анализатор, вы действительно должны * смотреть на токенизатор и фильтры, которые применяются. – femtoRgon
Хорошо спасибо за совет. Мне нужно начать изучать, как писать свой собственный анализатор и что каждый компонент его на самом деле делает. –