使用朴素贝叶斯进行文档分类

时间:2012-11-13 20:21:08

标签: machine-learning artificial-intelligence

我对文档分类中使用的特定Naive Bayse算法有疑问。以下是我的理解:

  1. 为每个已知分类构建训练集中每个单词的一些概率
  2. 给出一个文件,我们删除它包含的所有单词
  3. 将分类中存在的单词的概率相乘
  4. 对每个分类执行(3)
  5. 比较(4)的结果并选择具有最高后验的分类
  6. 我感到困惑的是当我们计算给定训练集的每个单词的概率时的部分。例如,对于单词“banana”,它出现在分类A中的100个文档中,并且在A中总共有200个文档,并且总共1000个单词出现在A中。为了得到“香蕉”出现在分类A下的概率我做使用100/200 = 0.5或100/1000 = 0.1?

1 个答案:

答案 0 :(得分:3)

我相信如果你计算单词出现的文档数量,你的模型会更准确地分类,而不是单词出现的次数。换句话说

分类“提及水果”:

“我喜欢香蕉。”

应该不超过或小于

“香蕉!香蕉!香蕉!我喜欢它们。”

所以问题的答案是100/200 = 0.5。

维基百科上的文档分类说明也支持我的结论

  

然后给定文档D包含给定C类的所有单词W的概率是

http://en.wikipedia.org/wiki/Naive_Bayes_classifier

换句话说,文档分类算法维基百科描述了测试给定文档包含的分类单词列表的数量。

顺便说一句,更高级的分类算法将检查N字序列,而不仅仅是单个字,其中N可以根据您愿意投入计算的CPU资源量来设置。

<强>更新

我的直接经验是基于简短的文件。我想强调@BenAllison在评论中指出的研究表明我的答案对于较长的文件无效。具体地

  

一个缺点是,只考虑条款的存在与否,BIM忽略了条款频率中固有的信息。例如,在所有条件相同的情况下,我们可以预期,如果一个单词的出现是一个文档属于一个类的好线索,那么5次出现应该更具预测性。

     

相关问题涉及文档长度。随着文档变长,使用的不同单词的数量,以及因此在BIM中等于1的x(j)的值的数量通常会增加。

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1529