zoukankan      html  css  js  c++  java
  • 朴素贝叶斯中文文本分类器的研究与实现(2)[88250、zy、Sindy原创]

    转载请保留作者信息:

    作者:88250

    Bloghttp:/blog.csdn.net/DL88250

    MSN & E-mail & QQDL88250@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的类条件概率
    上次的分类模型属于文档型的,正确率约为50%左右,理论上朴素贝叶斯分类的正确率可以达到80%以上。文档型的正确率很低,主要原因是训练库的以分文本质量低下。目前我们已经在着手自己收集训练数据了,提高训练库的质量。

    先验概率计算

    先验概率计算方式有两种:
    • 文档型
    • 不考虑词频在各分类下的出现次数,仅考虑各分类下文档的数目。如下式计算:
      P(cj)=N(C=cj)/N
      其中,N(C=cj)表示类别cj中的训练文本数量; N表示训练文本集总数量。
    • 词频型
    • 考虑单词在各分类文档中出现的频次,如下式计算:
      P(cj)=Vk=1TF(X=xk, C=cj)/Wm=1Vk=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+Vk=1TF(X=xk, C=cj) )
      其中,V表示特征词表中总单词(属性)数,TF(X=xi, C=cj) 表示属性xi在类cj中出现次数之和。

    注意

    • 类条件概率的计算方式必须与先验概率的计算方式匹配,如果先验概率是用文档型 计算的,那么类条件概率也必须使用文档型计算方式,反之亦然
    • 为避免类条件概率结果为0,采用了拉普拉斯概率估计

    关于训练库的预处理

    为了提高分类的效率和准确率,必须对训练库进行预处理。主要预处理步骤如下:

    1. 读取某一分类下的所有训练文本
    2. 对这些文本进行分词处理
    3. 通过词性、词长过滤无用词
    4. 将剩下的词作为这一分类的特征结果并保存成文本
    目前实现的训练库预处理器主要是针对词频分类模型的。

    当前技术上的问题

    现在词频型的分类也做好了,不过有个技术上的问题还在解决,就是Java的中文分词组件。原来用的是极易中文分词组件,虽然分词效果还不错,但是没有词性标注。zy在研究中科院那个ICTCLAS分词组件,ICTCLAS3.0的试用申请发给作者3天了,没回信- -!。1.0版本的在搞JNI调用,也很麻烦。。。。

    下一篇文章将对我们的朴素贝叶斯分类器进行评估,请大家耐心等待 :-)
  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470420.html
Copyright © 2011-2022 走看看