我面临一个需要快速分词的场景,调研了几个采用预训练模型的“现代”分词器,hanlp2.1的分词最为精准,但是分词速度无法满足,其他几个基于统计和传统方法的分词器分词速度可以满足要求,但是精度都不够。所以我想能不能利用hanlp对语料进行分词和统计词频,再替换掉jieba的词库。这几天利用hanlp对维基百科的中文数据进行分词统计生成jieba的词库,并使用sighan05的pku测试集进行测试,感觉效果还不错。
以下是测试结果:
# R:0.947 | P:0.959 | F:0.953 | hanlp2.1(模型CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ERNIE_GRAM_ZH) |
---|---|---|---|
# R:0.787 | P:0.853 | F:0.818 | jieba(自带词库) |
# R:0.874 | P:0.896 | F:0.885 | jieba(40万wiki生成的词库,模型FINE_ELECTRA_SMALL_ZH) |
# R:0.875 | P:0.896 | F:0.885 | jieba(104万wiki生成的词库,模型FINE_ELECTRA_SMALL_ZH) |
第一行以hanlp2.1的mtl的分词任务作为参考,后三行分别是jieba使用自带词库、40万维基百科生成词库和104万维基百科生成词库的测试结果。
从结果来看,重新训练的词库对jieba的分词性能有很大提升,但104万行语料训练出的词库仅比40万行在召回率上提升了0.1%,准确率没有提升,是不是可以认为,语料广度比较重要,但是语料覆盖的词达到一定程度以后,规模大小对于词库质量影响不大。