0
点赞
收藏
分享

微信扫一扫

Python中文分词工具大合集:安装、使用和测试

Mezereon 2022-02-15 阅读 93

这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的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中文分词工具大合集:安装、使用和测试 – 我爱自然语言处理

相关文章:

  1. 中文分词工具在线PK新增:FoolNLTK、HITLTP、StanfordCoreNLP
  2. 五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
  3. 中文分词工具评估
  4. 自然语言处理工具包spaCy介绍

转载自: Python中文分词工具大合集:安装、使用和测试 – 我爱自然语言处理

举报

相关推荐

0 条评论