一种基于MMseg算法与逐点互信息算法的分词方法与流程

文档序号:12120963阅读:424来源:国知局
本发明涉及中文分词领域,更具体地,涉及一种基于MMseg算法与逐点互信息算法的分词方法。
背景技术
:我国对于自然语言处理的研究起步较晚,在上世纪八十年代才建立起自己的自然语言处理模型,后来随着计算机的发展和用户自身需求的提高,国内对自然语言的重视程度大大提高,研究机构增多,研究队伍壮大。研究队伍在借鉴国外成果的同时结合了中文文本的特点,提出了新的理论模型,提高对中文理解研究的水平。英文分词中词与词之间存在空格,但是中文文本中,句子间的字符都是连接在一起的。例如,英文的“LileiandHanmeimei”,每个词之间都有空格将他们分开,而中文中“李雷和韩梅梅”却需要用分隔符把词语切分成“李雷/和/韩梅梅”,这就导致了中文分词难度较大。中文分词研究的难点主要来自于分词规范、歧义切分和未登录词识别这三个方面。歧义切分和未登录词识别是现阶段研究的重点。目前中文分词的主要方法有三类:基于字符串匹配的方法、基于统计的方法、基于理解的方法。基于以上这些算法,许多研究机构开发了一些常用的分词系统,其中主要有:(1)北航的书面汉语自动分词系统CDWS。北航研究的CDWS分词系统是我国第一个投入使用的自动分词系统,它主要利用基于字符串匹配的分词技术,在最大匹配法的基础上添加词尾构词纠错技术。CDWS分词系统的分词速度可以达到5-10字/秒,切分精度约为1/625,基本满足了词频统计和其他一些应用的需要。这是我国首次尝试中文自动分词实践,具有很大的启发作用和理论意义。(2)清华大学的SEG分词系统。这个系统引入了全切分技术,即将待切分串中所有可能存在的子串都切分出来,然后以某种评价模型为标准从所有的子串中选择最优子串作为最优结果,解决了切分盲点的问题。对特定的文本集合进行封闭性实验,SEG分词系统的切分精度可以达到99%,切分速度约为30字/秒。(3)中科所研究的ICTCLAS中文分词系统。这个系统提出基于层次HMM的方法,融入中文文本歧义切分、未登录词识别和词性标注等多项任务,取得了良好的效果。ICTLAS分词的流程包括4步:①通过原子切分、找出原子之间所有可能的组词方案、用N-最短路径中文词语粗分对文本进行初步分词;②对第一部中N个粗分结果用标准的词典进行标注,并用维特比解码算法找出这句话的最佳标注;③通过构建相应规则对上述命名实体进行识别;④根据前面分词结果及命名实体的识别,得到最终分词结果,并用标准词典进行标注。经分析研究发现,传统的基于词典的分词方法由于对专业词典的依赖程度较大,分词时对一些未登录词识别能力不足,而基于统计的分词方法需要提前经过大量语料库训练,分词效率较低,分词速度较慢。技术实现要素:本发明为解决以上现有技术的缺陷,提供了一种基于MMseg算法与逐点互信息算法的分词方法,该方法解决了对未登录词的识别与正确对进行歧义切分的难题,提高了分词的精度和歧义消解能力。为实现以上发明目的,采用的技术方案是:一种基于MMseg算法与逐点互信息算法的分词方法,基于词典使用MMseg算法对文本进行分词处理,获得分词结果后使用逐点互信息算法对分词结果进行校正;所述逐点互信息算法校正分词结果的具体过程如下:计算文本中相邻的字x与字y的逐点互信息,然后判断字x与字y的逐点互信息是否大于所设定的阈值,若是则将字x与字y作为一个独立的词语进行划分。优选地,所述MMseg算法对文本进行分词处理的具体过程如下:S1.逐行读入文本;S2.对文本进行拆分,形成若干个字符串;S3.对字符串i中的汉字使用简单最大匹配法或复杂最大匹配法与词典中的单词进行匹配,然后输出匹配结果;S4.判断步骤S3的匹配结果是否存在着最大词长词组,若是,则将其保存到文本集R中进行存储,然后执行步骤S5;S5.若步骤S3输出匹配结果的词组数量超过1个,则选择平均词语长度最大的词组保存到文本集R中进行存储,然后执行步骤S6;S6.对步骤S3输出的匹配结果的词组进行词语长度变化率的计算,选择变化率最小的词组保存到文本集R中进行存储,然后执行步骤S7;S7.对步骤S3输出的匹配结果的词组进行自由语素和的计算,选择自由语素和最大的词组保存到文本集R中进行存储;S8.重复执行步骤S3~S7直至所有的字符串均经历过步骤S3~S7的处理。优选地,所述步骤S2对文本进行拆分后,需要对无意义符号和助词进行过滤,经过过滤后获得的字符串为所需要的执行步骤S3~S7的字符串。优选地,所述步骤S6通过对词组标准差的计算来反映词语长度变化率,计算词组标准差的具体过程表示如下:标准差其中,Cx为切分出的词组数,平均长度Ax=L/Cx,L为词组的字数,lx为词组中各词的长度之和。优选地,所述步骤S7中,计算词组自由语素和的具体过程如下:其中I表示单词条集合,fx表示单词条词频。优选地,所述计算文本中相邻的字x与字y的逐点互信息的具体过程表示如下:其中P(x)表示字x在文本中出现的概率,P(y)表示字y在文本中出现的概率,P(x,y)表示字x与字y的联合分布概率,P(x)P(y)表示字x与字y相邻的概率。与现有技术相比,本发明的有益效果是:本发明提供的方法解决了对未登录词的识别与正确对进行歧义切分的难题,提高了分词的精度和歧义消解能力。附图说明图1为分词方法的流程图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;以下结合附图和实施例对本发明做进一步的阐述。实施例1如图1所示,本发明提供的方法基于词典使用MMseg算法对文本进行分词处理,获得分词结果后使用逐点互信息算法对分词结果进行校正;所述逐点互信息算法校正分词结果的具体过程如下:计算文本中相邻的字x与字y的逐点互信息,然后判断字x与字y的逐点互信息是否大于所设定的阈值,若是则将字x与字y作为一个独立的词语进行划分。其中,MMseg算法是一种基于词典的分词算法,对MMSeg的解释可分为“匹配算法”和“消除歧义”的规则两部分。其中匹配算法包括两种分词方法:简单最大匹配法(Simple)和复杂最大匹配法(Complex),两种方法都基于正向最大匹配。正向最大匹配算法就是从词典中找到字符最长的单词匹配。基本算法是:假设C1,C2,…代表一个字符串中的汉字,从字符串首部开始,搜索词典中的单词,判断C1是否为一个单个汉字组成的单词,然后扫描C1C2来看是否为一个两个汉字组成的单词,当遍历到C1C2…Cn+1时,词典中已经没有匹配的项目,那么Cn就是最可能的单词也是最长匹配。取这个单词,然后继续这个过程到字符串末尾,直至所有单词都被识别完毕。简单的最大匹配法,即简单的正向匹配,根据字符串首个汉字,列出所有可能的结果。复杂最大匹配法,匹配出所有的“三个词的词组”,即从某一个既定的字为起始位置,得到所有可能的“以三个词为一组”的组合。简单的最大匹配法由于不涉及语法和语义知识,所以对歧义切分无法有效克服,切分的精度不高。因此MMseg的复杂最大匹配算法结合简单最大匹配法增加了四个消除歧义的规则。这四个规则分别是:(1)最大匹配(Maximummatching),有两种情况,分别对应使用简单最大匹配法和复杂最大匹配法。对简单最大匹配法,选择长度最大的词;对复杂最大匹配法,选择“词组长度最大的”那个词组,然后选择这个词组的第一个词,作为且分出的第一个词。(2)最大平均词语长度(Largestaveragewordlength)。经过规则(1)过滤后,如果剩余的词组超过1个,那就选择平均词语长度最大的那个(平均词长=词组总字数/词语数量)。(3)词语长度的最小变化率(Smallestvarianceofwordlengths),由于词语长度的变化率可以由标准差反映,因此此处直接套用标准差公式即可。(4)自由语素和最大词组(Largestsumofdegreeofmorphemicfreedomofone-characterwords),即计算词组中的所有单字词次品的自然对数,然后将得到的值相加,取总和最大的词组。词长为词组中各词的长度之和,记为lx,令待切分词组字数为L,平均长度Ax=L/Cx,其中Cx为切分出的词组数。标准差自由语素度Dx=∑x∈Ilogfx,其中I是单词条集合,fx为单词条词频。MMSeg算法描述如下:输入:语料文本S输出:分词处理后的文本R(1)逐行读文本S(2)拆分词语,保存到结果集T中(3)过滤无意义符号和助词(4)while(t=遍历拆分的结果集T)(5)if(最大词长词组==1)then保存t到文本R并重复(4)(6)if(平均最大词长词组==1)then保存t到文本R并重复(4)(7)if(词长最小标准差词语==1)then保存t到文本R并重复(4)(8)if(自由语素度和最大词组==1)then保存t到文本R并重复(4)(9)抛出切分错误(10)重复步骤(4)直到遍历结束(11)返回结果集RMMSeg分词方法的分词效果与词典关系较大,如果缺乏丰富的词典会导致很大的歧义,因此在利用MMSeg分词后,我们还需要应用互信息评价方法对未登录词进行评判。所述逐点互信息算法识别未登录词的具体过程如下:计算文本中相邻的字x与字y的逐点互信息,然后判断字x与字y的逐点互信息是否大于所设定的阈值,若是,则将其作为未登录词添加至词典中。其中,计算文本中相邻的字x与字y的逐点互信息的具体过程表示如下:其中P(x)表示字x在文本中出现的概率,P(y)表示字y在文本中出现的概率,P(x,y)表示字x与字y的联合分布概率,P(x)P(y)表示字x与字y相邻的概率。实施例2本实施例基于实施例1的方法,进行了具体的实验。本次实验利用网络爬虫软件,从某购物网站中抓取了5000条商品标题描述信息作为实验语料,过滤掉其中一些标点、下划线、特殊符号等无意义符号,其中3500条作为训练文本,1500条作为测试文本,实验结果的统计信息如下:数据集句子数字数单字词/多字词训练语料3500548342541/34156测试语料1500245451154/14354商品标题描述信息文本是一串包含基本描述的短语,使用MMSeg分词方法,进行基本的词典分词之后,能够划分出大部分的常用词,效率和准确率也有较好的保证。划分出的基本的词单元对于商品的分类来说还不够,同时受到词典的限制,如果没有提前通过新词识别加入新词,会导致很大的歧义,比如“路由器”,分词之后变为“路由/器”。而实际上符合分词结果的应该是“路由器”,但“路由器”属于新词。因此在前一步处理结果的基础上,应用逐点互信息算法对新词进行评判,设置一个阈值作为是否加入新词的标准。逐点互信息的阈值必须限定在一个范围内,才能有效区分是否是新词。如果阈值限定得太低就会导致出现很多无意义的词,即待分词的语料集如果相同的短语重复次数过多,如“正品路由器”同时出现的次数非常多,那么经过逐点互信息计算处理合并后就会增加“正品路由器”这个词进词库中,而正确的分词结果应该是“正品/路由器”,因此合理选择阈值能提高分词质量,而阈值设置的太高又会导致一些具体意义的值被忽略掉。研究表明,随着阈值增大,文本分类的准确率慢慢增加,当阈值取值到一定程度时,准确率不再明显增大,基本维持不变;当阈值超过某个值继续增大时,系统的准确率会下降。因此阈值必须根据实际情况进行调整。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1