本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

作者 | 杨秀璋

 

来源 | CSDN 博客(CSDN id:Eastmount)

 

【导语】此文是作者基于 Python 构建知识图谱的系列实践教程,具有一定创新性和实用性。文章前半部分内容先介绍哈工大 pytltp 工具,包括安装过程、中文分词、词性标注和实体识别的一些基本用法;后半部分内容 讲解词性标注、实体识别、依存句法分析和语义角色标注及代码实现。

 

【上篇】

 

一、哈工大LTP

 

LTP(Language Technology Platform)中文为语言技术平台,是哈工大社会计算与信息检索研究中心开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library,DLL)的应用程序接口,可视化工具,并且能够以网络服务的形式进行使用。

 

LTP开发文档:

 

https://ltp.readthedocs.io/zh_CN/latest/index.html

 

语言云LTP-Cloud:

 

http://www.ltp-cloud.com/

 

模型下载地址:

 

http://ltp.ai/download.html

 

在线演示案例如下图所示:

 

 

 

相信从事NLP、数据挖掘、知识图谱等领域的博友都知道哈工大LTP、同义词词林这些工具,该系列文章也会介绍相关的知识,希望对您有所帮助。

 

此外,再补充另一个在线NLP分析系统,感兴趣的朋友们也可以试一下~

 

http://ictclas.nlpir.org/nlpir/

 

 

 

 

二.pyltp 终极安装

 

下面介绍 Windows10 Python 环境下 LTP 的扩展包 pyltp 安装过程。

 

1.常见错误

 

大家通常会调用 “pip install pyltp” 安装该扩展包,但会遇到各种错误,下面介绍一种可行的方法。

 

2.安装pyltp包

 

首先,安装Python3.6环境,如下图所示“python-3.6.7-amd64.exe”。

 

 

接着,下载pyltp扩展包的whl文件至本地,调用CMD环境进行安装,注意需要将所在文件的路径写清楚。

 

pyltp-0.2.1-cp35-cp35m-win_amd64.whl (对应Python3.5版本)	
pyltp-0.2.1-cp36-cp36m-win_amd64.whl (对应Python3.6版本)	
pip install C:\Python36\Scripts\pyltp-0.2.1-cp36-cp36m-win_amd64.whl

 

whl下载地址:
https://download.csdn.net/download/qq_22521211/10460778

 

安装过程下图所示,此时表示pyltp安装成功。

 

 

注意,如果报错“error:Microsoft Visual C++ 9.0 is required”,则安装下面exe文件。

 

 

3.下载模型文件

 

最后需要下载模型文件,其下载地址为:

 

百度云

 

https://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569#list/path=%2F

 

七牛云

 

http://ltp.ai/download.html

 

本文下载3.4版本的模型,下载解压如下图所示:

 

 

模型对应的说明如下图所示:

 

 

在编写代码时,需要导入指定文件夹中的模型,再进行中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等分析。例如:

 

#词性标注	
pdir='AgriKG\\ltp\\pos.model'	
pos = Postagger()	
pos.load(pdir)	
postags = pos.postag(word) #基于分词得到的list将下词性标注	
postags = list(postags)	
print(u"词性:", postags)

 

分词、词性标注、句法分析一系列任务之间存在依赖关系。举例来讲,对于词性标注,必须在分词结果之上进行才有意义。LTP中提供的5种分析之间的依赖关系如下所示:

 

 

讲到这里,哈工大pyltp基本安装成功,接下来将介绍它的基本用法。

 

基础性文章,希望对入门者有所帮助。

 

三.中文分句和分词

 

官方文档:

 

https://pyltp.readthedocs.io/zh_CN/latest/api.html#id13

 

实现原理:

 

https://ltp.readthedocs.io/zh_CN/latest/theory.html#customized-cws-reference-label

 

1.中文分句

 

# -*- coding: utf-8 -*-	
from pyltp  import SentenceSplitter	
from pyltp import Segmentor	
from pyltp import Postagger	
from pyltp import NamedEntityRecognizer	
#分句	
text = "贵州财经大学要举办大数据比赛吗?那让欧几里得去问问看吧!其实是在贵阳花溪区吧。"	
sents = SentenceSplitter.split(text)  	
print('\n'.join(sents))

 

中文分句的输出结果如下所示:

 

贵州财经大学要举办大数据比赛吗?	
那让欧几里得去问问看吧!	
其实是在贵阳花溪区吧。

 

2.中文分词

 

# -*- coding: utf-8 -*-	
from pyltp  import SentenceSplitter	
from pyltp import Segmentor	
from pyltp import Postagger	
from pyltp import NamedEntityRecognizer