中文分词工具简介与安装教程(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 ...
随机推荐
- Three.js三维模型几何体旋转、缩放和平移
创建场景中的三维模型往往需要设置显示大小.位置.角度,three.js提供了一系列网格模型对象的几何变换方法,从WebGL的角度看,旋转.缩放.平移对应的都是模型变换矩阵,关于矩阵变换内容可以观看本人 ...
- stand up meeting 12/2/2015
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 将logic部分提供的delete接口接入,与logic,数据库部分沟通实现了add/delete按钮的复用:解决UI部 ...
- Mysql:小主键,大问题
今日格言:让一切回归原点,回归最初的为什么. 本篇讲解 Mysql 的主键问题,从为什么的角度来了解 Mysql 主键相关的知识,并拓展到主键的生成方案问题.再也不怕被问到 Mysql 时只知道 CR ...
- PHP本地开发利器:内置Web Server
PHP 5.4.0起, CLI SAPI 提供了一个内置的Web服务器. 命令:php -S 这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境. URI请求会被发送到PHP所在的的工作 ...
- Laravel 上手增删改查
拿到一个框架,除了解框架,还要能实现基本的CURD操作. 添加 1.配置路由,指定添加页面: // routes/web.php 中增加如下: // 添加页面.存放路径 Laravel7/resour ...
- 关于对vue-router的优化(详尽版)
这两天总结了关于vue-router优化的几点技法,做个笔记 在基于vue的移动端app中,通过vue-router可以便捷的进入某一路由或回退到上一路由,但是若不对vue-router做相关优化处理 ...
- JS 获取浏览器
function getInfo() { var s = ""; s = " 网页可见区域宽:" document.body.clientWidth; s = ...
- LeetCode7-ReverseInteger
LeetCode7-ReverseInteger LeetCodeeasyOverflow 题目 题目所在链接为 LeetCode-7:ReverseInteger 题目描述 给出一个32位的有符号整 ...
- docker容器介绍
Docker容器 一.什么是Docker? Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Git ...
- nginx开启ssl并把http重定向到https的两种方式
1 简介 Nginx是一个非常强大和流行的高性能Web服务器.本文讲解Nginx如何整合https并将http重定向到https. https相关文章如下: (1)Springboot整合https原 ...