词是自然语言中能够独立运用的最小单位,是自然语言处理的基本单位。
自动分词分析就是利用计算机对自然语言的形态进行分析,判断词的结构和类别等。
最大匹配法(Maximum Match Method)
- 正向最大匹配算法(Forward MM,FMM)
- 逆向最大匹配算法(Backward MM,BMM)
- 双向最大匹配法(Bi-directional MM)
算法流程
前向最⼤匹配算法(FMM):
(1)待切分的汉字串 s1 ,已切分的汉字串 s2(初始为空);
(2)如果 s1 为空串,转到(6);
(3)从 s1 的左边复制⼀个⼦串 w 作为候选词, w 尽可能长,但不超过最⼤词长;
(4)如果在词表中能找到 w,或者 w 的长度为2(这个数值可以自己根据情况设定,通常为词表内最短的词的长度),那么,将 w 和⼀个界词标记⼀起加到 s2 的右边,并从 s1 的左边去掉 w,转 到(2);
(5)去掉w的最后⼀个汉字,转到(4);
(6)结束。
实例
给定词表:
['他', '是', '研究', '研究⽣', '⽣物', '物化', '化学', '⽣物化学', '的', '⼀位', '科学家', '学']
待划分句⼦:
"他是研究⽣物化学的⼀位科学家"
最⼤词长:
MaxWordLength = 8 (汉字)
划分过程
FMM划分过程:
1、考虑子串 "他是研究生物化学" ,判断其不再给定词表中,因此,删除最后一个汉字,考虑子串 "他是研究生物化",再次判断其不再给定词表中,

文章介绍了自然语言处理中的基本单位——词,以及自动分词分析中的最大匹配法,包括前向最大匹配(FMM)、后向最大匹配(BMM)和双向最大匹配。通过实例展示了FMM和BMM的算法流程和代码实现,对比了两种方法在不同场景下的效果。

223

被折叠的 条评论
为什么被折叠?



