import re
from pyltp import NamedEntityRecognizer
from pyltp import SementicRoleLabeller
from pyltp import Parser
from pyltp import Postagger
def ltp_segmentor(sentence):""" 分割字符串 """segmentor = Segmentor()cws_model_path = '..\\ltp_data\\cws.model'lexicon_path = '..\\ltp_data\\lexicon.txt'segmentor.load_with_lexicon(cws_model_path, lexicon_path)segmentor.load(cws_model_path)words = segmentor.segment(sentence)segmentor.release()return list(words)def extract_data():parser = Parser()  # 初始化模型postagger = Postagger() # 词性标注labeller = SementicRoleLabeller() # 语义校色标注recognizer = NamedEntityRecognizer() # 命名实体识别model_path = '..\\ltp_data\\pos.model'lexicon_path = '..\\ltp_data\\posLexicon.txt'postagger.load_with_lexicon(model_path, lexicon_path) # 加载自定义词性表labeller.load('..\\ltp_data\\pisrl_win.model') # 加载模型recognizer.load('..\\ltp_data\\ner.model')postagger.load('..\\ltp_data\\pos.model')parser.load('..\\ltp_data\\parser.model')content = "#•江都建设集团南京分公司南钢项目部安全生产规章制度不落实,作业现场安全管理缺失,安全操作规程不认真执行"text = re.sub("[#•]", "", content) # 对语句进行预处理words = sc_fun.ltp_segmentor(text) # 分词postags = postagger.postag(words)arcs = parser.parse(words, postags)netags = recognizer.recognize(words, postags) # 命名实体识别print(list(netags))rely_id = [arc.head for arc in arcs]relation = [arc.relation for arc in arcs] # 关系heads = ['Root' if id == 0 else words[id - 1] for id in rely_id]roles = labeller.label(words, postags, arcs)for i in range(len(words)):print(i, relation[i], (words[i], heads[i]), postags[i])for role in roles:print([role.index, "".join(["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments])])labeller.release()  # 释放模型parser.release()postagger.release()recognizer.release()
if __name__ == '__main__':extract_data()

结果:

['B-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'I-Ni', 'E-Ni', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O','O', 'O', 'O', 'O', 'O', 'O']
0 ATT ('江都', '集团') ns
1 ATT ('建设', '集团') v
[11, 'A1:(0,9)ADV:(10,10)']
[24, 'A1:(19,21)ADV:(22,23)']

分开封装一样的:

def ltp_segmentor(sentence):""" 分割字符串 """segmentor = Segmentor()segmentor.load('..\\ltp_data\\cws.model')words = segmentor.segment(sentence)segmentor.release()return list(words)def ltp_parser(words, postags):parser = Parser()parser.load('..\\ltp_data\\parser.model')arcs = parser.parse(words, postags)parser.release()return list(arcs)def ltp_postags(words):postagger = Postagger()model_path = '..\\ltp_data\\pos.model'lexicon_path = '..\\ltp_data\\posLexicon.txt'postagger.load_with_lexicon(model_path, lexicon_path)  # 加载自定义词性表postagger.load(model_path)postags = postagger.postag(words)postagger.release()return list(postags)

pyltp python具体使用相关推荐

  1. [python][转载]pyltp的使用教程

    1 LTP 简介 LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词.词性标注.句法分析等等工作.从应用角度来看,LTP为用户提供了下列组件: 针对单一自然语言处理任务, ...

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

    1 什么是pyltp 语言技术平台(LTP) 是由 哈工大社会计算与信息检索研究中心 11 年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词.词性标注.命名实体识别.依存句法分析.语义角 ...

  3. 安装pyltp模块详细教程(windows下python安装)

    ** 一.pyltp安装会出现各种坑,坑的我就不说了,下面直接讲正确的方法.(一定是windows,python为3.5或3.6,其他版本的方法我也不太清楚,抱歉呢) ** 二.使用wheel安装(其 ...

  4. python语音标注平台_Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札...

    1 什么是pyltp 语言技术平台(LTP) 是由 哈工大社会计算与信息检索研究中心 11 年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词.词性标注.命名实体识别.依存句法分析.语义角 ...

  5. 使用 LTP的Python包——pyltp 进行中文分词

    哈工大语言技术平台LTP(Language Technology Platform)提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词.词性标注.句法分析等等工作.LTP本身是 ...

  6. 从0到1 | 手把手教你如何使用哈工大NLP工具——PyLTP!

    作者 | 杨秀璋 来源 | CSDN 博客(CSDN id:Eastmount) (本文经作者授权,此系列文章整理后微信平台首发于AI科技大本营) [导语]此文是作者基于 Python 构建知识图谱的 ...

  7. 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)

    pyltp的简介   语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...

  8. 哈工大pyltp包安装过程

    真的辛酸.先说环境win10 x64, python2.7 下载pyltp包 anaconda和pip都没有依赖,需要自己手动下载.配置. 下载pyltp并解压到任意位置 下载页面:https://g ...

  9. python 词频统计,分词笔记

    Python的中文分词库有很多,常见的有: jieba(结巴分词) THULAC(清华大学自然语言处理与社会人文计算实验室) pkuseg(北京大学语言计算与机器学习研究组) SnowNLP pynl ...

  10. python语法问题

    1:Python处理API响应异常:ValueError: check_hostname requires server_hostname 有人说是网络连接的问题,我自己的还没有处理好 https:/ ...

最新文章

  1. Oracle CDC (Change Data Capture)更新数据捕获——概述
  2. 《C#精彩实例教程》小组阅读05 -- C#变量与常量
  3. 斩草除根-修复被剪断的鼠标引线
  4. 《推荐系统实践》要点思维导图
  5. sql server 2008学习1–系统数据库
  6. 用html5做一个简单网页_用新款ws2812灯带做一个简单的窗花
  7. linux-Apache权限限制IP端口域名+DNS域名解析
  8. php操作elasticsearch
  9. Oracle null 处理
  10. 数据库sql语句杂谈
  11. 阿里云开发笔记01——CuteFTP使用方法
  12. GO语言-panic和recover
  13. python统计三国演义中人物出现的频次
  14. TMS运输管理系统,对车辆管理、物流运输、效率提升有哪些优势?
  15. python 估值模型_【中金固收·固收+】隐藏价值的角落:限售股AAP估值及Python实现方法(上)...
  16. mysql 灾备方案_mysql数据库灾备方案
  17. 估计π的第一种方法:蒲丰(buffon)投针
  18. Python对数据进行量纲化处理
  19. 第一范式 第二范式 第三范式 BC范式
  20. DOS命令行下输入mount命令

热门文章

  1. 2016河南省第九届ACM程序设计竞赛[正式赛四]
  2. 宋体和英文字号与matlab中对照,CSS字体中英文名称对照表:如宋体对应SimSun
  3. 架构师于小波:魅族实时消息推送架构
  4. 用计算机怎么转换进制,计算机各种进制转换方法
  5. 最优算法-LQR-离散时间有限边界
  6. iptables如何删除一条规则
  7. JavaWeb学习总结详解
  8. wifi信号增强android,WiFi信号增强放大器
  9. [开源之美] nanomsg -- 进程间通讯
  10. FZU 2037 Maximum Value Problem【递推】