跟着博主的脚步,每天进步一点点
这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考。
首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AINLP公众号后台在线测试,严格的说,它们不完全是纯粹的中文分词工具,例如SnowNLP, Thulac, HanLP,LTP,CoreNLP都是很全面的(中文)自然语言处理工具。安装这些模块其实很简单,只要按官方文档的方法安装即可,以下做个简单介绍,主要是在Python3.x & Ubuntu16.04 的环境下测试及安装这些中文分词器。
再附加介绍12款其他的中文分词工具或者中文分词模块,最后的两款fnlp和ansj是比较棒的java中文分词工具,貌似还没有python接口,记录一下。这些中文分词工具我没有测试,感兴趣的同学可以动手试试。
1) Jieba: https://github.com/fxsjy/jieba
“结巴”中文分词:做最好的 Python 中文分词组件
"Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module.
特点
精确模式,试图将句子最精确地切开,适合文本分析;
支持自定义词典
MIT 授权协议
安装:
代码对 Python 2/3 均兼容
全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba
中文分词示例:
2) SnowNLP: https://github.com/isnowfy/snownlp
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。
Features
安装:
中文分词示例:
3) PkuSeg: https://github.com/lancopku/pkuseg-python
pkuseg多领域中文分词工具; The pkuseg toolkit for multi-domain Chinese word segmentation
主要亮点
多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。我们目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型。在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。如果用户无法确定具体领域,推荐使用在混合领域上训练的通用模型。各领域分词样例可参考 example.txt。
编译和安装
pip3 install pkuseg
pip3 install -U pkuseg
中文分词示例:
4) THULAC: https://github.com/thunlp/THULAC-Python
THULAC:一个高效的中文词法分析工具包
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:
能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
将thulac文件放到目录下,通过 import thulac 来引用
pip install thulac
中文分词示例:
5) pyhanlp: https://github.com/hankcs/pyhanlp
pyhanlp: Python interfaces for HanLP
自然语言处理工具包HanLP的Python接口, 支持自动下载与升级HanLP,兼容py2、py3。
安装
注意pyhanlp安装之后使用的时候还会自动下载相关的数据文件,zip压缩文件600多M,速度有点慢,时间有点长
中文分词示例:
特点
定制自己的模型
仅在linux Python3 环境测试通过
安装,依赖TensorFlow, 会自动安装:
中文分词示例:
pyltp: https://github.com/HIT-SCIR/pyltp
pyltp 是 语言技术平台(Language Technology Platform, LTP) 的 Python 封装。
安装 pyltp
$ pip install pyltp
下载地址 - `模型下载 http://ltp.ai/download.html`_
从源码安装
$ git clone https://github.com/HIT-SCIR/pyltp
这里使用"pip install pyltp"安装,安装完毕后在LTP模型页面下载模型数据:http://ltp.ai/download.html,我下载的是 ltp_data_v3.4.0.zip ,压缩文件有600多M,解压后1.2G,里面有不同NLP任务的模型。
中文分词示例:
8) Stanford CoreNLP: https://stanfordnlp.github.io/CoreNLP/
这里用的是斯坦福大学CoreNLP的python封装:stanfordcorenlp
stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks such as Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.
安装很简单,pip即可:
pip install stanfordcorenlp
但是要使用中文NLP模块需要下载两个包,在CoreNLP的下载页面下载模型数据及jar文件,目前官方是3.9.1版本:
https://nlp.stanford.edu/software/corenlp-backup-download.html
第一个是:stanford-corenlp-full-2018-02-27.zip
前者解压后把后者也要放进去,否则指定中文的时候会报错。
中文分词使用示例:
9) NLPIR: NLPIR大数据语义智能分析平台
10)DeepNLP: Deep Learning NLP Pipeline implemented on Tensorflow
11) kcws: Deep Learning Chinese Word Segment
12) ID-CNN-CWS: Source codes and corpora of paper "Iterated Dilated Convolutions for Chinese Word Segmentation"
13)Genius: a chinese segment base on crf
14)YaYaNLP:Pure python NLP toolkit
15)小明NLP:提供中文分词, 词性标注, 拼写检查,文本转拼音,情感分析,文本摘要,偏旁部首
16)loso: Chinese segmentation library
17) yaha:"哑哈"中文分词
18) ChineseWordSegmentation:无需语料库的中文分词
19) fnlp: 中文自然语言处理工具包 Toolkit for Chinese natural language processing
20)ansj分词
The End
长按二维码关注AI小白入门
ID:StudyForAI
学习AI学习ai(爱)
期待与您的相遇~