原文链接:https://blog.csdn.net/yangfengling1023/article/details/84559848
LTP即哈工大语言技术平台云,是基于云计算技术的中文自然语言处理服务平台
在线使用的网址:https://www.ltp-cloud.com/
github网址:https://github.com/HIT-SCIR/ltp
模型下载网址:http://ltp.ai/download.html
1、安装
我主要完成了python安装pyltp,但是在安装的过程中,需要安装VS,不同版本的python会对应不同的VS
python3.6 对应的VS2005 可以从下面的网盘进行下载:
链接:https://pan.baidu.com/s/19DwbVfe3JQYWA3oPCZQoPw
提取码:u5lm
python2.7.13 对应的VS可以从下面的网盘中进行下载:
链接:https://pan.baidu.com/s/1rd_9i4wy45FKeF2oYSPCbA
提取码:qf38
(1)python3.6安装过程
执行下面的安装步骤则完成了安装
$ git clone https://github.com/HIT-SCIR/pyltp
$ git submodule init
$ git submodule update
$ python setup.py install
但此时安装的pyltp版本是0.2.1
(2)python2.7.13安装过程
按照上面的步骤,会出现下面的问题(本地的python版本默认的是python2.7.14):
visual c++ for python\9.0\VC\Bin\amd64\cl.exe failed with exit status 2
解决方法:
把python2.7.14换成python2.7.13版本即可,且改成pip安装,具体的安装命令如下所示:
set STATICBUILD=true && pip install pyltp==0.1.9.1
此时安装的pyltp版本为0.1.9.1
2、使用
LTP提供的模型包括:(在ltp_data文件夹http://ltp.ai/download.html)
cws.model 分句模型,单文件
pos.model 词性标注模型,单文件
ner.model 命名实体识别模型,单文件
parser.model 依存句法分析模型,单文件
srl_data/ 语义角色标注模型,多文件(文件夹srl)
主要使用pyltp中的命名实体识别的功能,具体的代码如下所示:
- # -*- coding: utf-8 -*-
- from pyltp import SentenceSplitter
- from pyltp import Segmentor
- from pyltp import Postagger
- from pyltp import NamedEntityRecognizer
-
-
- paragraph1 = "张三来自中国"
- # 分词
- sengentor = Segmentor()
- sengentor.load("model/ltp_data_v3.4.0/cws.model")
- words = sengentor.segment(paragraph1)
-
- sengentor.release() # 释放模型
-
- # 词性标注
- postagger = Postagger()
- postagger.load("model/ltp_data_v3.4.0/pos.model")
- postags = postagger.postag(words)
- postagger.release() # 释放模型
-
- # 命名实体识别
- recognizer = NamedEntityRecognizer()
- recognizer.load("model/ltp_data_v3.4.0/ner.model")
- netags = recognizer.recognize(words, postags)
- result = "|".join(netags).split('|')
- for i in range(len(words)):
- print words[i],postags[i],result[i]
- recognizer.release() # 释放模型
运行的结果如下图所示: