本项目测试各个常见分词软件在分词效果上的表现,比较各个分词方法和理论的实际效果,对分词速度也做了简单的考核。
本文选择了4个相对常见的分词工具,分别是:哈工大的 LTP
、中科院计算所的 NLPIR
、清华大学的 THULAC
, Sun Junyi 的 jieba
和 Xiaoquan Kong 的 MicroTokenizer
。
- LTP @ https://github.com/HIT-SCIR/pyltp
- NLPIR @ https://github.com/tsroten/pynlpir
- THULAC @ https://github.com/thunlp/THULAC-Python
- jieba @ https://github.com/fxsjy/jieba
- MicroTokenizer @ https://github.com/howl-anderson/MicroTokenizer
SIGHAN Bakeoff 2005 的 MSR
、PKU
、AS
and CityU
at http://sighan.cs.uchicago.edu/bakeoff2005/
本数据集是 ACL SIGHAN
于 2005 年组织的中文分词比赛所用的数据集,也是学术界测试分词工具的标准数据集。
用 SIGHAN Bakeoff 2005 比赛中所自带的 score 脚本、test gold 数据和 training words 数据 5 个工具进行准确性测试,具体使用方法可参考:http://sighan.cs.uchicago.edu/bakeoff2005/data/icwb2-data.zip 中的readme文件。
pip install -r ./requirements.txt
如果 Mac OS 下安装 pyltp
出现 MACOSX_DEPLOYMENT_TARGET
相关的问题,请参考 pyltp 安装 和 install_pyltp_under_macos.bash
bash ./install_model_or_license.bash
如果遇到 Error: unable to fetch newest license.
那么可能是 Python 3 的 SSL 的问题,参考 pynlpir update error 或者 How to make Python use CA certificates from Mac OS TrustStore? 进行解决。
python ./train_MicroTokenizer.py
python ./main.py
python ./render_readme.py
渲染结果为 README.md
这里简单介绍各个 MicroTokenizer 模型的情况,具体信息请访问 MicroTokenizer 文档
使用人民日报的数据,模型为 HMM
使用人民日报的数据,模型为 DAG
使用人民日报的数据,模型为 HMM 和 DAG 联合模型
使用 SIGHAN Bakeoff 2005 的训练数据,模型为 HMM 和 DAG 联合模型
{% for item in test_result %}
{{ item.markdown_table }} {% endfor %}
{{ speed }}
{{ sysinfo }}
{{ big_corpus }}
- [TODO] 添加 HanLP 作为待评测中文分词器
- [TODO] 添加 Stanford core NLP 作为待评测中文分词器
- [TODO] 添加 FudanNLP 作为待评测中文分词器
thulac
和ltp
性能突出, 但都是不是可以商业免费使用的(如果我没理解错的话)。- 比较流行的工具中
jieba
能商用,但性能上和以上顶级分词工具还有不少差距。 MicroTokenizer
只使用人民日报或者 SIGHAN Bakeoff 2005 提供的语料,但是其CRF
模型能力非常优秀,在添加允许用户添加自定义词典的特性后,将是非常有前景的中文分词工具。
- 文本部分目前大量参考了 中文分词工具测评 的组织方式和表达。