哈工大语言技术平台LTP的用法

@[枷L锁]

哈工大语言技术平台LTP的用法

简介:哈工大的语言技术平台 (LTP)提供了中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、 高效、精准的自然语言处理技术。

用法:官方提供了Java、C++、python、C#、Ruby接口,这篇使用方法是关于python接口pyltp的。首先需要下载模型文件,然后就是安装pyltp,模型文件下载地址:https://pan.baidu.com/s/1qlNdkSFBwAstAsxwqjm8sQ
提取码:9qeq

安装pyltp:pip install pyltp

1.分词

import pyltp

from pyltp import Segmentor#导入Segmentor库



math_path = "D:\ltp3.4.0\cws.model"#LTP分词模型库

segmentor = Segmentor()#实例化分词模块

segmentor.load(math_path)#加载分词库



words = segmentor.segment("中国是一个自由、和平的国家")

print(' '.join(words).split())#分割分词后的结果

分词结果:['中国', '是', '一个', '自由', '、', '和平', '的', '国家']

2.词性标记

import pyltp

from pyltp import Postagger#导入Postagger库

math_path = "D:\ltp3.4.0\pos.model"#LTP词性标注模型库

postagger = Postagger() #实例化词性模块

postagger.load(math_path)#加载词性库

postags = postagger.postag(words)#这里的words是分词后的结果

print(' '.join(postags).split())#分割标注后的结果

标注结果:['ns', 'v', 'm', 'a', 'wp', 'a', 'u', 'n']

3.命名实体识别

import pyltp

from pyltp import NamedEntityRecognizer#导入库NamedEntityRecognizer

math_path = "D:\ltp3.4.0\ner.model"#LTP命名实体识别模型库

recognizer = NamedEntityRecognizer() # 初始化实例

recognizer.load(math_path)#加载实体识别库

words = ['中国', '是', '一个', '自由', '、', '和平', '的', '国家']

postags = ['ns', 'v', 'm', 'a', 'wp', 'a', 'u', 'n']

netags = recognizer.recognize(words, postags) # 命名实体识别,这里的words是分词的结果,postags是词性标注的结果

print(' '.join(netags).split())#分割识别后的结果
结果:
S-Ns	O	O	O	O	O	O	O

4.依存句法分析

import pyltp

from pyltp import Parser#导入库Parser

math_path = "D:\ltp3.4.0\parser.model"#LTP依存分析模型库

parser = Parser() # 初始化实例

parser.load(math_path)#加载依存分析库

words = ['中国', '是', '一个', '自由', '、', '和平', '的', '国家']

postags = ['ns', 'v', 'm', 'a', 'wp', 'a', 'u', 'n']

arcs = parser.parse(words, postags) # 句法分析,这里的words是分词的结果,postags是词性标注的结果

print ("\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs) ) # 依存分析,
结果:
2:SBV	0:HED	8:ATT	8:ATT	6:WP	4:COO	4:RAD	2:VOB

注:arc.head 表示依存弧的父节点词的索引。ROOT节点的索引是0,第一个词开始的索引依次为1、2、3…

arc.relation 表示依存弧的关系。

arc.head 表示依存弧的父节点词的索引,arc.relation 表示依存弧的关系。

5.语义角色标注

import pyltp

from pyltp import SementicRoleLabeller#导入库SementicRoleLabeller

math_path = "D:\ltp3.4.0\pisrl.model"#LTP语义角色标注模型库

labeller = SementicRoleLabeller() # 初始化实例

labeller.load(math_path)#加载语义标注库

words = ['中国', '是', '一个', '自由', '、', '和平', '的', '国家']

postags = ['ns', 'v', 'm', 'a', 'wp', 'a', 'u', 'n']

roles = labeller.label(words, postags, arcs) # 语义角色标注,这里的words是分词结果,postags是词性标注结果,arcs是依存句法分析结果
for role in roles: #打印结果
	print(role.index, "".join(e
	["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments])
	) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值