MECAB的算法分析.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 关于Mecab的算法 Mecab的算法,为最小开销法,该算法主要利用了单词的产生权重(语法对应为分词,但需要注意的一点是语法上不同类型的词语,即便是构成假名的长度一致,也会存在着差异)以及连接权重(语法对应为同音异意)这两个概念。算法逻辑如下。 例: くるまでまつ (kurumadematu) 下面从左到右开始读取假名,从字典里面取出有记录的假名序列-注意,这里排除了首词为单假名的情况。每读到一个在字典中有对应项的假名序列的时,将该序列压入匹配堆栈的第一组(记录为a[0])。 上图为分解图,其中方框内的蓝色色的部分为该假名序列的产生权重(请注意,同样字长的假名序列的产生权重随着词性的不同也会有所不同),红色部分则为连接权重(请注意,该权重表述为当前假名序列到句首的连接可能度的总的权重值,在下文,如果没有做特别说明,则“连接权重”则表示的是总的连接度的权重)。而连接线上的蓝色部分,则为该文法段和它的左端文法段的连接权重。(从文法上,可以理解为某一个词和它的前置部分的权重关系,比如果该词位名词则前半部分可能为状语段。) 由上图可知,くるまでまつ(kurumadematu) 这一个序列,从第一个假名 く (ku)开始,最长在 で(de) 位置失去了在字典中的匹配记录。则按照匹配堆栈中的记录,有三种选择(堆栈中的记录为a[0][2]),分别为 くるま(kuruma) 名词 原型为 車 产生权重为2500 连接权重为 3200 くる(kuru) か段动词 原型为 来る 产生权重为450 连接权重为 3150 くる(kuru) 五段动词 原型为 繰る 产生权重为3000 连接权重为 5700 而这里的连接权重,由于该组匹配序列中的数据皆为头序列,因此,此处的连接权重为该数据(匹配项)出现在句首的可能度。 在完成了“分词可能数据堆栈”的第一组数据的的可能匹配压栈处理后,接下来则按照第一步的步骤,对截取了第一组数据的假名序列之后的假名序列进行同样的匹配压栈操作。这里可以得到第二组的数据(记录为a[1][2])。 根据上图,这个第二组数据将是这样的 で(de) 格助词,在本例中用来表示手段 产生权重为0连接权重为4200 で(de) 助动词,产生权重为1300 连接权重为0 まで(made) 格助词,在本例中用来表示为时间上的终止,产生权重为0 连接权重为4550 但正如图所示,这个产生并不是一对一的关系,而是一对多的关系。即使,从a[0][0](くるま(kuruma))可以产生出a[1][0](で(de)),a[1][1](で(de))两种情况。而a[0][1],a[0][2]则只能产生出a[1][2](まで(made))这一种可能。 因此,完成了这一步之后,需要对所得到的第一组和第二组数据进行一次权重数值上的选取(因为第一组数据和第二组数据,其实是一个笛卡尔集的关系,这样重复下去,将会导致分析结果急剧膨胀。)。这个选取原则,从上图可以看出,是在a[0]和a[1]所形成的语法树中,针对于每个独立的叶子,仅保留权重值最小的支路。由于只选用最小权重的树,因此,在形成的文法分析树中,路径为“くる まで”且连接权重为7100的部分被删除了,对于“くる まで”而言,仅仅保留了连接权重为4500的文法分析树。 注: 这里再来看连接权重的概念,该权重其实是由文法权重以及单词的产生权重所计算产生的。在本例子中,只运用到了右端文法段(可参见例子的对句末的权重数字)的连接权重,也即是说本例的扫描只满足“自左向右”的情况。但在Mecab字典里,该权重被分为了两个部分,一个是左连接权重,一个是右连接权重。这两个部分分别对应的是Mecab的安装目录下的“dic/ipadic”中的right-id.def和left-id.def两个文件。其中,left-id.def用来描述的是该数据左侧部分的解析情况,如对于a[1][0](で)而言,其左接部分a[0][0](くるま)的权重值应该为a[1][0](で)在left-id.def中的对应值。此外,本例中的图仅仅是Mecab的作者为了说明算法而使用的数字,并不是Mecab字典中的真实数字,这里请特别注意。 另外,在Google所用的字典中,左右连接权重似乎被统一了起来,以左连接权重(使用左连接权重能更快的提高分析速度。)为主直接使用了连接权重的概念。请参见代码库下的“data/dictionary”。 在基础词典满足一定的条件的情况下(具体将在下文做分析),采用“自左向右”(以右连接的数据为主)或者是采用“自由向左”(以左连接的数据为主)在算法的精度上都没有任何的区别。 再回到例子本身。现在需要考虑的是第三组匹配数据的情况,也就是a[2]中的匹配情况。 类似a[1]的情况,a[2]有两个数据。为了说明方便,命名为a[2

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档