LAC 是百度开源的高质量分词工具(GRU+CRF),其提供增量训练的接口,形如:
from LAC import LAC
# 选择使用分词模型
lac = LAC(mode = 'seg')
# 训练和测试数据集,格式一致
train_file = "./data/seg_train.tsv"
test_file = "./data/seg_test.tsv"
lac.train(model_save_dir='./my_seg_model/',train_data=train_file, test_data=test_file)
# 使用自己训练好的模型
my_lac = LAC(model_path='my_seg_model',mode = 'seg')
如何针对不同的业务场景,来优化分词结果呢?
最简单的方式,就是构建与场景相关的训练语料,增量训练lac模型。
笔者有一个小思路:
构建一个高质量的词库(如jieba词典、搜狗词库),根据jieba分词或原始lac分词,过滤出分词结果都在词库中的语料,并优化语料(合并分太细的词,切开分太粗的词),最后增量训练,done。