在Centos7上安装使用Pyltp
来源:互联网 发布:淘宝上传切好的详情页 编辑:程序博客网 时间:2024/06/04 20:07
本篇主要介绍在centos7上安装pyltp时本人遇到的问题以及相应的对策。
什么是pyltp
“语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口、可视化工具,并且能够以网络服务(Web Service)的形式进行使用。”
pyltp就是这款平台的python版本。
安装方式
官方有pip和python install
如果是在anaconda3的环境下,使用pip会报错,官方建议下载整个源码库,然后在本地用python install
-用pip安装报错的问题答复
$ git clone https://github.com/HIT-SCIR/pyltp $ git submodule init $ git submodule update $ python setup.py install
安装g++
git在国内的网速奇慢,好不容易将pyltp的源码库都下下来了,这时也按前面提到的python install的方法操作,却弹出报错,其中有一句
gcc: error trying to exec 'cc1plus': execvp: 没有那个文件或目录
是因为没有安装g++造成的
缺啥补啥呗,但要注意g++在yum里面叫做gcc-c++
所以在shell里面要敲入
yum install gcc-c++
安装成功
当g++安装好之后,就安装成功了,这时候import pyltp 不报错就安装成功了。然后下载你想要的版本的模型。我选择了3.3.1版本的,然后 将其中.zip 那个模型压缩文件解压,按照使用方法指定模型路径,导入模型,就可以使用啦~
效果
其他性能效果暂不评论,我是冲着语义角色标注的功能才用pyltp的,但出来的效果似乎不太理想。
就拿官方的
‘国务院总理李克强调研上海外高桥时提出,支持上海积极探索新机制。’
例子试了一下,‘国务院总理李克’居然被识别成TMP(时间)的角色上了。
感觉实在不太理想。可能得考虑自己搭神经网络实现了。
个人demo源码
# -*- coding: utf-8 -*-input_str = '国务院总理李克强调研上海外高桥时提出,支持上海积极探索新机制。'import osLTP_DATA_DIR = '/steven_workspace/ltp_data' # ltp模型目录的路径cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 先做分词print('='*10+'分词'+'='*10)from pyltp import Segmentorsegmentor = Segmentor() # 初始化实例segmentor.load(cws_model_path) # 加载模型words = segmentor.segment(input_str) # 分词print ('\t'.join(words))segmentor.release() # 释放模型# 做词性标注print('='*10+'词性标注'+'='*10)pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model') # 词性标注模型路径,模型名称为`pos.model`from pyltp import Postaggerpostagger = Postagger() # 初始化实例postagger.load(pos_model_path) # 加载模型postags = postagger.postag(words) # 词性标注print_str_list = ['%s: %s'%(words[ind],postags[ind]) for ind in range(len(words))]print ('\t'.join(print_str_list))postagger.release() # 释放模型# 做依存句法分析print('='*10+'依存句法分析'+'='*10)par_model_path = os.path.join(LTP_DATA_DIR, 'parser.model') # 依存句法分析模型路径,模型名称为`parser.model`from pyltp import Parserparser = Parser() # 初始化实例parser.load(par_model_path) # 加载模型arcs = parser.parse(words, postags) # 句法分析arcs_str_list = ["%d:%s" % (arc.head, arc.relation) for arc in arcs]print_str_list = ['%s: %s'%(words[ind],arcs_str_list[ind]) for ind in range(len(words))]print ("\t".join(print_str_list))parser.release() # 释放模型# 命名实体识别print('='*10+'命名实体识别'+'='*10)ner_model_path = os.path.join(LTP_DATA_DIR, 'ner.model') # 命名实体识别模型路径,模型名称为`pos.model`from pyltp import NamedEntityRecognizerrecognizer = NamedEntityRecognizer() # 初始化实例recognizer.load(ner_model_path) # 加载模型netags = recognizer.recognize(words, postags) # 命名实体识别print_str_list = ['%s: %s'%(words[ind],netags[ind]) for ind in range(len(words))]print ('\t'.join(print_str_list))recognizer.release() # 释放模型# 做语义角色标注print('='*10+'语义角色标注'+'='*10)srl_model_path = os.path.join(LTP_DATA_DIR, 'srl') # 语义角色标注模型目录路径,模型目录为`srl`。注意该模型路径是一个目录,而不是一个文件。from pyltp import SementicRoleLabellerlabeller = SementicRoleLabeller() # 初始化实例labeller.load(srl_model_path) # 加载模型# arcs 使用依存句法分析的结果roles = labeller.label(words, postags, netags, arcs) # 语义角色标注# 打印结果for role in roles: print (role.index, "".join( ["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments])) print(role.index, "".join( ["%s:(%s)" % (arg.name, input_str[arg.range.start:arg.range.end+1]) for arg in role.arguments]))labeller.release() # 释放模型
阅读全文
0 0
- 在Centos7上安装使用Pyltp
- Windows上pyltp的安装及使用
- pyltp安装
- Python中pyltp包安装和使用
- 在centos7上安装DSPC
- 在CentOS7上安装MySQL
- 在CentOS7上安装mysql
- 在centOS7 上安装MariaDB
- 在centos7上安装nginx
- 在 CentOS7 上安装 MongoDB
- 在VirtualBox上安装CentOS7
- 在centOS7上安装docker
- 在 CentOS7 上安装 Tomcat9
- 在 CentOS7 上安装 Tomcat9
- 在服务器上安装Centos7
- hive在centos7上安装
- 在CentOS7上安装RabbitMQ
- 在CentOS7上安装mysql
- 【Cocos2dx-lua 3.11.1】编译cocos的simulator.exe用F5快捷刷新cocos-lua项目。
- 基础知识
- 浅析JavaScript闭包,也许你会有不一样的收获
- CREATE SEQUENCE添加自增序列及NEXT VALUE FOR返回序列号
- Java 导入 xls,xlsx 文件数据
- 在Centos7上安装使用Pyltp
- SDUT-1205 C语言实验——合法的C标识符
- Windows系统下:jenkins+selenium+TestNG一步搞定简单自动化持续集成
- 浅谈JAVA中几种循环语句的区别
- TfidfVectorizer和TfidfTransformer
- H264编码原理以及I帧B帧P帧
- 学习Linux命令(42)
- 解读住房公积金提取买房、租房、贷款新政
- SDUT-1210 简单密码破解