网站大量收购独家精品文档,联系QQ:2885784924

实验报告-中文分词.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告-中文分词验报告-中文分词

实验报告1 双向匹配中文分词 ? 小组信息 目录 摘要 --------------------------------------------------------------------------------------- 1 理论描述 --------------------------------------------------------------------------------- 1 算法描述 --------------------------------------------------------------------------------- 2 详例描述 --------------------------------------------------------------------------------- 3 软件演示 --------------------------------------------------------------------------------- 4 总结 --------------------------------------------------------------------------------------- 6 ? 摘要 这次实验的内容是中文分词,现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。 而我们用到的分词算法是基于字符串的分词方法(又称机械分词方法)中的正向最大匹配算法和逆向匹配算法。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。 ? 理论描述 中文分词指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。它是信息提取、信息检索、机器翻译、文本分类、自动文摘、语音识别、文本语音转换、自然语言理解等中文信息处理领域的基础。 双向最大匹配算法是两个算法的集合,主要包括:正向最大匹配算法和逆向最大匹配算法.如果两个算法得到相同的分词结果,那就认为是切分成功,否则,就出现了歧义现象或者是未登录词问题。 正向最大匹配算法:从左到右将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。 逆向最大匹配算法:从右到左将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。 ? 算法描述 本文实现双向匹配算法,具体算法描述如下: 正向最大匹配算法MM: //对纯中文句子s1的正向减字最大匹配分词 string CHzSeg::SegmentHzStrMM(CDict dict,string s1)const { string s2=;//保存句子s1的分词结果 while(!s1.empty()) { unsigned int len=s1.size(); //如果待切分的句子大于最大切分单元 //len=最大切分单元,否则len=句子的长度 if(lenMAX_WORD_LENGTH) len=MAX_WORD_LENGTH; //取s1句子最左边长度len为的子句子 string w=s1.substr(0,len); //判断刚刚取出来的子句子是不是一个词 bool isw=dict.IsWord(w); //当w中至少有一个中文字不能构成字的时候,减去最右边的一个中文字 while(len2isw==false) { ///减去最右边的一个中文字 len-=2; w=w.substr(0,len); //再次判断减字后的w是不是构成一个词 isw=dict.IsWord(w); } s2+=w+SEPARATOR; s1=s1.substr(w.size()); }//end while return s2; } 逆向最大匹配算法RMM: //对纯中文句子s1的逆向减字最大匹配分词 string CHzSeg::SegmentHzStrRMM(CDict dict,string s1)const { string s2=;//保存句子s1的分词结果 while(!s1.empty()) { unsigned int len=s1.size(); //如果待切分的句子大于最大切分单元 //len=最大切分单元,否则len=句子的长度 if(lenMAX_WORD_LENGTH) len=MAX_WORD_LEN

文档评论(0)

skewguj + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档