转载请保留作者信息:
作者:88250
Blog:http:/blog.csdn.net/DL88250
MSN & E-mail & QQ:DL88250@gmail.com
作者:zy
Blog:http:/blog.csdn.net/zyofprogrammer
作者:Sindy
E-Mail:sindybanana@gmail.com
续上篇 上次说到了效率的问题,现在已经解决了,还修复了不少的Bugs :-) 不过,查阅了一些文献后,发现了一个新的理论问题。理论问题 朴素贝叶斯文本分类模型分为两种:
- 文档型
- 词频型
- cNB=arg Max( P(cj) * ∏1C P(xi|cj) )
其中,P(cj)为类别j的先验概率,P(xi|cj)为特征量 xi在类别cj的类条件概率
先验概率计算 先验概率计算方式有两种:
- 文档型 不考虑词频在各分类下的出现次数,仅考虑各分类下文档的数目。如下式计算:
- 词频型 考虑单词在各分类文档中出现的频次,如下式计算:
P(cj)=N(C=cj)/N
其中,N(C=cj)表示类别cj中的训练文本数量; N表示训练文本集总数量。
P(cj)=V∑k=1TF(X=xk, C=cj)/W∑m=1V∑ k=1TF(X=xk, C=cm)
其中,V表示特征词表中总单词(属性)数,TF(X=xi, C=cj) 表示属性xi在类cj中出现次数之和,W表示总类别数目。
注意:类条件概率的计算方式必须与先验概率的计算方式匹配,如果先验概率是用文档型 计算的,那么类条件概率也必须使用文档型计算方式,反之亦然。
类条件概率 类条件概率的计算有两种方式:
- 文档型 不考虑单词在文档中的出现频次,仅考虑单词在文档中是否出现。 0表示未出现,1表示出现。 如下式计算:
- 词频型 考虑单词在文档中出现的频次,如下式计算:
P(xj|cj)=( N(X=xi, C=cj )+1 ) / ( N(C=cj)+V )
其中,N(X=xi, C=cj)表示类别cj中包含属性x i的训练文本数量;N(C=cj)表示类别cj中的训练文本数量;V表示类别的总数。
P(xj|cj)=( TF(X=xi, C=cj)+1) / ( V+V∑k=1TF(X=xk, C=cj) )
其中,V表示特征词表中总单词(属性)数,TF(X=xi, C=cj) 表示属性xi在类cj中出现次数之和。
注意:
- 类条件概率的计算方式必须与先验概率的计算方式匹配,如果先验概率是用文档型 计算的,那么类条件概率也必须使用文档型计算方式,反之亦然
- 为避免类条件概率结果为0,采用了拉普拉斯概率估计
为了提高分类的效率和准确率,必须对训练库进行预处理。主要预处理步骤如下:
- 读取某一分类下的所有训练文本
- 对这些文本进行分词处理
- 通过词性、词长过滤无用词
- 将剩下的词作为这一分类的特征结果并保存成文本
下一篇文章将对我们的朴素贝叶斯分类器进行评估,请大家耐心等待 :-)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)