在本地安装使用-LTP

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风醉雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值