Pyltp的安装及初步使用(快捷版,相关下载资源,分词,词性标注与语法分析)
一、Pyltp的安装
第一步:pip install pyltp,如下图所示:
报错1:
原因:缺少相关文件造成
解决:下载对应版本的.whl文件,我的python是3.5版本
我选择下载在C:\360Downloads\pyltp-0.2.1-cp35-cp35m-win_amd64.whl, 然后pip install + .whl文件地址
相关文件的下载,我这里给出网盘链接~
链接:https://pan.baidu.com/s/1-X1E4z4va7mbHYRnhdu9Iw
提取码:14q2
在此pip install pytlp,成功!!!
二、模型下载
下载相对应模型,注意模型要跟前面我们下载的pytlp版本相匹配。
这里我使用的模型是ltp_data_v3.4.0
我将下载的位置放在C:\360Downloads\pytlp\ltp_data_v3.4.0
这里,为了广大方便,我这里耶给出网盘链接:
链接:https://pan.baidu.com/s/1yCLm6_D3FTBXbmp0Gz4X_Q
提取码:3u4z
三、进行第一次编码测试
"""
第一次LTP使用尝试,包括分词,词性标注和句法分析
普通使用版本
"""
# 导入相关模块
from pyltp import Segmentor # Segmentor模块用于实现分词
from pyltp import Postagger # Postagger模块用于实现词性标注
from pyltp import Parser # Postagger模块用于实现句法分析
# 分词实现
def word_splitter(sentence):
segmentor = Segmentor() # 初始化实例
segmentor.load(r'C:\360Downloads\pytlp\ltp_data_v3.4.0\cws.model') # 加载模型
words = segmentor.segment(sentence) # 分词
words_list = list(words)
print("———————————————————————————————————————————————————————————————————————————————————————————————————————")
print("输入句子:", sentence)
print("———————————————————————————————————————————————————————————————————————————————————————————————————————")
print("1.分词结果:", words_list)
segmentor.release() # 释放模型
return words_list
# 词性标注实现
def word_tag(words):
postagger = Postagger() # 初始化实例
postagger.load(r'C:\360Downloads\pytlp\ltp_data_v3.4.0\pos.model') # 加载模型
postags = postagger.postag(words) # 词性标注
print("———————————————————————————————————————————————————————————————————————————————————————————————————————")
print("2.词性标注结果:")
for word, tag in zip(words, postags):
print(' ' + word+':'+tag)
print("———————————————————————————————————————————————————————————————————————————————————————————————————————")
postagger.release() # 释放模型
return postags
# 句法分析
def parse(words, postags):
parser = Parser() # 初始化实例
parser.load(r'C:\360Downloads\pytlp\ltp_data_v3.4.0\parser.model') # 加载模型
arcs = parser.parse(words, postags) # 句法分析
print("3.句法分析结果:")
print("\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs))
print("———————————————————————————————————————————————————————————————————————————————————————————————————————")
parser.release() # 释放模型
# 测试句法分析
words = word_splitter('我的第一次NLP的LTP使用情况会怎么样呢?')
tags = word_tag(words)
parse(words, tags)
结果:
———————————————————————————————————————————————————————————————————————————————————————————————————————
输入句子: 我的第一次NLP的LTP使用情况会怎么样呢?
———————————————————————————————————————————————————————————————————————————————————————————————————————
1.分词结果: ['我', '的', '第一', '次', 'NLP', '的', 'LTP', '使用', '情况', '会', '怎么样', '呢', '?']
———————————————————————————————————————————————————————————————————————————————————————————————————————
2.词性标注结果:
我:r
的:u
第一:m
次:q
NLP:ws
的:u
LTP:ws
使用:v
情况:n
会:v
怎么样:r
呢:u
?:wp
———————————————————————————————————————————————————————————————————————————————————————————————————————
3.句法分析结果:
9:ATT 1:RAD 4:ATT 9:ATT 9:ATT 5:RAD 9:ATT 9:ATT 11:SBV 11:ADV 0:HED 11:RAD 11:WP
———————————————————————————————————————————————————————————————————————————————————————————————————————