Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札

本文介绍了Python下的LTP语言技术平台pyltp,详细讲解了pyltp的安装、模型下载与配置,以及如何使用它进行分句、分词、词性标注、命名实体识别和依存句法分析。通过实例展示了pyltp在自然语言处理中的应用。
摘要由CSDN通过智能技术生成

1 什么是pyltp

语言技术平台(LTP) 是由 哈工大社会计算与信息检索研究中心 11
年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、
高效、精准的自然语言处理技术。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic
Link Library, DLL)的应用程序接口,可视化工具,并且能够以网络服务(Web Service)的形式进行使用。

默认上来说,ltp平台是基于C++的,但是大家也都知道我是不用C++的,所以我看到了其python的版本,pyltp,于是拿来写了个手札。

我目前主要用到的部分可能还是以中文分词为主,其他后续加上(PS:因为我觉得之前那个不太喜欢)。
NLPIR 汉语分词系统 (PyNLPIR) 学习手札

好了废话不多说,一步一步来,让我们先从安装开始。
这次我首次安装pyltp的平台是windows 10(我的环境osx or windows10 or Ubuntu,一般nlp相关的都是osx或win上,平台相关的都是Ubuntu) + python2.7

1 pyltp 安装

1、使用Pip进行安装

关于Pip,已经不用重复太多了,快速简单,我也一直用,这里也一样。

$ pip install pyltp

这里说一下我遇到的问题,缺少Visual C++ 9.0:
Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

这里写图片描述
解决方式(2选1):
1、安装一个Visual Studio 2008 只能是这个版本,网上说12,我的15都不行
2、安装一个Micorsoft Visual C++ Compiler for Python 2.7,或者这个链接直接下载,但是可能会失效 安装完成后,重新运行那个安装指令就可以了

2、模型下载

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

我写文的时候,使用的是3.3.1,注意网盘里面有个zip和tar两种,选择一个你能下载的就可以了

pyltp 版本:0.1.9 LTP 版本:3.3.2 模型版本:3.3.1

3 配置

当我们完成了安装和模型下载后,就需要做一些相关的配置,保证pyltk可以使用到对应的模型
这里所谓的配置,就是在代码中,需要预先load一下
1、将上述的模型压缩包解压到指定的文件夹
2、在使用时,使用类似的方式的加载模型,注意替换自己的模型地址

segmentor.load('/path/to/your/model')  # 加载模型

3 pyltk 使用

分句

分句,也就是将一片文本分割为独立的句子,不需要加载模型的哦,我看了一下应该就是按照符号来分割的。

# -*- coding: utf-8 -*-
from pyltp import SentenceSplitter
#分句,也就是将一片文本分割为独立的句子
def sentence_splitter(sentence='你好,你觉得这个例子从哪里来的?当然还是直接复制官方文档,然后改了下这里得到的。'):
    sents = SentenceSplitter.split(sentence)  # 分句
    print '\n'.join(sents)

#测试分句子
sentence_splitter()

运行结果
这里写图片描述

分词

关于分词是什么,就不用多说了,直接看。
注意分词的模型默认是:cws.model

# -*- coding: utf-8 -*-
from pyltp import Segmentor
#分词
def segmentor(sentence='你好,你觉得这个例子从哪里来的?当然还是直接复制官方文档,然后改了下这里得到的。我的微博是MebiuW,转载请注明来自MebiuW!'):
    segmentor = Segmentor()  # 初始化实例
    segmentor.load('C:\\Users\\72770\\Documents\\Chatbot\\ltp-data-v3.3.1\\ltp_data\\cws.model')  # 加载模型
    words = segmentor.segment(sentence)  # 分词
    #默认可以
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值