正向最大匹配法(Maximum Match Method,MM 法)是指从左向右按最大原则与词典里面的词进行匹配。假设词典中最长词是 m个字,那么从待切分文本的最左边取 m个字符与词典进行匹配,如果匹配成功,则分词, 如果匹配不成功,那么取 m−1 个字符与词典匹配,直到成功匹配为止。
正向最大匹配法
示例
句子: 中华民族从此站起来了
词典:”中华”,”民族”,”从此”,”站起来了”
第一步:词典中最长是 4 个字,所以我们将 “中华民族” 取出来与词典进行匹配,匹配失败。
第二步:于是,去掉 “族”,以 “中华民” 进行匹配,匹配失败
第三步:去掉 “中华民” 中的 “民”,以 “中华” 进行匹配,匹配成功。
第四步:在带切分句子中去掉匹配成功的词,待切分句子变成 “民族从此站起来了”。
第五步:重复上面的第 1 - 4 步骤
第六步:若最后一个词语匹配成功,结束。
最终句子被分成:“中华 / 民族 / 从此 / 站起来了 ”
算法流程
Python实现
1 | # 文本 |