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)的更多相关文章

  1. 开源中文分词工具探析(五):FNLP

    FNLP是由Fudan NLP实验室的邱锡鹏老师开源的一套Java写就的中文NLP工具包,提供诸如分词.词性标注.文本分类.依存句法分析等功能. [开源中文分词工具探析]系列: 中文分词工具探析(一) ...

  2. 开源中文分词工具探析(七):LTP

    LTP是哈工大开源的一套中文语言处理系统,涵盖了基本功能:分词.词性标注.命名实体识别.依存句法分析.语义角色标注.语义依存分析等. [开源中文分词工具探析]系列: 开源中文分词工具探析(一):ICT ...

  3. 中文分词工具——jieba

    汉字是智慧和想象力的宝库. --索尼公司创始人井深大 简介 在英语中,单词就是"词"的表达,一个句子是由空格来分隔的,而在汉语中,词以字为基本单位,但是一篇文章的表达是以词来划分的 ...

  4. 中文分词工具探析(二):Jieba

    1. 前言 Jieba是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具--模型易用简单.代码清晰可读,推荐有志学习NLP或Python的读一下源码.与采用分词模型Bigram + H ...

  5. NLP(十三)中文分词工具的使用尝试

      本文将对三种中文分词工具进行使用尝试,这三种工具分别为哈工大的LTP,结巴分词以及北大的pkuseg.   首先我们先准备好环境,即需要安装三个模块:pyltp, jieba, pkuseg以及L ...

  6. 中文分词工具探析(一):ICTCLAS (NLPIR)

    1. 前言 ICTCLAS是张华平在2000年推出的中文分词系统,于2009年更名为NLPIR.ICTCLAS是中文分词界元老级工具了,作者开放出了free版本的源代码(1.0整理版本在此). 作者在 ...

  7. 开源中文分词工具探析(三):Ansj

    Ansj是由孙健(ansjsun)开源的一个中文分词器,为ICTLAS的Java版本,也采用了Bigram + HMM分词模型(可参考我之前写的文章):在Bigram分词的基础上,识别未登录词,以提高 ...

  8. 开源中文分词工具探析(四):THULAC

    THULAC是一款相当不错的中文分词工具,准确率高.分词速度蛮快的:并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等. 1. 前言 THU ...

  9. 开源中文分词工具探析(五):Stanford CoreNLP

    CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...

随机推荐

  1. 如何让一张图片变成二值图像?python+opencv图像处理

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:张熹熹 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...

  2. A - Chat Group Gym-101775A

    题目连接:https://codeforces.com/gym/101775/problem/A 题解:就是累加组合数 但是直接由K累加到N肯定会TLE ,所以我们不妨判断不能组成group的情况,即 ...

  3. 成员指针与mem_fn

    本文是<functional>系列的第4篇. 成员指针是一个非常具有C++特色的功能.更低级的语言(如C)没有类,也就没有成员的概念:更高级的语言(如Java)没有指针,即使有也不会有成员 ...

  4. java中的模运算规则

    取模运算定义 如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = qd + r 且0 ≤ r < d.其中,q 被称为商,r 被称为余数. 运算实例 java模 ...

  5. SringMVC入门程序

    Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架 1.Spring优点 轻量级,简单易学 高效 , 基于请求响应的MVC框架 与Spring兼 ...

  6. Makefile 头文件 <> 与 "" 的差别,与 Visual Studio 不同

    #include "" : 首先在所有被编译的.c所在的路径中,查找头文件,如果找不到,则到 -I路径下去找头文件 #inclue <> :首先在-I路径下去找,如果找 ...

  7. opencv-7-鼠标绘制自定义图形

    opencv-7-鼠标绘制自定义图形 opencvc++qt 开始之前 昨天写了具体的基本的图形绘制, 然后我们使用相应的函数接口进行调用, 便能够在图像上绘制出来相应的图形, 我们以图像绘制为例, ...

  8. Lambda表达式最佳实践

    简介 Lambda表达式java 8引入的函数式编程框架.之前的文章中我们也讲过Lambda表达式的基本用法. 本文将会在之前的文章基础上更加详细的讲解Lambda表达式在实际应用中的最佳实践经验. ...

  9. 非阻塞同步机制和CAS

    目录 什么是非阻塞同步 悲观锁和乐观锁 CAS 非阻塞同步机制和CAS 我们知道在java 5之前同步是通过Synchronized关键字来实现的,在java 5之后,java.util.concur ...

  10. js之 DOM与BOM

    JavaScript HTML DOM (文档对象模型)(Document Object Model) 什么是DOM? DOM是W3C标准. DOM定义了访问文档的标准: “W3C文档对象模型(DOM ...