Я пытаюсь реализовать наивный подход bayseian для нахождения темы данного документа или потока слов. Есть ли существует Наивный Байесовский подход, что я смог искать это?
Кроме того, я пытаюсь улучшить свой словарь, поскольку я продвигаюсь. Первоначально, у меня есть набор слов, которые отображаются на (трудно кодированные) темы. В зависимости от возникновения слов кроме тех, которые уже отображаются. И в зависимости от случаев этих слов я хочу добавить их к отображениям, следовательно улучшаясь и узнавая о новых словах ту карту к теме. И также изменяя вероятности слов.
Как я должен пойти о выполнении этого? Действительно ли мой подход является правильным?
Какой язык программирования подошел бы лучше всего для реализации?
Существующие реализации наивного байесовского метода
Вам, вероятно, будет лучше просто использовать один из существующих пакетов, который поддерживает классификацию документов с использованием наивного байесовского метода, например:
Python - чтобы сделать это с помощью Python Natural Language Toolkit (NLTK) , см. Раздел Document Classification в свободно доступной книге NLTK .
Ruby - Если Ruby вам больше нравится, вы можете использовать гем Classifier . Вот пример кода, который определяет , являются ли цитаты Гриффинов забавными или несмешными .
Perl - Perl имеет модуль Algorithm :: NaiveBayes , вместе с примером использования фрагмента в синопсисе пакета .
C # - Программисты на C # могут использовать nBayes . На домашней странице проекта есть образец кода для простого классификатора спама / не спама.
Java - У разработчиков Java есть Classifier4J . Вы можете увидеть фрагмент кода обучения и оценки здесь .
Начальная классификация по ключевым словам
Похоже, вы хотите начать с набора ключевых слов, которые известны как подсказки для определенных тем , а затем использовать эти ключевые слова для начальной загрузки классификатора ].
Это достаточно умная идея. Взгляните на статью Text Classification by Bootstrapping with Keywords, EM and Shrinkage McCallum and Nigam (1999). Следуя этому подходу, они смогли повысить точность классификации с 45%, которые они получили при использовании только жестко запрограммированных ключевых слов, до 66% с использованием начального классификатора Наивного Байеса. По их данным, последнее близко к человеческому уровню согласия, поскольку люди соглашались друг с другом в отношении меток документов в 72% случаев.