在本地安装使用 LTP
2017-12-24 本文已影响369人
高正杰
1. 在本地安装 pyltp
本机是 python3.x
环境,使用 pip
包管理器进行安装。
在 cmd
命令行输入如下命令即可。
pip install pyltp
报错:error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
解决办法:直接去对应的网址下载这些组件自动安装即可,http://landinghub.visualstudio.com/visual-cpp-build-tools
pyltp 安装成功2. 模型下载
安装完成后,我们需要安装pyltp
的模型,从百度云这里下载 ,注意模型版本必须要和pyltp
的版本对应。
我使用的版本如下
pyltp版本::0.1.9.1 模型:3.4.0
4. Demo
# -*- coding: utf-8 -*-
#作者:gaozhengjie
#博客:http://blog.csdn.net/firewall5788
#邮箱:3170601003@cuit.edu.cn
#python 版本:3.6.1
#时间:2017/10/15
from pyltp import SentenceSplitter
from pyltp import Segmentor
from pyltp import Postagger
from pyltp import SementicRoleLabeller
from pyltp import NamedEntityRecognizer
from pyltp import Parser
model_address = 'D:\\BaiduYunDownload\\ltp_data_v3.4.0\\' # 模型的根地址,具体模型在后面添加地址即可
#分词
def segmentor(sentence):
segmentor = Segmentor() # 初始化实例
segmentor.load_with_lexicon(model_address+'cws.model', model_address+'dict.txt') # 加载模型
words = segmentor.segment(sentence) # 分词
#默认可以这样输出
print('\t'.join(words))
# 可以转换成List 输出
words_list = list(words)
segmentor.release() # 释放模型
return words_list
def posttagger(words):
postagger = Postagger() # 初始化实例
postagger.load(model_address+'pos.model') # 加载模型
postags = postagger.postag(words) # 词性标注
for word,tag in zip(words,postags):
print(word+'/'+tag)
postagger.release() # 释放模型
return postags
#命名实体识别
def ner(words, postags):
recognizer = NamedEntityRecognizer() # 初始化实例
recognizer.load(model_address+'\\ner.model') # 加载模型
netags = recognizer.recognize(words, postags) # 命名实体识别
for word, ntag in zip(words, netags):
print(word + '/' + ntag)
recognizer.release() # 释放模型
return netags
test_sentence = '我老家广安的,我现在在成都信息工程大学上学。我的室友夏朝阳写代码很厉害,我要向他学习。还有,我的博客是http://blog.csdn.net/firewall5788'
#测试分词
words = segmentor(test_sentence)
print('###############以上为分词测试###############')
#测试标注
tags = posttagger(words)
print('###############以上为词性标注测试###############')
#命名实体识别
netags = ner(words,tags)
print('###############以上为命名实体识别测试###############')
推荐参考该文章 http://blog.csdn.net/mebiuw/article/details/52496920
附
该文章于2017年10月13日于CSDN上首次发表,2017年12月24日搬家至此!