完整的代码和资料见 github:zlhcsm
知识普及:反向最大匹配法的基本原理与正向最大匹配法类似,只是分词顺序变为从右至左。
步骤
1,一般从一个字符串的结束位置,选择一个最大长度的词长的片段,如果序列不足最大词长,则选择全部序列。
2,首先看该片段是否在词典中,如果是,则算为一个分出来的词,如果不是,则从左边开始,减少一个字符,然后看短一点的这个片段是否在词典中,一次循环,直到只剩下一个字。
3,序列变为第2步骤截取分词后,剩下的部分序列
核心代码
1,读取文件,由于字典文件格式不一定相同,因此建议采用此文件读取代码
def init():
"""
读取词典文件
:return:
"""
with open("../dic/dict.txt", "r",