在本地安装使用 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

在本地安装使用 LTP_第1张图片
pyltp 安装成功

2. 模型下载

安装完成后,我们需要安装pyltp的模型,从百度云这里下载 ,注意模型版本必须要和pyltp的版本对应。
我使用的版本如下

pyltp版本::0.1.9.1 模型:3.4.0

4. Demo

# -*- coding: utf-8 -*-
#作者:gaozhengjie
#博客:http://blog.csdn.net/firewall5788
#邮箱:[email protected]
#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日搬家至此!

你可能感兴趣的:(在本地安装使用 LTP)