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

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

用法:官方提供了Java、C++、python、C#、Ruby接口,这篇使用方法是关于python接口pyltp的。首先需要下载模型文件,然后就是安装pyltp

安装:pip install pyltp

1.分词

import pyltp
from pyltp import Segmentor#导入Segmentor库

math_path = "D:ltp3.4.0cws.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.0pos.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.0ner.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.0parser.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.0pisrl.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(
        ["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值