最近玩公众号会话停不下来:玩转腾讯词向量:Game of Words(词语的加减游戏),准备把NLP相关的模块搬到线上,准确的说,搬到AINLP公众号后台对话,所以,趁着劳动节假期,给AINLP公众号后台聊天机器人添加了一项新技能:中文分词线上PK,例如在AINLP公众号后台对话输入:中文分词 我爱自然语言处理,就可以得到五款分词工具的分词结果:

现在的开源中文分词工具或者模块已经很丰富了,并且很多都有一些在封闭测试集上的效果对比数据,不过这仅仅只能展现这些分词工具在这个封闭测试集上的效果,并不能全面说明问题,个人觉得,选择一个适合自己业务的分词器可能更重要,有的时候,还需要加一些私人定制的词库。

这次首先选了5款中文分词工具,严格的来说,它们不完全是纯粹的中文分词工具,例如SnowNLP, Thulac, HanLP都是很全面的中文自然语言处理工具,这次,先试水它们的中文分词模块。安装这些模块其实很简单,只要按官方文档的方法安装即可,以下做个简单介绍,在Python3.x的环境下测试,Ubuntu16.04 或 MacOS 测试成功。

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 目录

中文分词示例:

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,idf
Tokenization(分割成句子)
文本相似(BM25)
支持python3(感谢erning)

安装:
$ pip install snownlp

中文分词示例:

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

中文分词示例:

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 来引用

中文分词示例:

5) pyhanlp: https://github.com/hankcs/pyhanlp

pyhanlp: Python interfaces for HanLP

自然语言处理工具包HanLP的Python接口, 支持自动下载与升级HanLP,兼容py2、py3。

安装
pip install pyhanlp

注意pyhanlp安装之后使用的时候还会自动下载相关的数据文件,zip压缩文件600多M,速度有点慢,时间有点长

中文分词示例:

现在,可以拿起你的手机,对着AINLP公众号后台输入:中文分词 需要分词的内容,或者可以用语音输入:来,试试语音(识别)聊天(机器人)

五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP相关推荐

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

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

  2. python 分词工具对比_五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP

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

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

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

  4. python英文语义角色标注_八款中文词性标注工具使用及在线测试

    结束了中文分词工具的安装.使用及在线测试,开启中文词性标注在线测试之旅,一般来说,中文分词工具大多数都附带词性标注功能的,这里测试了之前在AINLP公众号上线的8款中文分词模块或者工具,发现它们都是支 ...

  5. 中文分词工具比较 6大中文分词器测试(哈工大LTP、中科院计算所NLPIR、清华大学THULAC和jieba、FoolNLTK、HanLP)

    中文分词工具比较 6大中文分词器测试(jieba.FoolNLTK.HanLP.THULAC.nlpir.ltp) 哈工大LTP.中科院计算所NLPIR.清华大学THULAC和jieba 个人接触的分 ...

  6. 6大中文分词工具测试比较

    中文分词工具比较 6大中文分词器测试(jieba.FoolNLTK.HanLP.THULAC.nlpir.ltp) 哈工大LTP.中科院计算所NLPIR.清华大学THULAC和jieba 个人接触的分 ...

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

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

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

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

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

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

  10. 常用的中文分词工具介绍

    本文首先介绍下中文分词的基本原理,然后介绍下国内比较流行的中文分词工具,如jieba.SnowNLP.THULAC.NLPIR,上述分词工具都已经在github上开源,后续也会附上github链接,以 ...

最新文章

  1. ACNO.15猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再
  2. 【转】mysql多台服务器数据同步
  3. python 试题归纳及答疑 更新中.....
  4. 33个非常有创意的404错误页面设计
  5. raid5坏了一块盘怎么办_服务器阵列信息丢失,数据怎么办?先不要慌,也许很快就能恢复...
  6. python从入门到实践django_Django入门——《Python编程从入门到实践》
  7. TCP解决粘包问题(结构数据封包拆包)
  8. pythonjava有什么区别_Python与JAVA有何区别?
  9. Topcoder SRM 656 (Div.1) 250 RandomPancakeStack - 概率+记忆化搜索
  10. CentOS配置Tomcat开机启动
  11. Java 二叉树层次遍历
  12. 数据结构与算法分析----顺序表
  13. Photoshop教程四:Camera RAW 批量调色
  14. 编译flink1.9.0 报flink-fs-hadoop-shaded找不到
  15. 超频技术之内存“时序”重要参数设置解说
  16. 【转】开发者需要了解的领域特定语言(DSL)
  17. Altium的基本使用方法
  18. 2020 - 2021 年 Web 前端最新导航
  19. 自定义控件 自定义属性_自定义您的外壳
  20. stc89c52rc单片机点亮LED------汇编

热门文章

  1. 数据结构与算法------插入排序
  2. arraylist扩容是创建新数组吗 java_手撕ArrayList底层,透彻分析源码
  3. Flink on Zeppelin (2) - Batch 篇
  4. 一条 update 语句引起的事故,这回可以长长记性了
  5. 干货!一份超详细的Spring Boot知识清单
  6. 程序员如果不学好底层,将毫无作为
  7. 实现视频播放器倍速、清晰度切换、m3u8下载功能
  8. Android Multimedia框架总结(二十七)MediaCodec回顾
  9. Android中R文件的丢失问题以及aapt.exe停止工作如何解决
  10. svm分类代码_数据挖掘入门系列教程(九)之基于sklearn的SVM使用