这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考。
首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AINLP公众号后台在线测试,严格的说,它们不完全是纯粹的中文分词工具,例如SnowNLP, Thulac, HanLP,LTP,CoreNLP都是很全面的(中文)自然语言处理工具。安装这些模块其实很简单,只要按官方文档的方法安装即可,以下做个简单介绍,在Python3.x的环境下测试,Ubuntu16.04 或 MacOS 测试成功。
再附加介绍12款其他的中文分词工具或者中文分词模块,最后的两款fnlp和ansj是比较棒的java中文分词工具,貌似还没有python接口,记录一下。这些中文分词工具我没有测试,感兴趣的同学可以动手试试。
1) Jieba: GitHub - fxsjy/jieba: 结巴中文分词
安装:
代码对 Python 2/3 均兼容
全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba
半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup.py install
手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录
中文分词示例:
In [6]: import jieba In [7]: seg_list = jieba.cut("我爱自然语言处理", cut_all=True) In [8]: print("Full Mode: " + " ".join(seg_list)) # 全模式 Full Mode: 我 爱 自然 自然语言 语言 处理 In [9]: seg_list = jieba.cut("我爱自然语言处理", cut_all=False) In [10]: print("Default Mode: " + " ".join(seg_list)) # 默认模式/精确模式 Default Mode: 我 爱 自然语言 处理 In [11]: seg_list = jieba.cut("我爱自然语言处理") In [12]: print("Default Mode: " + " ".join(seg_list)) # 默认精确模式 Default Mode: 我 爱 自然语言 处理 In [13]: seg_list = jieba.cut_for_search("我爱自然语言处理") # 搜索引擎模式 In [14]: print("Search Mode: " + " ".join(seg_list)) # 搜索引擎模式 Search Mode: 我 爱 自然 语言 自然语言 处理 |
2) SnowNLP: GitHub - isnowfy/snownlp: Python library for processing Chinese text
安装:
$ pip install snownlp
中文分词示例:
In [18]: from snownlp import SnowNLP In [19]: s = SnowNLP("我爱自然语言处理") In [20]: print(' '.join(s.words)) 我 爱 自然 语言 处理 |
3) PkuSeg: GitHub - lancopku/pkuseg-python: pkuseg多领域中文分词工具; The pkuseg toolkit for multi-domain Chinese word segmentation
中文分词示例:
In [23]: import pkuseg In [24]: pku_seg = pkuseg.pkuseg() In [25]: print(' '.join(pku_seg.cut('我爱自然语言处理'))) 我 爱 自然 语言 处理 |
4) THULAC: GitHub - thunlp/THULAC-Python: An Efficient Lexical Analyzer for Chinese
中文分词示例:
In [31]: import thulac In [32]: thu_lac = thulac.thulac(seg_only=True) Model loaded succeed In [33]: thu_result = thu_lac.cut("我爱自然语言处理", text=True) In [34]: print(thu_result) 我 爱 自然 语言 处理 |
5) pyhanlp: GitHub - hankcs/pyhanlp: 中文分词
pyhanlp: Python interfaces for HanLP
自然语言处理工具包HanLP的Python接口, 支持自动下载与升级HanLP,兼容py2、py3。
安装
pip install pyhanlp
注意pyhanlp安装之后使用的时候还会自动下载相关的数据文件,zip压缩文件600多M,速度有点慢,时间有点长
中文分词示例:
In [36]: from pyhanlp import HanLP In [37]: han_word_seg = HanLP.segment('我爱自然语言处理') In [38]: print(' '.join([term.word for term in han_word_seg])) 我 爱 自然语言处理 |
6)FoolNLTK:GitHub - rockyzhengwu/FoolNLTK: A Chinese Nature Language Toolkit
仅在linux Python3 环境测试通过
安装,依赖TensorFlow, 会自动安装:
pip install foolnltk
中文分词示例:
In [1]: import fool In [2]: text = "我爱自然语言处理" In [3]: print(fool.cut(text)) [['我', '爱', '自然', '语言', '处理']] In [4]: print(' '.join(fool.cut(text)[0])) 我 爱 自然 语言 处理 |
7) LTP: GitHub - HIT-SCIR/ltp: Language Technology Platform
pyltp: GitHub - HIT-SCIR/pyltp: pyltp: the python extension for LTP
pyltp 是 语言技术平台(Language Technology Platform, LTP) 的 Python 封装。
这里使用"pip install pyltp"安装,安装完毕后在LTP模型页面下载模型数据:语言技术平台( Language Technology Plantform | LTP ) ,我下载的是 ltp_data_v3.4.0.zip ,压缩文件有600多M,解压后1.2G,里面有不同NLP任务的模型。
中文分词示例:
In [5]: from pyltp import Segmentor In [6]: segmentor = Segmentor() # 分词模型路径,依据你下载后放得位置而定 In [7]: segmentor.load('./data/ltp/ltp_data_v3.4.0/cws.model') In [8]: print(' '.join(segmentor.segment('我爱自然语言处理'))) 我 爱 自然 语言 处理 |
8) Stanford CoreNLP: Overview - CoreNLP
stanfordcorenlp: GitHub - Lynten/stanford-corenlp: Python wrapper for Stanford CoreNLP.
这里用的是斯坦福大学CoreNLP的python封装:stanfordcorenlp
安装很简单,pip即可:
pip install stanfordcorenlp
但是要使用中文NLP模块需要下载两个包,在CoreNLP的下载页面下载模型数据及jar文件,目前官方是3.9.1版本:
Software - The Stanford Natural Language Processing Group - CoreNLP backup download site
第一个是:stanford-corenlp-full-2018-02-27.zip
第二个是:stanford-chinese-corenlp-2018-02-27-models.jar
前者解压后把后者也要放进去,否则指定中文的时候会报错。
中文分词使用示例:
In [11]: from stanfordcorenlp import StanfordCoreNLP In [12]: stanford_nlp = StanfordCoreNLP('./data/corenlp/stanford-corenlp-full-201 ...: 8-02-27', lang='zh') In [13]: seg_results = stanford_nlp.word_tokenize('我爱自然语言处理') In [14]: print(' '.join(seg_results)) 我爱 自然 语言 处理 |
9) NLPIR: NLPIR大数据语义智能分析平台
GitHub - NLPIR-team/NLPIR
Python接口:GitHub - tsroten/pynlpir: A Python wrapper around the NLPIR/ICTCLAS Chinese segmentation software.
10)DeepNLP: Deep Learning NLP Pipeline implemented on Tensorflow
深度学习中文(分词)NLP工具
GitHub - rockingdingo/deepnlp: Deep Learning NLP Pipeline implemented on Tensorflow
11) kcws: Deep Learning Chinese Word Segment
深度学习中文分词
GitHub - koth/kcws: Deep Learning Chinese Word Segment
12) ID-CNN-CWS: Source codes and corpora of paper "Iterated Dilated Convolutions for Chinese Word Segmentation"
基于迭代卷积神经网络的中文分词
GitHub - hankcs/ID-CNN-CWS: Source codes and corpora of paper "Iterated Dilated Convolutions for Chinese Word Segmentation"
13)Genius: a chinese segment base on crf
中文分词 (Python) Genius是一个开源的python中文分词组件,采用 CRF(Conditional Random Field)条件随机场算法。
GitHub - duanhongyi/genius: a chinese segment base on crf
14)YaYaNLP:Pure python NLP toolkit
纯python编写的中文自然语言处理包
GitHub - Tony-Wang/YaYaNLP: Pure python NLP toolkit
15)小明NLP:提供中文分词, 词性标注, 拼写检查,文本转拼音,情感分析,文本摘要,偏旁部首
GitHub - SeanLee97/xmnlp: xmnlp:提供中文分词, 词性标注, 命名体识别,情感分析,文本纠错,文本转拼音,文本摘要,偏旁部首,句子表征及文本相似度计算等功能
16)loso: Chinese segmentation library
GitHub - fangpenlin/loso: Chinese segmentation library
17) yaha:"哑哈"中文分词
更快或更准确,由你来定义。通过简单定制,让分词模块更适用于你的需求。 "Yaha" You can custom your Chinese Word Segmentation efficiently by using Yaha
GitHub - jannson/yaha: yaha
18) ChineseWordSegmentation:无需语料库的中文分词
GitHub - Moonshile/ChineseWordSegmentation: Chinese word segmentation algorithm without corpus(无需语料库的中文分词)
19) fnlp: 中文自然语言处理工具包 Toolkit for Chinese natural language processing
https://github.com/FudanNLP/fnlp
这一款出自复旦NLP组,Java实现,貌似还没有Python接口。
20)ansj分词
ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典
这一款也是一个很棒的中文分词工具,不过貌似也没有很好的Python接口。
参考:
五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
中文分词工具在线PK新增:FoolNLTK、HITLTP、StanfordCoreNLP
注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:https://www.52nlp.cn
本文链接地址:Python中文分词工具大合集:安装、使用和测试 Python中文分词工具大合集:安装、使用和测试 – 我爱自然语言处理
相关文章:
- 中文分词工具在线PK新增:FoolNLTK、HITLTP、StanfordCoreNLP
- 五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
- 中文分词工具评估
- 自然语言处理工具包spaCy介绍
转载自: Python中文分词工具大合集:安装、使用和测试 – 我爱自然语言处理