转 基于朴素贝叶斯分类器的文本分类算法.docVIP

转 基于朴素贝叶斯分类器的文本分类算法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
转 基于朴素贝叶斯分类器的文本分类算法 本资料由豆丁若莲文档搜集 更多文档请点击/ljk99 基于朴素贝叶斯分类器的文本分类算法(下) 源代码下载:NaviveBayesClassify.rar Preface 文本的分类和聚类是一个比较有意思的话题,我以前也写过一篇blog《基于K-Means的文本聚类算法》,加上最近读了几本数据挖掘和机器学习的书籍,因此很想写点东西来记录下学习的所得。 在本文的上半部分《基于朴素贝叶斯分类器的文本分类算法(上)》一文中简单介绍了贝叶斯学习的基本理论,这一篇将展示如何将该理论运用到中文文本分类中来,具体的文本分类原理就不再介绍了,在上半部分有,也可以参见代码的注释。 文本特征向量 文本特征向量可以描述为文本中的字/词构成的属性。例如给出文本: Good good study,Day day up. 可以获得该文本的特征向量集:{Good,good,study,Day,day,up.} 朴素贝叶斯模型是文本分类模型中的一种简单但性能优越的的分类模型。为了简化计算过程,假定各待分类文本特征变量是相互独立的,即朴素贝叶斯模型的假设。相互独立表明了所有特征变量之间的表述是没有关联的。如上例中,[good]和[study]这两个特征变量就是没有任何关联的。 在上例中,文本是英文,但由于中文本身是没有自然分割符(如空格之类符号),所以要获得中文文本的特征变量向量首先需要对文本进行中文分词 中文分词 这里采用极易中文分词组件,这个中文分词组件可以免费使用,提供Lucene接口,跨平台,性能可靠。 package com.vista; import java.io.IOException; import jeasy.analysis.MMAnalyzer; publicclass ChineseSpliter { publicstatic String split(String text,String splitToken) { String result=null; MMAnalyzer analyzer=new MMAnalyzer(); try { result=analyzer.segment(text,splitToken); } catch(IOException e) { e.printStackTrace(); } return result; } } 停用词处理 去掉文档中无意思的词语也是必须的一项工作,这里简单的定义了一些常见的停用词,并根据这些常用停用词在分词时进行判断。 package com.vista; publicclass StopWordsHandler { privatestatic String stopWordsList={的,我们,要,自己,之,将,,,,,(,),后,应,到,某,后,个,是,位,新,一,两,在,中,或,有,更,好,};//常用停用词 publicstatic boolean IsStopWord(String word) { for(int i=0;i stopWordsList.length;++i) { if(word.equalsIgnoreCase(stopWordsList[i])) returntrue; } returnfalse; } } 训练集管理器 我们的系统首先需要从训练样本集中得到假设的先验概率和给定假设下观察到不同数据的概率。 package com.vista; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; publicclass TrainingDataManager { private String traningFileClassifications;//训练语料分类集合 private File traningTextDir;//训练语料存放目录 privatestatic String defaultPath=D:\TrainningSet; public TrainingDataManager() { traningTextDir=new File(defaultPath); if(!traningTextD

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档