实验报告-中文分词_第1页
实验报告-中文分词_第2页
实验报告-中文分词_第3页
实验报告-中文分词_第4页
实验报告-中文分词_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上实验报告1 双向匹配中文分词 小组信息目录摘要 - 1理论描述 - 1算法描述 - 2详例描述 - 3软件演示 - 4总结 - 6 摘要 这次实验的内容是中文分词,现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。而我们用到的分词算法是基于字符串的分词方法(又称机械分词方法)中的正向最大匹配算法和逆向匹配算法。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向

2、最大匹配的错误率为1/245。 理论描述中文分词指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。它是信息提取、信息检索、机器翻译、文本分类、自动文摘、语音识别、文本语音转换、自然语言理解等中文信息处理领域的基础。双向最大匹配算法是两个算法的集合,主要包括:正向最大匹配算法和逆向最大匹配算法如果两个算法得到相同的分词结果,那就认为是切分成功,否则,就出现了歧义现象或者是未登录词问题。正向最大匹配算法:从左到右将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。逆向最大匹配算法:从右到

3、左将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。 算法描述本文实现双向匹配算法,具体算法描述如下: 正向最大匹配算法MM:/对纯中文句子s1的正向减字最大匹配分词string CHzSeg:SegmentHzStrMM(CDict &dict,string s1)conststring s2=;/保存句子s1的分词结果while(!s1.empty()unsigned int len=s1.size();/如果待切分的句子大于最大切分单元/len=最大切分单元,否则len=句子的长度if(lenMAX_WORD_LENGTH)len=MAX_WORD_LENGTH;/取s

4、1句子最左边长度len为的子句子string w=s1.substr(0,len);/判断刚刚取出来的子句子是不是一个词bool isw=dict.IsWord(w);/当w中至少有一个中文字&不能构成字的时候,减去最右边的一个中文字while(len2&isw=false)/减去最右边的一个中文字len-=2;w=w.substr(0,len);/再次判断减字后的w是不是构成一个词isw=dict.IsWord(w);s2+=w+SEPARATOR;s1=s1.substr(w.size();/end whilereturn s2;逆向最大匹配算法RMM: /对纯中文句子s1的逆向减字最大匹

5、配分词string CHzSeg:SegmentHzStrRMM(CDict &dict,string s1)conststring 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(s1.length()-len,len);/判断刚刚取出来的子句子是不是一个词bool isw=dict.

6、IsWord(w);/当w中至少有一个中文字&不能构成字的时候,减去最左边的一个中文字while(len2&isw=false)/减去最左边的一个中文字len-=2;w=s1.substr(s1.length()-len,len);/再次判断减字后的w是不是构成一个词isw=dict.IsWord(w);w=w+SEPARATOR;s2=w+s2;/分出一个词后的s1s1=s1.substr(0,s1.length()-len);return s2; 详例描述: 逆向最大匹配思想是从右向左切分,以“对外经济技术合作与交流不断扩大”为例,详细描述算法如下 :输入例句:S1=“对外经济技术合作与交

7、流不断扩大” ;定义:最大词长MaxLen = 6;S2= “”;分隔符 = “/ ”;逆向减字最大匹配分词算法过程如下:(1)S2=“”;S1不为空,从S1右边取出候选子串W=“断扩大”;(2)查词表,W不在词表中,将W最左边一个字去掉,得到W=“扩大”;(3)查词表,“扩大”在词表中,将W加入到S2中,S2=“ 扩大/ ”,并将W从S1中去掉,此时S1=“对外经济技术合作与交流不断”;(4)S1不为空,于是从S1左边取出候选子串W=“流不断”;(5)查词表,W不在词表中,将W最左边一个字去掉,得到W=“不断”;(6)查词表,“不断”在词表中,将W加入到S2中,S2=“不断/ 扩大/ ”,并

8、将W从S1中去掉,此时S1=“对外经济技术合作与交流”;(7)S1不为空,于是从S1左边取出候选子串W=“与交流”;(8)查词表,W不在词表中,将W最左边一个字去掉,得到W=“交流”;(9)查词表,“交流”在词表中,将W加入到S2中,S2=“交流/ 不断/ 扩大/ ”,并将W从S1中去掉,此时S1=“对外经济技术合作与”;(10)S1不为空,于是从S1左边取出候选子串W=“合作与”;(11)查词表,W不在词表中,将W最左边一个字去掉,得到W=“作与”;(12)查词表,W不在词表中,将W最左边一个字去掉,得到W=“与”;(13)查词表,“与”在词表中,将W加入到S2中,S2=“与/ 交流/ 不断

9、/ 扩大/ ”,并将W从S1中去掉,此时S1=“对外经济技术合作”;(14)S1不为空,于是从S1左边取出候选子串W=“术合作”;(15)查词表,W不在词表中,将W最左边一个字去掉,得到W=“合作”;(16)查词表,“交流”在词表中,将W加入到S2中,S2=“合作/ 与/ 交流/ 不断/ 扩大/ ”,并将W从S1中去掉,此时S1=“对外经济技术”;(17)S1不为空,于是从S1左边取出候选子串W=“济技术”;(18)查词表,W不在词表中,将W最左边一个字去掉,得到W=“技术”;(19)查词表,“交流”在词表中,将W加入到S2中,S2=“技术/ 合作/ 与/ 交流/ 不断/ 扩大/”,并将W从S

10、1中去掉,此时S1=“对外经济(20)S1不为空,于是从S1左边取出候选子串W=“外经济”;(21)查词表,W不在词表中,将W最左边一个字去掉,得到W=“经济”;(22)查词表,“交流”在词表中,将W加入到S2中,S2=“经济/ 技术/ 合作/ 与/ 交流/ 不断/ 扩大/ ”,并将W从S1中去掉,此时S1=“对外”; (23)S1不为空,由于此时S1只剩下“对外”于是从S1左边取出候选子串W=“对外”;(24)查词表,“对外”在词表中,将W加入到S2中,S2=“对外/ 经济/ 技术/ 合作/ 与/ 交流/ 不断/ 扩大/ ”,并将W从S1中去掉,此时S1=“”;(25)S1为空,输出S2作为分词结果,分词过程结束。正向匹配法思想与逆向一样,只是从左向右切分,因此只举例逆向最大匹配算法描述。 软件演示: 软件界面:选择分词所要的方式(正向或逆向),然后输入所要分词的内容,分词结果就会在右边显示出来。正向最大匹配分词结果:逆向最大匹

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论