您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

python如何使用HanLP,LTP,jieba中文分词库

时间:2020-09-22 10:06:01  来源:  作者:

上期文章我们分享了NLP 自然语言处理的基础知识,本期我们分享几个比较流行的中文分词库,且这些中文分词库绝大部分是JAVA程序编写的,在linux系统上很容易使用,但是在windows环境下,如何使用Python/ target=_blank class=infotextkey>Python来使用这些分词库??

python如何使用HanLP,LTP,jieba中文分词库

HanLP

HanLP中文分词包

HanLP 是由一系列模型与算法组成的 Java 工具包,目标是普及自然语言处理在生产环境中的应用。HanLP 具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。在提供丰富功能的同时,HanLP 内部模块坚持低耦合、模型坚持惰性加载、服务坚持静态提供、词典坚持明文发布,使用非常方便,同时自带一些语料处理工具,帮助用户训练自己的语料。

当然python 环境下,hanlp名称为pyhanlp,Python下安装直接在cmd命令框中输入pip install pyhanlp 即可,软件会自动安装所依赖的其他库,安装完成后,在cmd命令框中输入hanlp segment ,使用命令hanlp segment进入交互分词模式,输入一个句子并回车,HanLP会输出分词结果,前提是你的电脑开发环境已经安装好。

此时,软件会先下载hanlp所需要的语言模型,大概1.2G,由于服务器都是国内的,所以下载速度会很快

python如何使用HanLP,LTP,jieba中文分词库

模型下载

模型下载完成后,hanlp会检测电脑系统上面是否有Java环境,毕竟HanLP 是由一系列模型与算法组成的 Java 工具包

python如何使用HanLP,LTP,jieba中文分词库

Java环境下载

若没有安装Java,按照软件提示的网站下载安装自己系统的版本即可。

若一切没有问题,便可以输入一段话,进行分词操作

python如何使用HanLP,LTP,jieba中文分词库

中文分词

依存句法分析,命令为hanlp parse,同样支持交互模式和重定向,在cmd命令框中输入指令,并输入一段话

python如何使用HanLP,LTP,jieba中文分词库

中文分词

pyhanlp的python使用方法

安装pyhanlp后,以上我们可以使用在cmd命令框中输入指令进行操作,当然我们同样也可以使用python 编程进行操作

分词使用

from pyhanlp import *
print(HanLP.segment("我们都是一家人。"))
>>> [我们/rr, 都/d, 是/vshi, 一家人/n, 。/w]

依存分析使用

from pyhanlp import *
print(HanLP.parseDependency("我们都是中国人。"))
>>> 1 我们 我们 r r_ 3 主谓关系 _ _
>>> 2 都 都 d d _ 3 状中结构  _ _
>>> 3 是 是 v v _ 0 核心关系 _ _
>>> 4 中国人 中国人 n n _ 3 动宾关系 _ _
>>> 5 。。? wp w _ 2 标点符号 _ _

pyhanlp可视化

pyhanlp提供了一个很好的可视化界面,可以直接在官网上进行可视化操作,当然在本地,只要一句命令就能启动一个web服务

在cmd命令框里,直接输入hanlp serve即可,然后软件提示8765端口的本地网络地址

浏览器输入http://localhost:8765就能看到可视化界面,能看到分词结果和依存关系的结果,是不是很直观。这个网页上还有安装说明、源码链接、文档链接、常见的问题,国产库果真想的很到位

python如何使用HanLP,LTP,jieba中文分词库

可视化界面


python如何使用HanLP,LTP,jieba中文分词库

中文分词可视化

jieba中文分词库

jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式

精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析
全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据搜索引擎模式:在精确模式的基础上,对长词再次进行切分

Window环境下,在cmd命令框中输入: pip install jieba 进行安装即可

import jieba
seg_str = "我们都是中国人,我爱我的祖国。"
print("/".join(jieba.lcut(seg_str))) # 精简模式,返回一个列表类型的结果
print("/".join(jieba.lcut(seg_str, cut_all=True))) # 全模式,使用 'cut_all=True' 指定
print("/".join(jieba.lcut_for_search(seg_str))) # 搜索引擎模式
python如何使用HanLP,LTP,jieba中文分词库

jieba分词

我们/都/是/中国/人/,/我/爱/我/的/祖国/。
我们/都/是/中国/国人/,/我/爱/我/的/祖国/。
我们/都/是/中国/人/,/我/爱/我/的/祖国/。

LTP中文分词库

LTP(哈工大)提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。

从应用角度来看,LTP为用户提供了下列组件:
针对单一自然语言处理任务,生成统计机器学习模型的工具针对单一自然语言处理任务,调用模型进行分析的编程接口使用流水线方式将各个分析工具结合起来,形成一套统一的中文自然语言处理系统系统可调用的,用于中文语言处理的模型文件针对单一自然语言处理任务,基于云端的编程接口
LTP的python接口是pyltp,直接在cmd命令框中直接输入pip install pyltp安装即可,
ltp的安装不会自动下载模型,可以到 http://ltp.ai/download.html下载
这里需要注意:pyltp 的当前版本0.2.1 对应模型是:3.4.0
0.1.9.1,对应的模型是:3.3.1
python如何使用HanLP,LTP,jieba中文分词库

模型下载

这里需要下载对应的模型版本,否则会出现模型无法运行

python 操作pyltp

LTP提供的模型包括:(在ltp_data文件夹)

cws.model 分句模型,单文件

ner.model 命名实体识别模型,单文件

parser.model 依存句法分析模型,单文件

pos.model 词性标注模型,单文件

 

 

 

pisrl.model模型等等,我们可以根据已经训练好的模型进行中文的分词或者其他操作

import pyltp
from pyltp import Segmentor
segmentor = Segmentor()segmentor.load('ltp_data_v3.4.0/ltp_data_v3.4.0/cws.model')#加载分词库
ltpword = segmentor.segment("我们是人工智能研究所,主要致力于分享人工智能方面的技术知识,
                          欢迎大家一起学习。")
print(' '.join(ltpword).split())#分词后的结果
>>>  ['我们', '是', '人工智能', '研究所', ',', '主要', '致力', '于', '分享', '人工智能', '方面', '的', '技术', '知识', ',
   ', '欢迎', '大家', '一起', '学习', '。']

以上我们便打造了一个LTP的分词任务,当然,你也可以加载其他模型,进行不同的分词任务,且可以加载大量的文本,只需要segmentor.segment文件里面输入打开的文件便可

当然跟hanlp一样,LTP同样提供了可视化操作界面LTP可视化:可以到官方网站,进行可视化的操作http://ltp.ai/demo.html

python如何使用HanLP,LTP,jieba中文分词库

LTP可视化



Tags:python 中文分词库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
上期文章我们分享了NLP 自然语言处理的基础知识,本期我们分享几个比较流行的中文分词库,且这些中文分词库绝大部分是Java程序编写的,在linux系统上很容易使用,但是在windows环境...【详细内容】
2020-09-22  Tags: python 中文分词库  点击:(109)  评论:(0)  加入收藏
▌简易百科推荐
近几年 Web3 被炒得火热,但是大部分人可能还不清楚什么是 Web3,今天就让w3cschool编程狮小师妹带你了解下 Web3 是什么?与我们熟知的 Web1 和 Web2 又有什么区别呢?web3.0什么是...【详细内容】
2022-07-15  编程狮W3Cschool    Tags:Web3.0   点击:(2)  评论:(0)  加入收藏
1、让我们一起来看下吧,直接上图。 第一眼看到是不是觉得很高逼格,暗黑画风,这很大佬。其实它就是------AidLearning。一个运行在安卓平台的linux系统,而且还包含了许多非常强大...【详细内容】
2022-07-15  IT智能化专栏    Tags:AidLearning   点击:(2)  评论:(0)  加入收藏
真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天说的这个软件是一款基于Python+vue的自动化运维、完全开源的云管理平台。二、实现功能 基于RBAC权限系统 录像回放 ...【详细内容】
2022-07-14  菜鸟程序猿    Tags:Python   点击:(3)  评论:(0)  加入收藏
前言今天笔者想和大家来聊聊python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧。 一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,P...【详细内容】
2022-07-11  测试架构师百里    Tags:python   点击:(19)  评论:(0)  加入收藏
aiohttp什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。安装pip install aiohttpaiohttp 和 r...【详细内容】
2022-07-11  VT漫步    Tags:aiohttp   点击:(15)  评论:(0)  加入收藏
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...【详细内容】
2022-07-06  VT漫步    Tags:Python Queue   点击:(34)  评论:(0)  加入收藏
继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基...【详细内容】
2022-07-06  至尊小狸子    Tags:python   点击:(25)  评论:(0)  加入收藏
点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文1553字,阅读约需4分钟 Hi,大家好,我是CoCo。在上一篇Python自动化测试系列文章:Python自动化测试之P...【详细内容】
2022-07-05  CoCo的软件测试小栈    Tags:Python   点击:(27)  评论:(0)  加入收藏
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...【详细内容】
2022-07-05  独钓寒江雪之IT    Tags:Python request   点击:(19)  评论:(0)  加入收藏
什么是python类的多态python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。用比喻的方式理解python类的多态比如,同一个苹果(统一的接口)在孩子的眼里(类实...【详细内容】
2022-07-04  写小说的程序员    Tags:python类   点击:(28)  评论:(0)  加入收藏
站内最新
站内热门
站内头条