自己训练了一个模型,accuracy已经达到了98.99%,整体分词效果还可以,但是还是会存在一些词语分的不准确,例如:“每天”,有些句子可以分出来,有些句子就把这个词拆开了。自己有尝试查看源代码,但是代码深度太深,需要看完及理解还需要很长的时间。所以,想请教一下何博士及各位大佬,针对真样的情况如何进一步提升分词模型的准确率呢?以及想了解一下分词的时候采用的是什么算法呢?
既然你已经榨干了统计模型的力量,那么是时候考虑一下规则系统来应对剩下的edge case了。2.1版将提供强大而灵活的规则系统:
tok.dict_force = tok.dict_combine = None
print(f'不挂词典:\n{mtl("商品和服务行业")["tok/fine"]}')
tok.dict_force = {'和服', '服务行业'}
print(f'强制模式:\n{mtl("商品和服务行业")["tok/fine"]}') # 慎用,详见《自然语言处理入门》第二章
tok.dict_force = {'和服务': ['和', '服务']}
print(f'强制校正:\n{mtl("匹配商品和服务、和服务必按上述切分")["tok/fine"]}')
tok.dict_force = None
tok.dict_combine = {'和服', '服务行业'}
print(f'合并模式:\n{mtl("商品和服务行业")["tok/fine"]}')
各种模式的输出如下:
不挂词典:
['商品', '和', '服务', '行业']
强制模式:
['商品', '和服', '务行', '业']
强制校正:
['匹配', '商品', '和', '服务', '、', '和', '服务', '必按', '上', '述', '切分']
合并模式:
['商品', '和', '服务行业']
好的,谢谢何博士