【PYLTP】pyltp(SentenceSplitter、Segmentor、Postagger、NamedEntityRecognizer、Parserr)个人理解(含可执行代码)
此博客均为对下面这个文档的复现,非原创!!!!
使用 pyltp — pyltp 0.2.0 文档
附录 — LTP4 4.1.4 文档
1.安装pyltp
首先激活你的虚拟环境,然后输入下面语句即可,如果出现问题的话可以更换为清华源。
pip install pyltp
然后下载你自己所需要的ltp模型,这里附上3.4.0版本的
http://model.scir.yunfutech.com/model/ltp_data_v3.4.0.zip
2.使用的简单举例
2.1分句
import pyltp
import torch
from pyltp import SentenceSplitter
sents = SentenceSplitter.split('元芳你怎么看?我就趴窗口上看呗!') # 分句
print( '\n'.join(sents))
2.2分词:这个过程切记要注意设置utf-8编码
# -*- coding: utf-8 -*-
import os
#print(os.getcwd())
LTP_DATA_DIR = 'F:\Torrch_learn\pyltp\ltp_data_v3.4.0' # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型路径,模型名称为`cws.model`
print(cws_model_path)from pyltp import Segmentor
segmentor = Segmentor() # 初始化实例
segmentor.load(cws_model_path) # 加载模型
words = segmentor.segment('元芳你怎么看') # 分词
#print(list(words))
print( '\t'.join(words))
segmentor.release() # 释放模型
2.3 使用分词外部词典
pyltp 分词支持用户使用自定义词典。分词外部词典本身是一个文本文件(plain text),每行指定一个词,编码同样须为 UTF-8,样例如下所示
苯并芘
亚硝酸盐
# -*- coding: utf-8 -*-
import os
LTP_DATA_DIR = 'F:\Torrch_learn\pyltp\ltp_data_v3.4.0' # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型路径,模型名称为`cws.model`from pyltp import Segmentor
segmentor = Segmentor() # 初始化实例
segmentor.load_with_lexicon(cws_model_path, 'F:\Torrch_learn\pyltp\ltp_data_v3.4.0⃐\lexicon.txt') # 加载模型,第二个参数是您的外部词典文件路径
words = segmentor.segment('亚硝酸盐是一种化学物质')
print ('\t'.join(words))
segmentor.release()
2.4 词性标注
# -*- coding: utf-8 -*-
import os
LTP_DATA_DIR = 'F:\Torrch_learn\pyltp\ltp_data_v3.4.0' # ltp模型目录的路径
pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model') # 词性标注模型路径,模型名称为`pos.model`from pyltp import Postagger
postagger = Postagger() # 初始化实例
postagger.load(pos_model_path) # 加载模型words = ['元芳', '你', '怎么', '看'] # 分词结果
postags = postagger.postag(words) # 词性标注
res = zip(words,list(postags))
for r in res:print(r)
print( '\t'.join(postags))
postagger.release() # 释放模型
2.5 命名体识别
LTP 采用 BIESO 标注体系。B 表示实体开始词,I表示实体中间词,E表示实体结束词,S表示单独成实体,O表示不构成命名实体。
LTP 提供的命名实体类型为:人名(Nh)、地名(Ns)、机构名(Ni)。
B、I、E、S位置标签和实体类型标签之间用一个横线 -
相连;O标签后没有类型标签
# -*- coding: utf-8 -*-
import os
LTP_DATA_DIR = 'F:\Torrch_learn\pyltp\ltp_data_v3.4.0' # ltp模型目录的路径
ner_model_path = os.path.join(LTP_DATA_DIR, 'ner.model') # 命名实体识别模型路径,模型名称为`pos.model`from pyltp import NamedEntityRecognizer
recognizer = NamedEntityRecognizer() # 初始化实例
recognizer.load(ner_model_path) # 加载模型words = ['元芳', '你', '怎么', '看']
postags = ['nh', 'r', 'r', 'v']
netags = recognizer.recognize(words, postags) # 命名实体识别
res = zip(words,list(netags))
for r in res:print(r)
print ('\t'.join(netags))
recognizer.release() # 释放模型
2.6 依存句法分析
arc.head
表示依存弧的父节点词的索引。ROOT节点的索引是0,第一个词开始的索引依次为1、2、3…
arc.relation
表示依存弧的关系。
arc.head
表示依存弧的父节点词的索引,arc.relation
表示依存弧的关系
# -*- coding: utf-8 -*-
import os
LTP_DATA_DIR = '/path/to/your/ltp_data' # ltp模型目录的路径
par_model_path = os.path.join(LTP_DATA_DIR, 'parser.model') # 依存句法分析模型路径,模型名称为`parser.model`from pyltp import Parser
parser = Parser() # 初始化实例
parser.load(par_model_path) # 加载模型words = ['元芳', '你', '怎么', '看']
postags = ['nh', 'r', 'r', 'v']
arcs = parser.parse(words, postags) # 句法分析print "\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs)
parser.release() # 释放模型
【PYLTP】pyltp(SentenceSplitter、Segmentor、Postagger、NamedEntityRecognizer、Parserr)个人理解(含可执行代码)相关推荐
- 中文句法分析及LTP使用
目录 一.中文句法分析内容概述 二.基于Python的LTP句法分析 1.LTP基础 2.pyltp安装 3.pyltp实现句法分析 三.基于C++的LTP句法分析 1.LTP源码和模型 2.LTP的 ...
- 【NLP】pyltp工具介绍、安装和使用代码+示例
[NLP]pyltp工具介绍.安装和使用pyltp 文章目录 [NLP]pyltp工具介绍.安装和使用pyltp 1. 介绍 2. 使用 2.1 分句 2.2 分词 2.3 词性标注 2.4 命名实体 ...
- 从0到1 | 手把手教你如何使用哈工大NLP工具——PyLTP!
作者 | 杨秀璋 来源 | CSDN 博客(CSDN id:Eastmount) (本文经作者授权,此系列文章整理后微信平台首发于AI科技大本营) [导语]此文是作者基于 Python 构建知识图谱的 ...
- 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)
pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...
- NLP入门:pyltp的介绍与使用
♚ 作者: jclian,喜欢算法,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 ...
- [python][转载]pyltp的使用教程
1 LTP 简介 LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词.词性标注.句法分析等等工作.从应用角度来看,LTP为用户提供了下列组件: 针对单一自然语言处理任务, ...
- Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札
1 什么是pyltp 语言技术平台(LTP) 是由 哈工大社会计算与信息检索研究中心 11 年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词.词性标注.命名实体识别.依存句法分析.语义角 ...
- pyltp包下载及使用
pyltp包下载 1.下载wheel whl下载地址: windows下python3.5 windows下python3.6 下载好了以后, 在命令行下, cd到wheel文件所在的目录, 然后使用 ...
- python语音标注平台_Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札...
1 什么是pyltp 语言技术平台(LTP) 是由 哈工大社会计算与信息检索研究中心 11 年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词.词性标注.命名实体识别.依存句法分析.语义角 ...
最新文章
- 看linux书籍做的一些重要笔记(2011.07.03更新)
- 彻底理解JavaScript中回调函数 (推荐)
- java struts 框架_java struts 框架编程
- Codeforces 1196D RGB Substring
- 全境封锁UI游戏设计指南
- oracle optimizer_features_enable,Oracle Optimizer:迁移到使用基于成本的优化器—–系列2.1-数据库专栏,ORACLE...
- php中日期选择代码,实现JS日期时间选择器
- 01-图像ROI区域获取
- git 的安装以及使用:是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作...
- 华科PAMI黑科技,方向任意目标检测新算法
- windosw应用提示内存不足
- Understanding Unix/Linux Programming-事件驱动编程:编写一个视频游戏
- mysql怎么导入代码_mysql导入数据步骤mysqlimport
- 渗透测试工程师 面试官常见的50个问题 你能回答上几个?
- Cf#595 (Div. 3)E-DP题
- 关于核磁共振项目的硬件理解
- Go语言查缺补漏ing Day1
- qt creator编译qt工程时报错:undefined reference to
- 「Computer keyboard」- 在键盘中,手指的摆放位置 @20210331
- 创建一键部署的前后端(SpringBoot+Vue+nginx)项目镜像