运行环境ubuntu+python3

安装pyltp
sudo pip3 install pyltp
下载ltp_data_v3.4.0模型
http://ltp.ai/
分句
from pyltp import SentenceSplitter #分句,对句子进行切分
sentence = SentenceSplitter.split("我是逗号,我是句号。我是问好?我是感叹号!")
print("\n".join(sentence))
打印结果:
我是逗号,我是句号。
我是问好?
我是感叹号!
分词
import os

LTP_DATA_DIR = "/home/lizhenlong/pyltp/ltp_data_v3.4.0/ltp_data_v3.4.0" #ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, "cws.model") #分词模型路径,模型名称为“cws.model”
from pyltp import Segmentor #分词
segmentor = Segmentor() #初始化实例
segmentor.load(cws_model_path) #加载模型
words = segmentor.segment("上海明天天气怎么样?") #进行分词
print(type(words))
print(" ".join(words))
segmentor.release() #释放模型
打印结果:
<class 'pyltp.VectorOfString'>
上海 明天 天气 怎么样 ?
添加自定义词典

自定义词典lexicon.txt

苯丙胺
亚硝酸盐
import os
LTP_DATA_DIR='/home/lizhenlong/pyltp/ltp_data_v3.4.0/ltp_data_v3.4.0' # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型路径,模型名称为`cws.model` from pyltp import Segmentor
segmentor = Segmentor() # 初始化实例
segmentor.load_with_lexicon(cws_model_path, 'lexicon.txt') # 加载模型,第二个参数是您的外部词典文件路径
words = segmentor.segment('亚硝酸盐是一种化学物质')
print('\t'.join(words))
segmentor.release()
打印结果:
[INFO] 2018-08-16 19:18:03 loaded 2 lexicon entries
亚硝酸盐 是 一 种 化学 物质
词性标注
import os
LTP_DATA_DIR = "/home/lizhenlong/pyltp/ltp_data_v3.4.0/ltp_data_v3.4.0" #ltp模型目录的路径
pos_model_path = os.path.join(LTP_DATA_DIR, "pos.model") # 词性标注模型路径,>模型名称为`pos.model`
from pyltp import Postagger #词性标注 postagger = Postagger() #初始化实例
postagger.load(pos_model_path) #加载模型
words = ['上海','明天','天气','怎么样'] #分词结果
postages = postagger.postag(words) #词性标注
print(" ".join(postages))
postagger.release() #释放模型
打印结果:
ns nt n r
命名实体识别
import os
LTP_DATA_DIR = "/home/lizhenlong/pyltp/ltp_data_v3.4.0/ltp_data_v3.4.0" #ltp模型目录的路径
ner_model_path = os.path.join(LTP_DATA_DIR, 'ner.model') # 命名实体识别模型路径,模型名称为`pos.model` from pyltp import NamedEntityRecognizer
recognizer = NamedEntityRecognizer() # 初始化实例
recognizer.load(ner_model_path) # 加载模型 words = ['元芳', '你', '怎么', '看']
postags = ['nh', 'r', 'r', 'v']
netags = recognizer.recognize(words, postags) # 命名实体识别 print('\t'.join(netags))
recognizer.release() # 释放模型
打印结果:
S-Nh O O O
依存句法分析
mport os
LTP_DATA_DIR='/home/lizhenlong/pyltp/ltp_data_v3.4.0/ltp_data_v3.4.0' # ltp模型目录的路径
par_model_path = os.path.join(LTP_DATA_DIR, 'parser.model') # 依存句法分析模型路径,模型名称为`parser.model` from pyltp import Parser
parser = Parser() # 初始化实例
parser.load(par_model_path) # 加载模型 words = ['元芳', '你', '怎么', '看']
postags = ['nh', 'r', 'r', 'v']
arcs = parser.parse(words, postags) # 句法分析 print(" ".join("%d:%s" % (arc.head, arc.relation) for arc in arcs))
parser.release() # 释放模型
打印结果:
4:SBV 4:SBV 4:ADV 0:HED
语义角色标注
import os
LTP_DATA_DIR='/home/lizhenlong/pyltp/ltp_data_v3.4.0/ltp_data_v3.4.0' # ltp模型目录的路径
srl_model_path = os.path.join(LTP_DATA_DIR, 'pisrl_win.model') # 语义角色标注模型目录路径,模型目录为`srl`。注意该模型路径是一个目录,而不是一个文件。 from pyltp import SementicRoleLabeller
labeller = SementicRoleLabeller() # 初始化实例
labeller.load(srl_model_path) # 加载模型 words = ['元芳', '你', '怎么', '看']
postags = ['nh', 'r', 'r', 'v']
# arcs 使用依存句法分析的结果
roles = labeller.label(words, postags, 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]))
labeller.release() # 释放模型
打印结果:
[dynet] random seed: 1676210130
[dynet] allocating memory: 2000MB
[dynet] memory allocation done.
3 A0:(1,1)ADV:(2,2)

例如上面的例子,由于结果输出一行,所以“元芳你怎么看”有一组语义角色。 其谓词索引为3,即“看”。这个谓词有三个语义角色,范围分别是(0,0)即“元芳”,(1,1)即“你”,(2,2)即“怎么”,类型分别是A0、A0、ADV。

角色关系参考:https://ltp.readthedocs.io/zh_CN/latest/appendix.html#id6

python3调用哈工大ltp的更多相关文章

  1. 使用哈工大LTP进行句法分析

    作者注:本教程旨在对哈工大LTP在github上的LTP4J(LTP的java版本)教程的补充,请结合以下参考网站一起食用. 参考网站: [1]哈工大语言技术平台云官网--LTP使用文档 http:/ ...

  2. 哈工大LTP

    http://ltp.ai/ http://pyltp.readthedocs.io/zh_CN/latest/ http://www.cnblogs.com/Denise-hzf/p/6612886 ...

  3. Python3调用Hadoop的API

    前言: 上一篇文章 我学习使用pandas进行简单的数据分析,但是各位...... Pandas处理.分析不了TB级别数据的大数据,于是再看看Hadoop. 另附上人心不足蛇吞象 对故事一的感悟:   ...

  4. python3 调用 salt-api

    使用python3调用 salt-api 在项目中我们不能使用命令行的模式去调用salt-api,所以我们可以写一个基于salt-api的类,方便项目代码的调用.在这里特别附上两种方式实现的pytho ...

  5. 3. 哈工大LTP解析

    1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 哈工大语言技术平台Language Technology ...

  6. python3 调用 beautifulSoup 进行简单的网页处理

    python3 调用 beautifulSoup 进行简单的网页处理 from bs4 import BeautifulSoup file = open('index.html','r',encodi ...

  7. 利用python3 调用zabbix接口完成批量加聚合图形(screens)

    在上一篇博客中,我们完成的利用python3 调用zabbix接口批量增加主机,增加主机的item,增加主机的图形! 接下来我们完成批量增加主机的screen 首先我们要增加screen需要哪些参数呢 ...

  8. Python3调用hessian

    领导派了个任务,实现服务器日志文件调用hessian接口保存到数据库 研究了半天python调用hessian的办法 首先使用hessian for python的链接: http://hessian ...

  9. 哈工大LTP进阶使用-三元组事件抽取

    哈工大LTP基本使用-分词.词性标注.依存句法分析.命名实体识别.角色标注 上一节我们讲了LTP的基本使用,接下来我们使用其进行事件抽取. 参考代码:https://github.com/liuhua ...

随机推荐

  1. spring之为什么要使用AOP(面向切片编程)?

    需求1-日志:在程序执行期间追踪正在发生的活动: 需求2-验证:希望计算器只处理正数的运算: 一.普通方法实现 Calculator.java package com.gong.spring.aop. ...

  2. Groovy重载操作符

    重载一时爽,一直重载一直爽. 最近在读<Groovy in action>一本书重新复习了Groovy的一些语法特性,迷恋上这个重载操作符的功能,坚持爽的不要要的.分享一个Demo. 由于 ...

  3. DFT与IDFT

    [转]https://blog.csdn.net/mingzhuo_126/article/details/88044390 二.编程实现考滤到DFT和IDFT算法过程中有部分相似,可以把它们合成到一 ...

  4. es lucene搜索及聚合流程源码分析

    本文以TermQuery,GlobalOrdinalsStringTermsAggregator为例,通过代码,分析es,lucene搜索及聚合流程.1:协调节点收到请求后,将search任务发到相关 ...

  5. MySQL保存 emoji 表情(微信昵称表情)

    问题分析 在微信开发过程中,总是会遇到带有emoji表情昵称的微信用户无法自动登录的问题. 后台代码抛出类似下面的异常信息. java.sql.SQLException: Incorrect stri ...

  6. mac-air上安装 rabbitmq 并简单使用

    简介: brew 安装 rabbitmq,docker安装rabbitmq 安装官方php-amqp 扩展 简单使用样例(发送10次helloworld

  7. Redux 一步到位

    简介 Redux 是 JavaScript 状态容器,提供可预测化的状态管理 Redux 除了和 React 一起用外,还支持其它库( jquery ... ) 它体小精悍(只有2kB,包括依赖) 由 ...

  8. MongoDB聚合(aggregate)

    一.基础 1.什么是聚合? 聚合是基于数据处理的聚合管道,每个文档通过一个有多个阶段(stage)组成的管道可以对每个阶段的管道进行分组.过滤等功能,然后经过一系列的处理,输出相应的结果 db.集合名 ...

  9. 浏览器警告Failed to decode downloaded font和OTS parsing error: Failed to convert *** font to ***

    昨晚,在做一个自己感兴趣的东西时,发现浏览器报警告,Failed to decode downloaded font以及OTS parsing error: Failed to convert *** ...

  10. Xen+OpenQRM快速部署

    一.选择系统平台 a)   Ubuntu-11.10-server-amd64 二.Xen安装 a)   Xen安装 # apt-get -y install xen-hypervisor-4.1-a ...