依存句法分析pythonpyltp实现
依存句法分析 python & pyltp实现
本⽂⽤python,借助pyltp实现依存句法分析。
有关的详细介绍可以查阅其官⽅⽹站。
说明:使⽤前需要先下载ltp的模型⽂件,下载地址:
整体思路是先分词,在词性标注,最后依存句法分析
# -*- coding: utf-8 -*-
import os
## 加载模型⽂件
LTP_DATA_DIR = 'D:\SpyderWorkspace\parser\ltp_data' # ltp模型⽬录的路径
pos_model_path = os.path.join(LTP_DATA_DIR, 'del') # 词性标注模型路径,模型名称为`del`
cws_model_path = os.path.join(LTP_DATA_DIR, 'del') # 分词模型路径,模型名称为`del`
par_model_path = os.path.join(LTP_DATA_DIR, 'del') # 依存句法分析模型路径,模型名称为`del`
## 分词
from pyltp import Segmentor
segmentor = Segmentor() # 初始化实例
segmentor.load_with_lexicon(cws_model_path,'') # 加载模型
words = list(segmentor.segment('栈是只允许⼀端删除和插⼊的线性表')) # 分词
print(words)
## 词性标注
from pyltp import Postagger
postagger = Postagger() # 初始化实例
postagger.load(pos_model_path) # 加载模型
postags = postagger.postag(words) # 词性标注
tags= list(''.join(postags))
#print (tags)
## 依存句法分析
from pyltp import Parser
parser = Parser() # 初始化实例
parser.load(par_model_path) # 加载模型
arcs = parser.parse(words, postags) #句法分析
print ('arcs 的结果:','\t'.join("%d:%s" % (arc.head, lation) for arc in arcs))
结果:
['栈', '是', '只', '允许', '⼀', '端', '删除', '和', '插⼊', '的', '线性表']
arcs 的结果: 2:SBV 0:HED 4:ADV 2:VOB 6:ATT 7:ADV 11:ATT 9:LAD 7:COO 7:RAD 4:VOB
其中arc.head代表⽗节点的索引,lation代表依存弧的关系
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论