NLP系列(一)pkuseg-python:一个高准确度的中文分词工具包
编辑文章
1 简介
pkuseg-python简单易用,支持多领域分词,在不同领域的数据上都大幅提高了分词的准确率。
pkuseg是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。pkuseg具有如下几个特点:
高分词准确率。相比于其他的分词工具包,我们的工具包在不同领域的数据上都大幅提高了分词的准确度。根据我们的测试结果,pkuseg分别在示例数据集(MSRA和CTB8)上降低了79.33%和63.67%的分词错误率。
多领域分词。我们训练了多种不同领域的分词模型。根据待分词的领域特点,用户可以自由地选择不同的模型。
支持用户自训练模型。支持用户使用全新的标注数据进行训练。
2 编译和安装
通过pip下载(自带模型文件)
pip install pkuseg
之后通过import pkuseg来引用
从github下载(需要下载模型文件,见预训练模型)
将pkuseg文件放到目录下,通过import pkuseg使用
模型需要下载或自己训练。
3 性能对比
pkuseg官方给出与来自清华的THULAC和目前主流中文分词工具jieba的比较效果,pkuseg的准确率远超于THULAC和jieba。
实验人员选择Linux作为测试环境,在新闻数据(MSRA)和混合型文本(CTB8)数据上对不同工具包进行了准确率测试,使用了第二届国际汉语分词评测比赛提供的分词评价脚本。评测结果如下:
我们可以看到从F1-Score和错误率上,pkuseg都明显优于另外两者
4 使用教程
代码实例1 使用默认模型及默认词典分词
代码示例2 设置用户自定义词典
代码示例3 指定模型
默认情况下,使用的预模型是
代码示例4 支持多线程
可以指定输入和输出文件,直接从输入读取文本,将分词结果输出到结果文件
刚开始input.txt只有一句话用了两分钟。另外怀疑时间不是按句子个数线性增加的,然后又向input.txt添了一篇文章,差不多100句话也是两分钟
代码示例5 训练模型
这部分因为还没确定msr_training.utf8里面数据的格式,没有训练集,先不做测试
5 参数说明
6 相关论文
本工具包基于以下文献:
Xu Sun, Houfeng Wang, Wenjie Li. Fast Online Training with Frequency-Adaptive Learning Rates for Chinese Word Segmentation and New Word Detection. ACL. 253–262. 2012
Jingjing Xu, Xu Sun. Dependency-based Gated Recursive Neural Network for Chinese Word Segmentation. ACL 2016: 567-572
7 客观看待
第一条 与其余分词工具包的性能对比是否公平
针对这个问题,有人也在issue提出了质疑,有兴趣大家可以看下,这里不做过多评价
第二条 不支持词性标注
感觉这个可以和jieba结合使用,分完词之后空格隔开,然后jieba再进行一次词性标注(未验证)。
领取专属 10元无门槛券
私享最新 技术干货