Advertisement

pyltp的安装及使用(win10+ubuntu16.04)

阅读量:

目录

安装

win10系统安装:

ubuntu16.04系统安装:

模型

使用

几点说明

词性表

命名实体识别的格式

依存句法分析的结构

语义角色标注的角色


安装

win10系统安装:

方式一:pip install pyltp(据很多人说不太好使,很多坑)

方式二:首先进行wheel程序的安装操作。具体来说,由于当前使用的Python版本为3.6,因此需要从官方渠道获取到相应的whl文件,即pyltp-0.2.1-cp36-cp36m-win_amd64.whl,然后将该文件放置在合适的路径下运行pip命令即可完成整个过程的操作步骤

ubuntu16.04系统安装:

在安装之前,你需要先安装C++的编译工具g++,因为ltp的代码是用C++写的。

复制代码
    sudo apt-get install g++

请开始配置并安装pyltp系统。官方提供了两种安装路径,请参考来自GitHub上的pyltp源码仓库的相关说明。

在尝试安装pip时(已经进行了相当长时间),我发现没有响应也没有看到明显的更新信息(导致我感到非常着急),对能否成功还不确定)。

对于git安装呢,服务器上没装git,又懒得装,所以没试。

这里我来说一下我的安装方式:

从GitHub获取pyLTP源码,并访问https://github.com/HIT-SCIR/pyltp获取完整的代码仓库。随后将获取的源码文件上传至服务器,并进行解压操作。通常会生成一个名为"pyltp-master"的目录。

然后cd到该文件夹下的“ltp”文件夹,发现为空。

下一步是从GitHub平台获取LTP源码包[ltp-3.4.0.tar.gz](https://github.com/HIT-SCIR/ltp/releases)(请根据需求选择具体的source code),然后提交至服务器端,并解压至本地LTP项目根目录下的"ltp"文件夹中)

然后运行回到“pyltp-master”中,python setup.py install就可以了。

模型

采用内部预训练模型进行开发时,请确保完成以下步骤:首先执行必要的数据准备操作 - 下载地址为http://ltp.ai/download.html;然后按照指导文档配置路径参数 - 注意:ltp3.4.0版本SRL模型pisrl.model在Windows系统下不可用,请下载以下模型文件:pisrl_win.model

使用

复制代码
 //ltp模型的路径

    
 LTP_DIR = "E:\PyCharm Community Edition 2019.3.1\workspace\ltp_data_v3.4.0"
    
  
    
  
    
 //分词
    
 from pyltp import Segmentor
    
  
    
 seg = Segmentor() #生成对象
    
 seg.load(os.path.join(LTP_DIR, "cws.model")) #加载分词预训练模型
    
 seg_words = seg.segment(text)
    
 print(" ".join(seg_words))
    
 seg.release() #释放资源
    
  
    
  
    
 //词性标注
    
 from pyltp import Postagger
    
  
    
 pos=Postagger()
    
 pos.load(os.path.join(LTP_DIR, "pos.model"))   #加载词性预训练模型
    
 words_pos=pos.postag(seg_words)
    
 for k,v in zip(seg_words, words_pos):
    
     print(k+'\t'+v)
    
 pos.release()
    
  
    
  
    
 //命名实体识别
    
 from pyltp import NamedEntityRecognizer
    
 ner = NamedEntityRecognizer()
    
 ner.load(os.path.join(LTP_DIR, "ner.model"))   #加载实体识别模型
    
 netags=ner.recognize(seg_words,words_pos)
    
 print(" ".join(netags))
    
 ner.release()
    
  
    
  
    
 //依存语义分析
    
 from pyltp import Parser
    
  
    
 parser=Parser()
    
 parser.load(os.path.join(LTP_DIR, "parser.model"))   #加载依存语义分析模型
    
 arcs=parser.parse(seg_words,words_pos)
    
 print([(arc.head,arc.relation) for arc in arcs])
    
 parser.release()
    
  
    
 //语义角色标注
    
 from pyltp import SementicRoleLabeller
    
  
    
 labeller = SementicRoleLabeller()
    
 labeller.load(os.path.join(LTP_DIR, "pisrl_win.model"))
    
 roles = labeller.label(seg_words,words_pos,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]))

几点说明

词性表

命名实体识别的格式

该命名实体识别模型(LTP)采用了BIESO标注体系。其中,
B对应实体开始词,
I对应实体中间词,
E对应实体结束词,
S对应单独成体的命名实体,
而O则标记非命名实体区域。

LTP 提供的命名实体类型为:人名(Nh),地名(Ns),机构名(Ni)。

依存句法分析的结构

语义角色标注的角色

官方文档建议使用pyltp 0.2.0中的api.html文件(https://pyltp.readthedocs.io/zh_CN/latest/api.html#id19)。

全部评论 (0)

还没有任何评论哟~