规则分词一般有正向最大匹配法,逆向最大匹配法和双向最大匹配法
- 正向最大分词法(Maximum Match Method,MM法)
基本思想:假定分词词典中最长词有i个字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样一个词,则匹配成功,匹配字段被作为一个词被切分出来。如果字典中找不到这样一个词,则匹配失败,将匹配字段的最后一个字去掉,对剩下的字串重复上述步骤,如此直到匹配成功。这样就完成一轮匹配,继续选取下一个i字词,进行匹配。
例:
class MM(object):
def __init__(self):
self.window_size = 3
def cut(self,text):
result=[]
index=0
text_length = len(text)
dic = ['在','事故','中','失踪','的','士兵','已经','死亡']
while text_length > index:
for size in range(self.window_size+index,index,-1):
piece = text[index:size]
if piece in dic:
index = size-1
break