使用哈工大LTP进行文本命名实体识别并保存到txt

自然语言处理--哈工大LTP的基本使用方法 导入 from pyltp import SentenceSplitter,Segmentor, Postagger, Parser,NamedEntityRecognizer, SementicRoleLabeller SentenceSplitter——————————分句 Segmentor ————————————分词(cws.model) Postagger—————————————词性标注(pos.model) Parser——————————————依存句法分析(parser.model) 阅读详情

需求说明:
(1)将计算机本地文档集中的文本进行分词、词性标注,最后进行命名实体识别。
(2)将(1)中处理结果保存到本地txt文件中。

技术选择:
本需求的实现使用了哈工大的pyltp,如果你对ltp还不太了解,请点击这里或者去哈工大语言云官网了解相关内容。

完整代码展示:

# -*- coding: utf-8 -*-
import os
import jieba

LTP_DATA_DIR = 'D:\pyprojects\LTP\ltp_data'  # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')  # 分词模型路径,模型名称为`cws.model`
pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model')  # 词性标注模型路径,模型名称为`pos.model`
ner_model_path = os.path.join(LTP_DATA_DIR, 'ner.model')  # 命名实体识别模型路径,模型名称为`ner.model`
par_model_path = os.path.join(LTP_DATA_DIR, 'parser.model')  # 依存句法分析模型路径,模型名称为`parser.model`
srl_model_path = os.path.join(LTP_DATA_DIR, 'srl')  # 语义角色标注模型目录路径,模型目录为`srl`。注意该模型路径是一个目录,而不是一个文件。

from pyltp import SentenceSplitter
from pyltp import Segmentor
from pyltp import Postagger
from pyltp import NamedEntityRecognizer
from pyltp import Parser
from pyltp import SementicRoleLabeller

#创建停用词表
def stopwordslist(filepath):
    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
    return stopwords


# 分句,也就是将一片文本分割为独立的句子
def sentence_splitter(sentence):
    sents = SentenceSplitter.split(sentence)  # 分句
    print('\n'.join(sents))


# 分词
def segmentor(sentence):
    segmentor = Segmentor()  # 初始化实例
    segmentor.load(cws_model_path)  # 加载模型
    #segmentor.load_with_lexicon('cws_model_path', 'D:\pyprojects\LTP\ltp_data\dict.txt') #加载模型   使用用户自定义字典的高级分词
    words = segmentor.segment(sentence)  # 分词
    # 默认可以这样输出
   # print('/'.join(words))
    # 可以转换成List 输出
    words_list = list(words)
    segmentor.release()  # 释放模型
    return words_list


# 词性标注
def posttagger(words):
    postagger = Postagger()  # 初始化实例
    postagger.load(pos_model_path)  # 加载模型
    postags = postagger.postag(words)  # 词性标注
    #for word, tag in zip(words, postags):
     #   print(word + '/' + tag)
    postagger.release()  # 释放模型
    return postags


# 命名实体识别
def ner(words, postags):
    recognizer = NamedEntityRecognizer()  # 初始化实例
    recognizer.load(ner_model_path)  # 加载模型
    netags = recognizer.recognize(words, postags)  # 命名实体识别
    #for word, ntag in zip(words, netags):
     #   print(word + '/' + ntag)
    recognizer.release()  # 释放模型
    return netags

stopwords = stopwordslist('D:/2181729/stop_words.txt')
final = ''
f1=open('D:/2181729/nerfcdata/30.txt','w', encoding='UTF-8')
with open('D:/2181729/data/30.txt', 'r', encoding='UTF-8') as f:

       for line in f:
           segs = jieba.cut(line, cut_all=False)
           for seg in segs:
              if seg not in stopwords:
                 final += seg

words = segmentor(final)
postags = posttagger(words)
netags = ner(words,postags)

tags = []
dict = []

for word, ntag in zip(words, netags):
    if(ntag != 'O'):#过滤非命名实体
        tags.append(ntag)
        if (ntag not in dict):
             dict.append(ntag)
       # print(word + '/' + ntag)
        f1.write(word + ':' + ntag + '\r\n')


for tag in dict:
    num = tags.count(tag)
    print(tag + ":"+str(num))
    f1.write(tag + ":"+str(num) + '\r\n')
f1.close()

效果展示:
在这里插入图片描述

参考:
https://blog.youkuaiyun.com/informationscience/article/details/76850652

中文命名实体识别 中文命名实体识别1. 语言技术平台(LTP)2. Pyhanlp3. BosonNLP 1. 语言技术平台(LTP) LTP官方地址:语言技术平台( Language Technology Plantform) 要想用LTP实现中文命名实体识别非常简单,首选,只需要一行指令便可自动安装部署LTP: pip install ltp 接着,需要加载模型: from ltp import LTltp = LTP() 这时,就可以愉快的使用命名实体识别了: from ltp import LTP ltp = L 阅读详情

相关推荐

在python中使用哈工大LTP进行自然语言处理(安装和结果分析)

目录一、LTP介绍二、安装1. 安装pynlp2. 下载模型文件三、python下的功能实现1.代码参考2.结果说明 一、LTP介绍 语言技术平台(LTP) 提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、 高效、精准的自然语言处理技术。 语言技术平台(LTP)使用文档 pyltp文档 二、安装 环境:python3.6 win10 官方文档: http://lt...

weixin_44243926的博客 1万+

文本挖掘中常用的停用词表

包括哈工大停用词表hit_stopwords.txt,四川大学机器学习智能实验室停用词库scu_stopwords.txt,百度词库baidu_stopwords.txt,中文停用词表cn_stopwords.txt,以及四表合一去重后的停用词表stopwords.txt

LTP 4.0 中文命名实体识别实战:3步构建《红楼梦》人物知识图谱

本文详细介绍了如何使用LTP 4.0进行中文命名实体识别,通过3个步骤从《红楼梦》文本中抽取人物、地点和机构实体,并构建可视化的知识图谱。涵盖环境准备、实体识别和Neo4j图谱构建全流程,适合NLP初学者快速上手。

weixin_30873847的博客 342

命名实体识别学习笔记——使用Ltp

        命名实体识别(Named Entity Recognition,简称NER)用于识别文本中具有特定意义的实体。需要识别的实体可以分为三大类(实体类、时间类和数字类)和七小类(人名、机构名、地名、时间、日期、货币和百分比)。         本文介绍使用Ltp进行命名实体识别。 1、安装Ltp Python组件 (1)pyltp安装: pip install pyltp (...

xuewenstudy的博客 3990

3 款主流中文分词工具对比:Jieba vs THULAC vs LTP 在 6 类歧义句上的表现

本文深度评测了Jieba、THULAC和LTP三款主流中文分词工具在6类歧义句上的表现,涵盖组合型、交集型和真歧义等复杂场景。通过精确率、召回率和F1值等指标对比,揭示各工具在自然语言处理中的优劣势,并提供工程实践中的选型建议和性能优化技巧,帮助开发者根据内存、精度和速度需求选择合适的分词方案。

weixin_30731305的博客 357

NLP落地实战:从文本清洗到分类交付的完整链路

自然语言处理(NLP)本质是将非结构化文本转化为机器可计算的结构化特征。其核心原理在于分词、词性标注、停用词过滤与TF-IDF等特征工程环节,而非直接套用BERT等预训练模型。技术价值体现在可控性、可解释性与业务适配性——尤其在中小规模、高噪声、强领域约束的真实场景中,扎实的文本预处理比模型复杂度更能决定项目成败。典型应用场景包括客服对话分类、销售合同分析、电商评论情感识别等需快速交付的工业级任务。本文聚焦中文文本清洗、LTP分词优化、POS驱动的业务关键词提取及TF-IDF特征构建等‘能干活’的关键实操路

xjwolaile的博客 396

命名实体的识别

  大家好,今天跟大家介绍一下基于pyltp做中文文本中命名实体的识别。基于词典来介绍一下整个流程,首先跟大家介绍一下理论知识以方便大家理解,最后附上完整代码供大家参考学习。 什么是命名实体的识别 基于词典与统计的算法 一、认识命名实体识别过程 1、什么是命名实体的识别   命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是自然语言处理中的一项...

sinat_40631989的博客 2182

中文NLP三步实操:分词、词性标注、命名实体识别

自然语言处理(NLP)是让机器高效处理文本的基础技术,其核心原理并非语义理解,而是基于统计规律的模式匹配。在中文场景中,由于缺乏空格分隔、网络用语泛滥、标点承载语义等特性,通用NLP流程必须适配本土化挑战。关键技术价值体现在可解释、低门槛、高业务贴合度——尤其适合客服分析、用户评论挖掘、合同信息抽取等轻量级任务。典型应用场景包括电商差评归因、微信对话结构化解析、订单关键要素提取等。本文聚焦NLP最底层的三大基础动作:分词、词性标注、命名实体识别(NER),通过零代码表格操作与HanLP实战,帮助非技术背景从

weixin_30471561的博客 415

哈工大语言云(LTP)本地安装使用及Python调用

备注:本文实验环境为64位win7系统,32位python2.7.11 哈工大LTP官方主页:http://ltp.readthedocs.org/zh_CN/latest/index.html 1.LTP下载 (1)LTP项目文件ltp-3.3.1-win-x86.zip (2)LTP模型文件3.3.1(2016年4月13日前) 下载地址参考:htt

huludan的专栏 5041

基于LTP与Neo4j构建《红楼梦》人物知识图谱实践

知识图谱作为结构化表示实体与关系的关键技术,在自然语言处理与数据可视化领域应用广泛。其核心包括实体识别、关系抽取与图数据库存储。中文场景下,哈工大LTP工具可完成分词、命名实体识别及依存分析,为抽取人物关系提供句法支撑;Neo4j图数据库则能高效存储和查询复杂的关系网络。通过定义清晰的本体关系、设计别名归一化规则,并结合规则模板抽取三元组,即可构建出可演化的领域知识图谱。此类方法不仅适用于文学人物关系分析,也可迁移至工业知识图谱、学科知识体系等场景。本文以《红楼梦》为例,详细拆解从LTP处理到Neo4j入库

weixin_31766003的博客 271

知识图谱与NLP实战:用LTP自动构建《红楼梦》人物关系网络

知识图谱作为一种结构化表示信息的技术,能够将复杂文本中的人物、事件与关系转化为可查询的节点和边,广泛应用于智能问答、推荐系统与数字人文研究。其构建过程通常涉及命名实体识别与关系抽取两个核心环节:前者从非结构化文本中定位人名、地名等实体,后者借助依存句法或触发词模式挖掘实体间的语义关联。在实际工程中,自然语言处理工具如哈工大LTP常被用于完成分词、词性标注和依存分析,结合图数据库Neo4j实现高效存储与可视化,从而支持诸如“人物关系查询”等交互式应用。这一技术路径不仅可用于文学作品的人物谱系还原,也可迁移到历

weixin_29053577的博客 282

THULAC vs 结巴分词 vs LTP:三大中文分词工具性能深度对比终极指南 [特殊字符]

在中文自然语言处理领域,**中文分词工具**的选择直接影响着项目的性能和效果。今天我们将深入对比三大主流中文分词工具:**THULAC**、结巴分词和LTP,为您提供全面的性能评测和使用指南。无论您是NLP初学者还是经验丰富的开发者,这篇文章将帮助您快速了解每个工具的优势和适用场景。 ## 📊 三大中文分词工具概览 ### THULAC(清华大学中文词法分析工具) **THULAC**(TH

gitblog_00815的博客 1043

农业知识图谱构建:neo4j与LTP结合实现三元组自动抽取

知识图谱以图结构组织实体与关系,是搜索引擎、智能问答与推荐系统的底层支撑,其构建难点在于从非结构化文本中自动抽取三元组。自然语言处理技术在此环节发挥关键作用,LTP作为成熟的中文语言处理工具,提供分句、分词、命名实体识别与依存句法分析能力,可以从百科语料中识别主谓、动宾等语义关系;而Neo4j作为高性能图数据库,能够将抽取出的三元组高效存储并可视化。在农业领域,通过爬虫获取百度百科的结构化字段与正文文本,再分别映射为结构化三元组和经LTP流水线抽取的NLP三元组,即可低成本构建农业知识图谱。整个链路覆盖数据

weixin_36213081的博客 243

SiameseAOE模型数据预处理管道构建:从原始文本到模型输入的完整流程

本文介绍了在星图GPU平台上自动化部署SiameseAOE通用属性观点抽取-中文-base镜像的完整流程。该镜像主要用于构建从原始文本到模型输入的数据预处理管道,其核心应用场景是自动化处理用户评论、新闻等中文文本,快速抽取其中的关键属性和观点,为后续的文本相似度计算或情感分析提供高质量的输入数据。

weixin_30248619的博客 316

Python 3.9下pyltp编译指南:解决历史依赖与C扩展兼容性问题

Python C扩展(C Extension)是连接高性能C/C++代码与Python生态的关键技术,它通过Python/C API实现二进制交互,从而在自然语言处理(NLP)等计算密集型任务中提供原生性能。其原理在于将核心算法用C++实现并编译为动态链接库,再由Python通过特定模块调用。这项技术的核心价值在于平衡了开发效率与执行效能,尤其在处理像中文分词、命名实体识别这类需要复杂语言模型的任务时至关重要。然而,当遇到像pyltp这样基于LTP平台、但已停止维护的历史库时,直接安装常因ABI不兼容或缺失

weixin_33979203的博客 448

Python 3.6-3.9环境Pyltp安装指南:解决历史遗留NLP工具兼容性问题

在自然语言处理(NLP)领域,预训练模型和工具包的部署常面临环境兼容性挑战。其核心原理在于,许多高性能NLP库依赖C/C++编写的底层扩展,这些扩展需要与特定版本的Python解释器和系统环境精确匹配才能编译运行。为了解决这一痛点,预编译的.whl文件应运而生,它封装了二进制扩展,使得安装过程从复杂的本地编译简化为直接文件部署,极大提升了工程实践的效率与成功率。这一技术对于维护和运行那些模型质量可靠但已停止官方维护的经典工具(如中文NLP领域的LTP平台及其Python接口pyltp)具有关键价值。特别是在

weixin_34314962的博客 368
上一篇: 结巴分词--关键词抽取
下一篇: 结巴分词1--结巴分词系统介绍
broccoli2
博客等级 码龄10年 404粉丝 195原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值