mmseg分词
mmseg分词算法是基于统计模型的,所以算法的规则也是来自对语料库的分析和数学归纳,因为中文字符没有明确的分界,会导致大量的字符分界歧义,而且,中文里面,词和短语也很难界定,因此,算法除了要做统计和数学归纳之外,还要做歧义的解决。
在mmseg分词中,有一个叫chunk的概念:
chunk,是一句话的分词方式。包括一个词条数组和四个规则。
如:研究生命,有“研究/生命”和“研究生/命”两种分词方式,这就是两个chunk。
一个chunk有四个属性:长度、平均长度(长度/分词数)、方差、单字自由度(各单词条词频的对数之和)。
下面列出了chunk的4个属性以及对应的规则:
属性 |
含义 |
对应规则 |
长度 |
chuck中各个词的长度之和 |
规则1:取最大匹配的chunk |
平均长度 |
长度/词数 |
规则2:取平均词长最大的chunk |
标准差的平方 |
同数学中的定义 |
规则3:取词长标准差最小的chunk |
单字自由度 |
各单字词词频的对数之和 |
规则4:取单字词自由语素度之和最大的chunk |
做好分词之后,会得到多种分词方式,这时候就要使用一些过滤规则来完成歧义的解决,以得到最终的分词方式。
歧义解决规则:
1、最大匹配 匹配最大长度的词。如“国际化”,有“国际/化”、“国际化”两种分词方式,选择后者。
2、最大平均词长度 匹配平均词最大的chunk。如“南京市长江大桥”,有“南京市/长江大桥”、“南京/市长/江大桥”三种分词方式,前者平均词长度是7/2=3.5,后者是7/3=2.3,故选择前者的分词方式。
3、最大方差 去方差最大的chunk。如“研究生命科学”,