简约设计の艺术

讨论软件制造过程中的艺术与工程,软件哲学

丁亮ID:DL88250
1348557次访问,排名10好友91人,关注者124
Linux、Java、C/C++,OpenSource热爱者,擅长JavaSE/JavaEE开发,熟悉JSF、EJB、Spring、JPA、OSGi等框架应用的架构,目前正在深入学习算法、OOAD、TDD以及敏捷实践。
DL88250的文章
原创 818 篇
翻译 8 篇
转载 157 篇
评论 623 篇
88250的公告


最近评论
DL88250:谢谢:)
lishuai67843198:很强大
DL88250:To xinbgzs: 当然支持啊,给一下你的JDK版本。。。。
xinbgzs:不支持中文的自定义错误吗?
DL88250:To jji: 不知道啊。。。。官方的消息应该不会假的。不过,短跳一下还是有可能的。:)
文章分类
收藏
    相册
    Beyond
    壁纸收集
    动漫Kiss图图
    我的珍藏
    我的桌面
    CSDN专家Blog
    孟岩的专栏
    袁萌的专栏
    Ubuntu/Linux相关
    ChinaUnix
    Compiz Themes
    Compiz-Fusion
    deviantART Search
    GetDeb
    Gnome-Look
    KDE-Look
    LinuxToy
    Linux桌面中文网
    Ubuntu中文官方论坛
    Ubuntu桌面中文网
    代码示例
    C++代码示例
    HTML代码示例
    Java Code examples
    技术站点
    Apache Software
    CSDN
    Eclipse.org
    Extreme Programming
    hibernate.org
    IBM软件技术
    JavaFX Home
    JavaFX Script Reference
    JavaWorld@TW
    Java开源大全
    JBoss.org
    LEX & YACC Page
    NetBeans中文社区
    PHP 官方
    Ruby on Rails
    Ruby中文社区论坛
    SOURCEFORGE.NET
    Springframework.org
    Sun中国技术社区
    UML官方
    图书下载
    CSDN下载频道
    e 书时空
    IT e Book
    中华电脑书库
    中国 E 书网
    中国 IT 认证实验室
    中文电子书网
    偶要雷锋 - 分享社区
    我爱 e 书
    网络中国 - E 书
    我的偶像 :-)
    Alan Turing
    Bjarne Stroustrup's Homepage
    Don Knuth's Home Page
    Martin Fowler
    Richard Stallman's Home Page
    Uncle Bob (Robert C. Martin)
    我的朋友
    Eleven的专栏
    Eric.Gao的空间
    Meteor的专栏
    mmchsusan的主页
    solonote的专栏
    Vanessa的小窝
    ZhiBaoDeng的专栏
    zyofprogrammer的学习历程
    先知罗庄的专栏
    光光的Blog~
    师傅dorainm的Blog
    皮皮的空间
    秋歌的专栏
    金秋风采
    阿明的专栏
    在CSDN的朋友
    老李的Blog
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 朴素贝叶斯中文文本分类器的研究与实现(2)[88250、zy、Sindy原创]收藏

    新一篇: Java混合化现状和RIA趋势分析 | 旧一篇: 一些Ubuntu的趣味图片

    转载请保留作者信息:

    作者: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调用,也很麻烦。。。。

    下一篇文章将对我们的朴素贝叶斯分类器进行评估,请大家耐心等待 :-)

    发表于 @ 2008年03月27日 22:14:00|评论(loading...)|收藏

    新一篇: Java混合化现状和RIA趋势分析 | 旧一篇: 一些Ubuntu的趣味图片

    评论

    #zhiyuanmiao 发表于2008-03-29 17:37:47  IP: 58.214.13.*
    您好:
    我现在在做一个文本自动分类系统,对许多问题都不是很清楚,今天看了您的《朴素贝叶斯中文文本分类器的研究与实现》这篇文章,不知道能不能把源代码给我发一份做个参考,谢谢
    #DL88250 发表于2008-03-29 18:52:03  IP: 222.172.221.*
    昨天zy(我们项目组里的)刚把中科院那个分词的DLL搞定,今天与明天我们做整合,还有一系列测试。
    具体说一下你遇到的问题,我们可以互相交流,互相学习:-)
    #wopenonline111 发表于2008-04-10 11:31:05  IP: 123.116.132.*
    中文分词组件有很多,我们研究过一种java写的分词组件paoding,感觉很不错,你们也可以考虑试用一下。这比用jni调用容易多了。
    http://code.google.com/p/paoding/
    #88250 发表于2008-04-10 13:08:13  IP: 221.213.43.*
    paoding我们也研究过了,可惜的是它没有词性标注。在文本的预处理阶段我们的方案需要根据词性过滤一些特征量。。。。
    还好,昨天得知中科院的那个分词组件部分开源了!
    嘿嘿 :-)
    #lin liang 发表于2008-04-26 20:26:12  IP: 202.114.106.*
    你好:
    你的朴素贝叶斯能不能开源啊
    #88250 发表于2008-04-26 21:38:18  IP: 221.213.43.*
    To lin liang: This is open source software. I will release the codes in future days, please be patient :-)
    #fantaxy 发表于2008-05-09 21:42:06  IP: 219.243.95.*
    前辈,能不能把src和使用说明打包一下呢,最近在研究这个,希望能得到前辈的指点,同时能读下src并使用一下~

    看上一篇的code中,没有ChineseSpliter这个class的src,在eclipse下也不能执行查看效果了。

    期待!
    fantaxy025025@126.com
    #88250 发表于2008-05-10 17:13:02  IP: 221.213.43.*
    完全的源代码我们整理一下,过几天贴上来,谢谢你的关注哦 : )
    #magicblue 发表于2008-05-21 11:06:36  IP: 221.237.76.*
    文本分类器我以前也做过,但是遇到一些难题。这里想请教一下:
    1.不知道博主是怎么处理汉字的单词问题的?中文分类器需要汉字的词而不是字作为分类的基本元素,这么多词如何表示,我尝试看过输入法的编写,但是还是很模糊。
    2.博主的核心公式似乎有一个问题,这也是我以前遇到过的。虽然这些公式比较简单,但是会引入新问题,即文档长度。较长的文档比较短的文档概率低很多很多,因为长文档的词多,连乘下来会非常非常小。我尝试过归一化,但是严格的归一化极其复杂。

    magiceye@163.com
    #DL88250 发表于2008-05-21 11:58:52  IP: 221.213.43.*
    To magicblue:
    1. 用的中文分词组件
    2. 确实是问题。当词很多的时候可以按照分词的数目做连乘。这是我们目前的解决方法。
    #magicblue 发表于2008-05-22 02:38:15  IP: 221.237.78.*
    使用你的文章中的后验概率计算方法引入的文档长度问题很难解决。比如一个1000个词的文章和一个100个词的文章,1000词文章的最终概率要比100词文章小很多很多。最终所求的概率值完全被文档长度所决定,即便是相差一个词的两个文档的后验概率也会被多乘的一个概率项拉大很多。这种后验概率计算方法在实践中根本不可行,至少我没有找到解决的办法。
    但是如果文档表示成固定长度的向量,此问题便可以使用二元独立模型解决。但问题是向量需要考虑所有的词,编写及其麻烦。而且这个词表还要和分词算法的词表一致。由于这个让人头疼的麻烦,我停止了分类器的编写。目前我觉得比较简单的办法是使用中科院的那个分词算法,把它的词表打出来,然后再配合这个分词算法。
    #DL88250 发表于2008-05-22 09:30:41  IP: 222.172.221.*
    的确是有这个问题。但是我们测试的结果表明分类器的效果还是很好的。: )
    #meteorlWJ 发表于2008-05-23 19:41:41  IP: 222.172.214.*
    Be in the higher level again!
    Be happy for you, as a friend, I am pround of
    you, really !
    #DL88250 发表于2008-05-24 10:00:17  IP: 221.213.43.*
    : ) thx
    #iamlkq 发表于2008-06-08 17:35:00  IP: 58.62.42.*
    能把你的ChineseSpliter分词包发给我吗?邮箱是:403314788@qq.com,现在在做垃圾邮件的分类处理,想参考一下您的ChineseSpliter包...谢谢啦..
    #88250 发表于2008-06-09 11:42:37  IP: 221.213.43.*
    To iamlkq: 可以到这里下载:
    http://www.jesoft.cn/
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 88250