Использование Lucene / Mahout для поиска определяющих терминов в предварительно определенных группах документов - PullRequest
0 голосов
/ 09 марта 2012

У меня есть набор документов, которые были разделены на категории Хорошая и Плохая. Я хочу быть в состоянии предсказать, к какой категории будут относиться новые документы. Одна вещь, на которую я обращаю внимание, - это поиск терминов, которые лучше всего определяют каждую категорию, и поиск этих терминов в новых документах.

Некоторое время назад я возился с кластеризацией Mahout с использованием векторов терминов Lucene, когда узнал о TF-IDF. Мне кажется, что я ищу что-то похожее, где я нашел бы TermFrequency из одной категории, но затем применил InverseDocumentFrequency этих терминов в другой категории.

Кто-нибудь знает лучший подход к поиску терминов, которые однозначно определяют документы в одной из этих групп, но не в другой?

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

В ситуациях, подобных этому, работа с соотношениями различных условных вероятностей часто выполняется.

Так что в вашем случае это будет:

P (w | хорошо) / P (w)

и затем ранжируйте по этому.

Оценки были бы только максимальными вероятностями из подсчетов:

P (w | хорошо) = n (w, хорошо) / n (хорошо)

P (w) = n (w) / N = n (w) / (n (хорошо) + n (плохо))

N - общее количество токенов, n (*) - количество токенов с ограничениями.

0 голосов
/ 09 марта 2012

Моя рекомендация - использовать байесовский классификатор Махоута 1002 *.Вы пометите свои документы как «хорошие» или «плохие», и тогда Mahout сможет предсказать метку неподготовленного документа.В Википедии есть больше в байесовских классификаторах.

Данные Lucene могут быть использованы в качестве входных данных для mahout, см., Например, эту серию сообщений в блоге .

...