中文分词工具简介与安装教程(jieba、nlpir、hanlp、pkuseg、foolnltk、snownlp、thulac)
2.1 jieba
2.1.1 jieba简介
Jieba中文含义结巴,jieba库是目前做的最好的python分词组件。首先它的安装十分便捷,只需要使用pip安装;其次,它不需要另外下载其它的数据包,在这一点上它比其余五款分词工具都要便捷。另外,jieba库支持的文本编码方式为utf-8。
Jieba库包含许多功能,如分词、词性标注、自定义词典、关键词提取。基于jieba的关键词提取有两种常用算法,一是TF-IDF算法;二是TextRank算法。基于jieba库的分词,包含三种分词模式:
- 精准模式:试图将句子最精确地切开,适合文本分析);
- 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义);
- 搜索引擎模式:搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
Jieba官方文档:https://pypi.org/project/jieba/
2.1.2 jieba安装
Jieba库安装比较便捷,只需要在命令框中输入:pip install jieba;或者在pycharm中,通过setting-project安装。
2.2 thulac
2.2.1 thulac简介
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC集成了目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字),模型标注能力强大。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。总的来说,可以理解为thulac训练的分词、词性标注语料库很大,性能优良。
Thulac的简单分词,可以通过python程序import thulac,新建thulac.thulac(args)类,其中args为程序的参数,之后可以通过调用thulac.cut()进行单句分词。
Thulac使用参考文档:http://thulac.thunlp.org/
2.2.2 thulac安装
Thulac库的安装也较为简单,不需要下载特别的数据包,安装方法:pip install thulac。但是需要注意一点,可能会存在license过期问题,
解决方法:https://www.cnblogs.com/maxxu11/p/12546096.html
2.3 foolNLTK
2.3.1 foolNLTK简介
FoolNLTK是一个使用双向LSTM(BiLSTM 模型)构建的便捷的中文处理工具包,可支持python编译环境。FoolNLTK包含中文分词、词性标注、命名实体识别、自定义用户词典。根据官方文档描述,这个中文工具包可能不是最快的开源中文分词,但很可能是最准的开源中文分词。
Foolnltk分词、词性标注、命名实体识别应用十分简单,只需要调用cut、pos_cut、analysis函数。
2.3.2 foolNLTK安装
Foolnltk安装也不需要数据包,但是它需要依赖库,如tesonflow库,如果没有安装这个库,运行foolnltk安装会失败。foolnltk安装方法:pip install foolnltk,tensorflow安装方法:pip install tensorflow==1.15,解释foolnltk依赖tensorflow 1.15版本的,安装最新版会出错。
2.4 hanLP
2.4.1 hanlp简介
HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。hanlp支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词调、词性标注),命名实体识别(中国人民、音译人民、日本人民,地名,实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、神经网络依存句法分析)。
Hanlp支持python环境下编译运行,pyhanlp是hanlp为封装的python组件。Pyhanlp也支持分词、词性标注、命名实体识别。
Hanlp官方参考文档:https://github.com/hankcs/HanLP
2.4.2 pyhanlp安装
在python环境下运作hanlp,需要下载安装pyhanlp库,安装方法:pip install pyhanlp,另外还需要下载data-for-1.7.7.zip数据包,并将数据放置到pyhanlp的库文件中,再运行from python import *即可自动解压。
Data数据包下载地址:https://github.com/hankcs/HanLP/releases
具体安装步骤可以参考这篇文档:https://www.cnblogs.com/maxxu11/p/12594387.html
2.5 nlpir
2.5.1 nlpir简介
Nlpir平台是文本数据处理平台,NLPIR平台能够全方位多角度满足应用者对大数据文本的处理需求,包括大数据完整的技术链条:网络抓取、正文提取、中英文分词、词性标注、实体抽取、词频统计、关键词提取、语义信息抽取、文本分类、情感分析、语义深度扩展、繁简编码转换、自动注音、文本聚类等。pynlpir是NLPIR / ICTCLAS中文分词软件的Python包装器,它具有分词、词性标注、关键词提取等功能。
2.5.2 nlpir安装
在pycharm环境下使用nlpir,需要安装pynlpir模块,安装命令:pip install pynlpir。
2.7 PKUseg
2.7.1 PKUseg简介
pkuseg是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。pkuseg具有如下几个特点:1、多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。PKUseg目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型。在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。如果用户无法确定具体领域,推荐使用在混合领域上训练的通用模型。2、更高的分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg可以取得更高的分词准确率。3、支持用户自训练模型。支持用户使用全新的标注数据进行训练。4、支持词性标注。
总的来说,PKUseg功能很完善,而且分词准确率很高(后面测试测试看看,是不是如文档描述的这样)。
Pkuseg分词可以设定需要分词文本类型,这一点优于其它分词器。模型可根据model_name选择不同的模型,如医疗语料可以选择medical,金融finance等等。
Pkuseg具体使用可以参考官方文档:
https://www.biaodianfu.com/pkuseg.html
https://github.com/lancopku/PKUSeg-python
2.7.2 PUKseg安装
PKUseg目前暂时只支持python3.0以上版本,PUKseg需要的data比较多,如用于分词的postag、数据模型,因此安装会比较繁琐一些。首先,安装pkuseg,通过pip install pkuseg 安装;其次,下载数据包,并放置到C盘的目录下,这个目录可以通过运行下面这段代码找出:
import pkuseg
seg = pkuseg.pkuseg(model_name='news') # 程序会自动下载所对应的细领域模型
text = seg.cut('我以前用的是大哥大') # 进行分词
print(text)
词性标注和数据包下载地址:https://github.com/lancopku/pkuseg-python/releases
2.8 SnowNLP
2.8.1 SonwNLP简介
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。简单来说,snownlp是一个中文的自然语言处理的Python库,snownlp主要功能有:中文分词、词性标注、情感分析、文本分类、转换成拼音、繁体转简体、提取文本关键词、提取文本摘要、tf,idf、Tokenization、文本相似。
总结:snowNLP库的情感分析模块,使用非常方便,功能也很丰富,非常建议大家使用。
官方参考文档:https://github.com/isnowfy/snownlp
2.8.2 SonwNLP安装
Snownlp作为一个基于python自然语言处理原生库,使用方便是它的优点,同时安装也很方便。安装代码:pip install snownlp
中文分词工具简介与安装教程(jieba、nlpir、hanlp、pkuseg、foolnltk、snownlp、thulac)的更多相关文章
- 开源中文分词工具探析(五):FNLP
FNLP是由Fudan NLP实验室的邱锡鹏老师开源的一套Java写就的中文NLP工具包,提供诸如分词.词性标注.文本分类.依存句法分析等功能. [开源中文分词工具探析]系列: 中文分词工具探析(一) ...
- 开源中文分词工具探析(七):LTP
LTP是哈工大开源的一套中文语言处理系统,涵盖了基本功能:分词.词性标注.命名实体识别.依存句法分析.语义角色标注.语义依存分析等. [开源中文分词工具探析]系列: 开源中文分词工具探析(一):ICT ...
- 中文分词工具——jieba
汉字是智慧和想象力的宝库. --索尼公司创始人井深大 简介 在英语中,单词就是"词"的表达,一个句子是由空格来分隔的,而在汉语中,词以字为基本单位,但是一篇文章的表达是以词来划分的 ...
- 中文分词工具探析(二):Jieba
1. 前言 Jieba是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具--模型易用简单.代码清晰可读,推荐有志学习NLP或Python的读一下源码.与采用分词模型Bigram + H ...
- NLP(十三)中文分词工具的使用尝试
本文将对三种中文分词工具进行使用尝试,这三种工具分别为哈工大的LTP,结巴分词以及北大的pkuseg. 首先我们先准备好环境,即需要安装三个模块:pyltp, jieba, pkuseg以及L ...
- 中文分词工具探析(一):ICTCLAS (NLPIR)
1. 前言 ICTCLAS是张华平在2000年推出的中文分词系统,于2009年更名为NLPIR.ICTCLAS是中文分词界元老级工具了,作者开放出了free版本的源代码(1.0整理版本在此). 作者在 ...
- 开源中文分词工具探析(三):Ansj
Ansj是由孙健(ansjsun)开源的一个中文分词器,为ICTLAS的Java版本,也采用了Bigram + HMM分词模型(可参考我之前写的文章):在Bigram分词的基础上,识别未登录词,以提高 ...
- 开源中文分词工具探析(四):THULAC
THULAC是一款相当不错的中文分词工具,准确率高.分词速度蛮快的:并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等. 1. 前言 THU ...
- 开源中文分词工具探析(五):Stanford CoreNLP
CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...
随机推荐
- C++常用注意事项
new和delete:现在还没有new[][]和delete[][],所以在用这些的时候最好用循环解决,先一个指针的数组,然后再初始化,每个元素再new一下,这样就满足了多维数组的条件:比如: int ...
- SpringBoot 集成 Elasticsearch
前面在 ubuntu 完成安装 elasticsearch,现在我们SpringBoot将集成elasticsearch. 1.创建SpringBoot项目 我们这边直接引入NoSql中Spring ...
- pytorch torchversion自带的数据集
from torchvision.datasets import MNIST # import torchvision # torchvision.datasets. #准备数据集 mnist = M ...
- Java IO 流--FileUtils 工具类封装
IO流的操作写多了,会发现都已一样的套路,为了使用方便我们可以模拟commosIo 封装一下自己的FileUtils 工具类: 1.封装文件拷贝: 文件拷贝需要输入输出流对接,通过输入流读取数据,然后 ...
- 记使用STL与unique_ptr造成的事故-段子类比
最近由于业务需要在写内存池子时遇到了一个doule-free的问题.折腾半个晚上以为自己的眼睛花了.开始以为是编译器有问题(我也是够自信的),但是在windows下使用qtcreator vs2017 ...
- android位运算简单讲解
一.前言 在查看源码中,经常会看到很多这样的符号“&”.“|”.“-”,咋一看挺高大上:仔细一看,有点懵:再看看,其实就是大学学过的再普通不过的与.或.非.今天小盆友就以简单的形式分享下,同时 ...
- [函数] PHP取二进制文件头快速判断文件类型
一般我们都是按照文件扩展名来判断文件类型,但其实不太靠谱,因为可以通过修改扩展名来伪装文件类型.其实我们可以通过读取文件信息来识别,比如 PHP扩展中提供了类似 exif_imagetype 这样的函 ...
- VMware虚拟机中centos6.5网络配置(桥接方式)与宿主机之间通信
1.修改网络适配器 2.选择桥接所用的网卡 3.设置网络 3.1在系统终端中输入 setup ,进行图形网络配置(此命令只有redhat系列才有作用) 上下左右键选择,enter键确定 将光标移动到U ...
- LFS资料和SSH远程登录全过程
LFS 即 Linux From Scratch, From Scratch的意思是"白手起家",即从0开始安装Linux,它的所有软件包都需要从源代码开始编译安装.这是通过实际动 ...
- 洛谷P3018 [USACO11MAR]树装饰Tree Decoration
洛谷P3018 [USACO11MAR]树装饰Tree Decoration树形DP 因为要求最小,我们就贪心地用每个子树中的最小cost来支付就行了 #include <bits/stdc++ ...