中文分词工具简介与安装教程(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

posted @ 2020-03-31 13:23  大明王  阅读(4679)  评论(0编辑  收藏  举报