Naive Bayesian使用“Bag of Words”方法进行主题检测

问题描述 投票:12回答:1

我正在尝试实现一种天真的贝叶斯方法来查找给定文档或单词流的主题。是否有朴素贝叶斯方法,我可以找到这个?

此外,我正在尝试改进我的字典,因为我继续。最初,我有一堆映射到主题的单词(硬编码)。取决于已映射的单词以外的单词的出现次数。根据这些单词的出现,我想将它们添加到映射中,从而改进和学习映射到主题的新单词。并且还改变了单词的概率。

我该怎么做呢?我的方法是正确的吗?

哪种编程语言最适合实现?

machine-learning nlp data-mining naivebayes
1个回答
26
投票

朴素贝叶斯的现有实现

你可能最好只使用一个支持使用朴素贝叶斯进行文档分类的现有软件包,例如:

Python - 要使用基于Python的Natural Language Toolkit (NLTK)执行此操作,请参阅免费提供的Document Classification中的NLTK book部分。

Ruby - 如果Ruby更像是你的东西,你可以使用Classifier gem。这是检测 whether Family Guy quotes are funny or not-funny的示例代码。

Perl - Perl有Algorithm::NaiveBayes模块,在synopsis包中有一个样本用法片段。

C# - C#程序员可以使用nBayes。该项目的主页包含简单垃圾邮件/非垃圾邮件分类器的示例代码。

Java - Java人员有Classifier4J。你可以看到一个训练和得分代码片段here

从关键字引导分类

听起来你想要从一组已知可以提示特定主题的关键字开始,然后将这些关键字用于bootstrap a classifier

这是一个相当聪明的想法。看看McCallum和Nigam撰写的论文Text Classication by Bootstrapping with Keywords, EM and Shrinkage(1999)。通过遵循这种方法,他们能够将分类准确度从单独使用硬编码关键字获得的45%提高到使用自举Naive Bayes分类器获得的66%。对于他们的数据,后者接近人类的协议水平,因为人们在72%的时间内相互同意文档标签。

© www.soinside.com 2019 - 2024. All rights reserved.