mmseg中复杂最大匹配算法没看明白,有人能用一个例子给我解释下吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先先定义 MMSEG 一个重要概念是 Chunk ,他是一个包含3个词的词块。
MMSEG 算法是基于统计模型的,所以算法的规则也是来自于对语料库的分析和归纳。
他有四大规则分别为:
规则 1 : 最大匹配 Maximum matching (取词包含字数最多的chunk)
规则 2 : 最大平均词汇长度 Largest average word length (取词的平均字数最多的chunk)
规则 3 : 最小词方差 Smallest variance of word lengths (取词的方差最小的chunk)
规则 4 : 最大单字自由度 Largest sum of degree of morphemic freedom of one-character words
(取词频自由度最大的chunk, 也就是chunk中的词的词频取对数后的和,)
举的例子比较快了解:
我们用 MMSEG 上的例子 "研究生命起源",但首先先厘清一点,切 Chunk 通常跟你自己的语料库(词典)有很大关系,不一定会切出跟下面一样的 Chunk。
依据规则 1,取length最大的 Chunk
最终结果就是 "研究 | 生命 | 起源"
若需要用到规则 4 ,当中所谓的词频,是要你自己在你的辞典先定义辞典里的每一个词的在你的数据及的某个时间点知当时的词频。
例如 第5号 Chunk : "研究" 词频=3 , "生命" 词频=5 , "起源" 词频=7
取对数的和 = ln3+ln5+ln7
其他 Chunk 也用同样的算法算出其对数和,
最后所以剩下的 Chunk 比对谁最大就取谁即可。
但是如果最后的匹配四个规则的结果得到不只一个 Chunk ,那么 MMSEG 就失效了。