Наивный байесовский метод для определения темы с использованием подхода «Bag of Words» - PullRequest
12 голосов
/ 06 мая 2010

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

Кроме того, я пытаюсь улучшить свой словарь по мере продвижения. Первоначально у меня есть несколько слов, которые отображаются на темы (жестко). В зависимости от вхождения слов, отличных от тех, которые уже сопоставлены. И в зависимости от вхождения этих слов я хочу добавить их в сопоставления, следовательно, улучшая и изучая новые слова, которые отображаются в теме. А также изменение вероятностей слов.

Как мне это сделать? Правильный ли мой подход?

Какой язык программирования лучше всего подходит для реализации?

1 Ответ

26 голосов
/ 06 мая 2010

Существующие реализации наивного Байеса

Возможно, вам было бы лучше использовать только один из существующих пакетов, который поддерживает классификацию документов с использованием наивного байесовского алгоритма, например ::

Python - Для этого используется основанный на Python Набор естественных языков (NLTK) , см. Классификация документов раздел в свободном доступе NLTK book .

Ruby - Если Ruby больше подходит для вас, вы можете использовать Classifier gem. Вот пример кода, который определяет , являются ли цитаты Family Guy смешными или не смешными .

Perl - Perl имеет модуль Algorithm :: NaiveBayes , в комплекте с примером фрагмента использования в пакете синопсис .

C # - программисты C # могут использовать nBayes . На домашней странице проекта приведен пример кода для простого классификатора спама / не спама.

Java - у людей на Java есть Classifier4J . Вы можете увидеть фрагмент кода обучения и оценки здесь .

Классификация начальной загрузки по ключевым словам

Звучит так, как будто вы хотите начать с набора ключевых слов, которые известны для определенных тем , а затем использовать эти ключевые слова для загрузки классификатора ,

Это довольно умная идея. Взгляните на статью Классификация текста по начальной загрузке с ключевыми словами, EM и усадкой , написанную McCallum and Nigam (1999). Следуя этому подходу, они смогли повысить точность классификации с 45%, которые они получили, используя только жестко закодированные ключевые слова, до 66%, используя загрузочный классификатор Наивного Байеса. По их данным, последнее близко к человеческому уровню согласия, так как люди соглашались друг с другом в отношении ярлыков документов в 72% случаев.

...