专栏首页ATYUN订阅号初学者|一起来学习pyltp

初学者|一起来学习pyltp

本文简绍了pyltp的使用方法,它提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。

简介

LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。Pyltp是其的python接口。

官网地址:https://www.ltp-cloud.com/

官方文档:https://ltp.readthedocs.io/zh_CN/latest/begin.html

实战

1.安装

# 安装:pip install pyltp,前面说过通过这种方式安装一直不能成功
# pyltp安装有点麻烦-.-,于是记录了window 10下的一种成功安装方法
# 1.首先,pip install pyltp安装报错:error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2
# 安装cmake,下载地址,https://cmake.org/download/ 
# 安装VS2008 EXPRESS,下载网址:https://visualstudio.microsoft.com/zh-hans/vs/express/

# 2.然后,我选择使用python setup.py install安装 
# - 下载pyltp,地址:https://github.com/hit-scir/pyltp 
# - 下载ltp,地址:https://github.com/hit-scir/ltp  
# - 解压ltp,然后将解压之后文件命名为ltp,覆盖pyltp文件夹中的ltp # - 打开cmd,进入到pyltp目录下,找到setup.py 
# - 先执行命令:python setup.py build 
# - 然后执行命令:python setup.py install

# 3.使用里面的预训练模型,需要先下载,然后指定相应目录 
# - 下载地址:http://ltp.ai/download.html
# 注意:ltp3.4.0 版本 SRL模型 pisrl.model在windows系统下不可用 下载这个:http://ospm9rsnd.bkt.clouddn.com/server/3.4.0/pisrl_win.model

2.分词

from pyltp import Segmentor
seg = Segmentor() #生成对象
seg.load("pyltp-model\ltp_data_v3.4.0\cws.model") #加载分词预训练模型
seg_words = seg.segment("我爱自然语言处理技术!")
print(" ".join(seg_words))
seg.release() #释放资源

我 爱 自然 语言 处理 技术 !

3.词性标注(对分好的词进行标注)

from pyltp import Postagger  
pos=Postagger()
#加载词性预训练模型
pos.load("pyltp-model\ltp_data_v3.4.0\pos.model")
words_pos=pos.postag(seg_words)
for k,v in zip(seg_words, words_pos):
    print(k+'\t'+v)
pos.release()

我   r
爱   v
自然  n
语言  n
处理  v
技术  n
!   wp

4.命名实体识别

from pyltp import NamedEntityRecognizer
ner = NamedEntityRecognizer()
#加载命名实体识别预训练模型
ner.load("pyltp-model\ltp_data_v3.4.0\ner.model")
netags=ner.recognize(seg_words,words_pos)
print(" ".join(netags))
ner.release()

5.依存句法分析

from pyltp import Parser
parser=Parser()
parser.load("pyltp-model\ltp_data_v3.4.0\parser.model")
arcs=parser.parse(seg_words,words_pos)
print([(arc.head,arc.relation) for arc in arcs])
parser.release()

[(2, 'SBV'), (0, 'HED'), (4, 'ATT'), (5, 'FOB'), (2, 'VOB'), (5, 'VOB'), (2, 'WP')]

6.语义角色标注

from pyltp import SementicRoleLabeller
labeller = SementicRoleLabeller()
labeller.load("pyltp-model\ltp_data_v3.4.0\pisrl_win.model")
roles = labeller.label(seg_words,words_pos,arcs)
for role in roles:
    print(role.index, "".join(
        ["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments]))

1 A0:(0,0)A1:(2,5)
4 A1:(5,5)

代码已上传:

https://github.com/yuquanle/StudyForNLP/blob/master/NLPtools/PyltpDemo.ipynb

The End

本文分享自微信公众号 - ATYUN订阅号(atyun_com)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【科技】Google利用机器学习推出了AdSense“自动广告”,以进行投放和获利选择

    Google于21日公布了一项新的AdSense广告单元, 该广告单元反映了该公司在其业务中添加更多人工智能的巨大推动力,并且可能会吸引更多可能考虑加大广告投放...

    AiTechYun
  • 研究人员利用机器学习算法检测医疗保险欺诈

    佛罗里达大西洋大学工程与计算机科学学院的研究人员发表了一项健康信息科学与系统的研究,该研究展示了机器学习和高级分析如何检测医疗保险欺诈检测。这一突破可能避免每年...

    AiTechYun
  • 谷歌将机器学习融入一系列广告工具中,与亚马逊竞争

    谷歌详述了一套新的营销工具,这些工具可以充分利用公司庞大的机器学习技术。总体而言,这些工具旨在帮助营销人员创建更有效和优化的广告,但其中有明显的反亚马逊元素。

    AiTechYun
  • Fabric MSP成员管理

    Fabirc的成员身份基于标准的X.509证书,密钥使用的是ECDSA算法,利用PKI体系给每个成员颁发数字证书,通道内只有相同MSP内的节点才可以通过Goss...

    zhayujie
  • (译)Calico 3.5:根据节点标签分配 IP 地址

    Calico 能够进行配置,为不同拓扑指定 IP 地址池。例如可能希望某些机架、地区、或者区域能够从同一个 IP 池中获取地址。这对于降低路由数量或者配合防火墙...

    崔秀龙
  • Linux中Xshell常用快捷键

    吟风者
  • 中国人口红利消失的产业机会

    联合国《世界人口展望 2019》对未来各国人口增长和人口结构变化进行预测,认为我国的人口增长和变化更接近于使用中等变量预测和低变量预测的中间值的结果。

    庄帅
  • 软件工程 活动图、状态图、顺序图实验题

    开始。 学生进入考场。 监考教师核对检查证件,发放试卷。 学生对号入座。 学生开始答题。 学生交卷。 监考教师收取试卷。 结束。

    Debug客栈
  • Steemit中的几处反直觉设计

    我在2017年6月开通了Steemit账号(https://steemit.com/@speeding),一开始没想过发表在这上面的文章可以赚钱,后来随着tum...

    申龙斌
  • go 原生代码搞定https双向认证客户端私钥加密

    最近有一个https双向认证的项目,客户端的证书是加密的,之前用python requests 做原型测试发现不支持加密,需要运行的时候在终端输入密码。

    有福

扫码关注云+社区

领取腾讯云代金券