Windows上pyltp的安装及使用
2017-11-01 20:06
183 查看
前言
最近在做电影评论中人名识别的相关工作,对这一块思考了很久,因为评论中的人名称呼不一,“一人多名”是很普遍的,前期使用了hanlp的HMM模型、CRF模型匹配出的“nr”都是比较正常的人名,后期使用了nlpir模型但还是有些缺漏,对于赘词“小”“大”“老”“哥”等基本都匹配不出。后面使用了哈工大的LTP,发觉效果明显提升,由于是在Ubuntu上进行代码编写,在安装pyltp时频频报错,确实令人心灰意冷,后来另辟蹊径采用ltp接口,但是在速度上受限以及输入上诸多规范,就在想要放弃的时候,突然成功安装Windows上的pyltp,在此非常感谢这位博主:http://blog.csdn.net/mebiuw/article/details/52496920,以下也是借鉴这位博主的内容并加入自己的内容关于LTP
语言技术平台(LTP) 是由哈工大社会计算与信息检索研究中心历时11年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、 高效、精准的自然语言处理技术。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口,可视化工具,并且能够以网络服务(WebService)的形式进行使用。安装过程
一.安装python2.7
1.进入链接:https://www.python.org/download/releases/2.7/
选择适合自己的版本,下载后直接安装即可2.配置环境
将python路径加入Path中。右键单击 【我的电脑】,选择菜单属性命令,在弹出的对话框中选择 【高级系统设置】 标签,然后点击【环境变量】 按钮。选中【系统变量】中的“Path”选项,单击【编辑】按钮,将弹出如下图所示的对话框。在【变量值】文本框中的末尾添加“;C:\Python27”(这里是你的安装路径),单击【确定】按钮。二.安装Micorsoft Visual C++ Compiler for Python 2.7
因为LTP平台是基于C++,在安装pyltp的过程中会报错:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27[/code]
所以需要先安装这个软件,前往这个链接:https://www.microsoft.com/en-us/download/details.aspx?id=44266 下载安装即可三.安装pyltp
在已经安装好pip的前提下,打开cmd,进入如下路径:
输入pip install pyltp
看到下面的就成功啦!Successfully installed pyltp
接下来就是下载ltp的相关模型,可在此百度云选择下载:https://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569#list/path=%2F四.pyltp的使用
注意点:模型的路径最好不要有中文,不然模型加载不出# -*- coding: utf-8 -*- from pyltp import SentenceSplitter from pyltp import Segmentor from pyltp import Postagger from pyltp import NamedEntityRecognizer from pyltp import Parser def sentence_splitter(sentence): """ 分句,也就是将一片文本分割为独立的句子 :param sentence:几句话 :return: 单个单个句子 """ single_sentence = SentenceSplitter.split(sentence) # 分句 print '\n'.join(single_sentence) def word_splitter(sentence): """ 分词 :param sentence: :return: """ segmentor = Segmentor() # 初始化实例 segmentor.load('D:\Python code\ltp_model\ltp_data_v3.4.0\cws.model') # 加载模型 words = segmentor.segment(sentence) # 分词 # 默认可以这样输出 # print '\t'.join(words) # 可以转换成List 输出 words_list = list(words) for word in words_list: print word segmentor.release() # 释放模型 return words_list def word_tag(words): """ 词性标注 :param words: 已切分好的词 :return: """ postagger = Postagger() # 初始化实例 postagger.load('D:\Python code\ltp_model\ltp_data_v3.4.0\pos.model') # 加载模型 postags = postagger.postag(words) # 词性标注 for word, tag in zip(words, postags): print word+'/'+tag postagger.release() # 释放模型 return postags def name_recognition(words, postags): """ 命名实体识别 :param words:分词 :param postags:标注 :return: """ recognizer = NamedEntityRecognizer() # 初始化实例 recognizer.load('D:\Python code\ltp_model\ltp_data_v3.4.0\\ner.model') # 加载模型 netags = recognizer.recognize(words, postags) # 命名实体识别 for word, ntag in zip(words, netags): print word + '/' + ntag recognizer.release() # 释放模型 return netags def parse(words, postags): """ 依存句法分析 :param words: :param postags: :return: """ parser = Parser() # 初始化实例 parser.load('D:\Python code\ltp_model\ltp_data_v3.4.0\parser.model') # 加载模型 arcs = parser.parse(words, postags) # 句法分析 print "\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs) parser.release() # 释放模型 # 测试分句子 # sentence_splitter('你好,你觉得这个例子从哪里来的?当然还是直接复制官方文档,然后改了下这里得到的。') # 测试分词 # word_splitter('你好,你觉得这个例子从哪里来的?当然还是直接复制官方文档,然后改了下这里得到的。') bac2 # 测试词性标注 # word_tag(word_splitter('你好,你觉得这个例子从哪里来的?当然还是直接复制官方文档,然后改了下这里得到的。')) # 测试命名实体识别 # words = word_splitter('我家在昆明,我现在在北京上学。中秋节你是否会想到李白?') # tags = word_tag(words) # name_recognition(words, tags) # 测试句法分析 # parse(words, tags)
相关文章推荐
- Python在Windows下使用ez_setup.py安装pip
- windows 安装后 帮助和支持无法使用的解决方法 (供参考)
- CVSNT在Windows下的安装和使用
- WINDOWS 2000下使用ISAPI方式安装PHP
- WINDOWS 2000下使用ISAPI方式安装PHP
- MPICH NT 1.2.5 安装使用简要说明(windows)
- CVS安装配置与使用!(for Windows)
- 如何安装并使用Windows Symbol File
- 如何让windows升级文件在下载安装系统时使用
- 在windows安装epics base,以及JCA的使用
- 使用HP服务器ilo安装Windows 2000
- 安装和使用ffmpeg转换视频为flv文件(windows和linux)
- windows 2003故障恢复控制台的安装及使用
- linux学习使用总结-linux系统的安装和与windows双系统共享,linux常用的基本命令,今天贴在这里和大家分享
- CVSNT在Windows下的安装和使用
- CVSNT在Windows下的安装和使用
- 提示该盘CD-ROM来自于比您当前使用的windows更旧的版本 该盘上的安装功能已被禁用
- 金山打字通WINDOWS XP及WINDOWS 2003下安装后普通用户无法使用的问题
- 在VirtualBox上安装和使用Windows
- CVSNT在Windows下的安装和使用 [转贴 2005-12-6 6:43:13 ]