def cut_word(sentence, word_dic):
"""
逆向最大匹配分词器
sentence:待切分的句子
word_dic:字典
"""
# 寻找字典中最大词的长度
word_length_list = [len(word) for word in word_dic]
max_length = max(word_length_list)
# 创建一个列表用来存放切分结果
cut_word_list = []
# 判断句子的长度是否为 0 ,若为 0 ,则句子为空
while sentence:
cut_length = min(max_length, len(sentence))
# 取前 max_cut_length 个字组成一个词
while cut_length >= 1:
word = sentence[-cut_length:]
if cut_length == 1 or word in word_dic:
cut_word_list.insert(0,word)
break
cut_length -= 1
sentence = sentence[0:len(sentence) - len(word)]
return cut_word_list
在前文同样的数据集中准确率为86% 略好一些