这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考。

首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AINLP公众号后台在线测试,严格的说,它们不完全是纯粹的中文分词工具,例如SnowNLP, Thulac, HanLP,LTP,CoreNLP都是很全面的(中文)自然语言处理工具。安装这些模块其实很简单,只要按官方文档的方法安装即可,以下做个简单介绍,在Python3.x的环境下测试,Ubuntu16.04 或 MacOS 测试成功。

再附加介绍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
半自动安装:先下载 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: https://github.com/isnowfy/snownlp

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。Features中文分词(Character-Based Generative Model)词性标注(TnT 3-gram 隐马)情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)文本分类(Naive Bayes)转换成拼音(Trie树实现的最大匹配)繁体转简体(Trie树实现的最大匹配)提取文本关键词(TextRank算法)提取文本摘要(TextRank算法)tf,idfTokenization(分割成句子)文本相似(BM25)支持python3(感谢erning)

安装:
$ pip install snownlp

中文分词示例:

In [18]: from snownlp import SnowNLP In [19]: s = SnowNLP("我爱自然语言处理") In [20]: print(' '.join(s.words)) 我 爱 自然 语言 处理

3) PkuSeg: https://github.com/lancopku/pkuseg-python

pkuseg多领域中文分词工具; The pkuseg toolkit for multi-domain Chinese word segmentation主要亮点pkuseg具有如下几个特点:多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。 我们目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型。在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。如果用户无法确定具体领域,推荐使用在混合领域上训练的通用模型。各领域分词样例可参考 example.txt。更高的分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg可以取得更高的分词准确率。支持用户自训练模型。支持用户使用全新的标注数据进行训练。支持词性标注。编译和安装目前仅支持python3为了获得好的效果和速度,强烈建议大家通过pip install更新到目前的最新版本通过PyPI安装(自带模型文件):pip3 install pkuseg之后通过import pkuseg来引用建议更新到最新版本以获得更好的开箱体验:pip3 install -U pkuseg

中文分词示例:

In [23]: import pkuseg In [24]: pku_seg = pkuseg.pkuseg() In [25]: print(' '.join(pku_seg.cut('我爱自然语言处理'))) 我 爱 自然 语言 处理

4) THULAC: https://github.com/thunlp/THULAC-Python

THULAC:一个高效的中文词法分析工具包THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。编译和安装python版(兼容python2.x版和python3.x版)从github下载(需下载模型文件,见获取模型)将thulac文件放到目录下,通过 import thulac 来引用thulac需要模型的支持,需要将下载的模型放到thulac目录下。pip下载(自带模型文件)pip install thulac通过 import thulac 来引用

中文分词示例:

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: https://github.com/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:https://github.com/rockyzhengwu/FoolNLTK

特点可能不是最快的开源中文分词,但很可能是最准的开源中文分词基于BiLSTM模型训练而成包含分词,词性标注,实体识别, 都有比较高的准确率用户自定义词典可训练自己的模型批量处理定制自己的模型get clone https://github.com/rockyzhengwu/FoolNLTK.gitcd FoolNLTK/train详细训练步骤可参考文档

仅在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: https://github.com/HIT-SCIR/ltp
pyltp: https://github.com/HIT-SCIR/pyltp

pyltp 是 语言技术平台(Language Technology Platform, LTP) 的 Python 封装。

安装 pyltp注:由于新版本增加了新的第三方依赖如dynet等,不再支持 windows 下 python2 环境。使用 pip 安装使用 pip 安装前,请确保您已安装了 pip$ pip install pyltp接下来,需要下载 LTP 模型文件。下载地址 - `模型下载 http://ltp.ai/download.html`_当前模型版本 - 3.4.0注意在windows下 3.4.0 版本的 语义角色标注模块 模型需要单独下载,具体查看下载地址链接中的说明。请确保下载的模型版本与当前版本的 pyltp 对应,否则会导致程序无法正确加载模型。从源码安装您也可以选择从源代码编译安装$ git clone https://github.com/HIT-SCIR/pyltp$ git submodule init$ git submodule update$ python setup.py install安装完毕后,也需要下载相应版本的 LTP 模型文件。

这里使用"pip install pyltp"安装,安装完毕后在LTP模型页面下载模型数据:http://ltp.ai/download.html,我下载的是 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: https://stanfordnlp.github.io/CoreNLP/
stanfordcorenlp: https://github.com/Lynten/stanford-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
第二个是: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大数据语义智能分析平台https://github.com/NLPIR-team/NLPIR
Python接口:https://github.com/tsroten/pynlpir

10)DeepNLP: Deep Learning NLP Pipeline implemented on Tensorflow
深度学习中文(分词)NLP工具https://github.com/rockingdingo/deepnlp

11) kcws: Deep Learning Chinese Word Segment
深度学习中文分词https://github.com/koth/kcws

12) ID-CNN-CWS: Source codes and corpora of paper "Iterated Dilated Convolutions for Chinese Word Segmentation"
基于迭代卷积神经网络的中文分词https://github.com/hankcs/ID-CNN-CWS

13)Genius: a chinese segment base on crf
中文分词 (Python) Genius是一个开源的python中文分词组件,采用 CRF(Conditional Random Field)条件随机场算法。https://github.com/duanhongyi/genius

14)YaYaNLP:Pure python NLP toolkit
纯python编写的中文自然语言处理包https://github.com/Tony-Wang/YaYaNLP

15)小明NLP:提供中文分词, 词性标注, 拼写检查,文本转拼音,情感分析,文本摘要,偏旁部首https://github.com/SeanLee97/xmnlp

16)loso: Chinese segmentation libraryhttps://github.com/fangpenlin/loso

17) yaha:"哑哈"中文分词
更快或更准确,由你来定义。通过简单定制,让分词模块更适用于你的需求。 "Yaha" You can custom your Chinese Word Segmentation efficiently by using Yahahttps://github.com/jannson/yaha

18) ChineseWordSegmentation:无需语料库的中文分词https://github.com/Moonshile/ChineseWordSegmentation

19) fnlp: 中文自然语言处理工具包 Toolkit for Chinese natural language processinghttps://github.com/FudanNLP/fnlp
这一款出自复旦NLP组,Java实现,貌似还没有Python接口。

20)ansj分词
ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典
这一款也是一个很棒的中文分词工具,不过貌似也没有很好的Python接口。

参考:
五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
中文分词工具在线PK新增:FoolNLTK、HITLTP、StanfordCoreNLP

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:http://www.52nlp.cn

本文链接地址:Python中文分词工具大合集:安装、使用和测试 http://www.52nlp.cn/?p=11789

jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试相关推荐

  1. python 分词工具训练_Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...

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

    转自:AINLP 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具 ...

  3. 资源 | Python中文分词工具大合集

    跟着博主的脚步,每天进步一点点 这篇文章事实上整合了之前文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工 ...

  4. 简单好用的中文分词工具之HanLP的安装与使用

    0.HanLP的安装 pyhanlp是HanLP的Python的接口,支持自动下载与升级HanLP,兼容pthon2.python3.由于HanLP主项目采用Java开发,所以安装之前,windows ...

  5. ik分词和jieba分词哪个好_Pubseg:一种单双字串的BiLSTM中文分词工具

    中文分词是中文自然语言处理中的重要的步骤,有一个更高精度的中文分词模型会显著提升文档分类.情感预测.社交媒体处理等任务的效果[1]. Pubseg是基于BiLSTM中文分词工具,基于ICWS2005P ...

  6. NLP笔记:中文分词工具简介

    中文分词工具简介 0. 引言 1. jieba分词 1. jieba分词的基本用法 2. jieba分词的进阶版用法 1. 全模式的分词 2. 自定义领域词表加入 3. 使用jieba进行关键词抽取 ...

  7. python统计词频_Python中文分词及词频统计

    中文分词 中文分词(Chinese Word Segmentation),将中文语句切割成单独的词组.英文使用空格来分开每个单词的,而中文单独一个汉字跟词有时候完全不是同个含义,因此,中文分词相比英文 ...

  8. python 小说词频统计_Python中文分词及词频统计

    中文分词 中文分词(Chinese Word Segmentation),将中文语句切割成单独的词组.英文使用空格来分开每个单词的,而中文单独一个汉字跟词有时候完全不是同个含义,因此,中文分词相比英文 ...

  9. jieba textrank关键词提取 python_五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg,THULAC, HanLP...

    最近玩公众号会话停不下来:玩转腾讯词向量:Game of Words(词语的加减游戏),准备把NLP相关的模块搬到线上,准确的说,搬到AINLP公众号后台对话,所以,趁着劳动节假期,给AINLP公众号 ...

最新文章

  1. 可自动定时切换的选项卡/滑动门导航代码
  2. Angular NgTemplateOutlet的一个例子
  3. ARM和NEON指令 very gooooooood.............
  4. select for update作用
  5. python怎么画长方体_将长方体绘制为图像
  6. java中调用dos_JAVA如何调用DOS命令
  7. Cesium 1.51新功能评测
  8. 20200723每日一句
  9. activiti工作流 php,码云社 | 砺锋科技-SpringBoot整合Activiti工作流(附源码) - 用代码改变世界...
  10. 如何做好测试用例设计
  11. presscad图层LIsp_统赢presscad2010免安装版 32位/64位
  12. HDU 4966 GGS-DDU [最小树形图]
  13. linux 火狐 jre插件,[原]再谈Firefox安装java插件的问题
  14. java时区时间转换
  15. laravel中faker的方法总结
  16. 华为机试:机器人走迷宫
  17. 会编程的少年有多厉害?8岁女儿写代码哄程序员爸爸开心,网友直呼:破防了
  18. wifi系列------初始化
  19. iOS拍照和录制视频 摄像头使用
  20. JRtplib开发笔记(二):JRtplib库编译、示例演示

热门文章

  1. 11.15日工作总结(补)
  2. 使用阿里云配置管理ACM实现zookeeper依赖服务的透明Failover迁移
  3. android-----带你一步一步优化ListView(一)
  4. iOS bug 日志 -frame 和 bounds的区别
  5. SQLSERVER2014中的新功能
  6. PHPExcel读取excel的多个sheet存入数据库
  7. java反射详解 (一)
  8. opensuse11.4 apache2 403 错误.
  9. 修复 Windows XP/2003 双系统无法启动
  10. NOD32: 教育网、公网超级 病毒更新服务器