NLTK(7)从文本提取信息(命名实体识别)

2024-04-14 23:32

本文主要是介绍NLTK(7)从文本提取信息(命名实体识别),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

理论参考 https://blog.csdn.net/kunpen8944/article/details/83149567
https://blog.csdn.net/LuoXianXion/article/details/88823009
其他
https://www.cnblogs.com/AsuraDong/p/7050859.html#树状图
https://www.cnblogs.com/AsuraDong/p/7050859.html#树状图

信息提取(information extraction)

信息抽取(IE)系统

找到并理解文本中的有限的相关性
从很多的文档之中收集信息
产生一个相关信息的结构化的表征

目的:

进行信息的组织使之对人有用
以相对精确的语义形式存放信息方便计算机算法后续的查找
信息抽取(IE)系统一般会抽取清晰的实际的信息(谁对谁做了什么在什么时候)

举例

机构名	位置名
Omnicom	纽约
DDB Needham	纽约
Kaplan Thaler Group	纽约
BBDO South	亚特兰大
Georgia-Pacific	亚特兰大
在亚特兰大运营的公司

问题:“哪些组织在亚特兰大经营?”

机构名
BBDO South
Georgia-Pacific

如果我们尝试从文本中获得相似的信息,事情就比较麻烦了。
文本(1):
The fourth Wells account moving to another agency is the packaged paper-products division of Georgia-Pacific Corp., which arrived at Wells only last fall. Like Hertz and the History Channel, it is also leaving for an Omnicom-owned agency, the BBDO South unit of BBDO Worldwide. BBDO South in Atlanta, which handles corporate advertising for Georgia-Pacific, will assume additional duties for brands like Angel Soft toilet tissue and Sparkle paper towels, said Ken Haldin, a spokesman for Georgia-Pacific in Atlanta.

如果你通读了全文,你将收集到回答例子问题所需的信息。但我们如何能让一台机器理解文本来返回答案呢?这显然是一个困难得多的任务。

这个问题的解决方法之一是对意义建立一个非常通用的表示。
另一个办法是事先确定我们将只查找文本中非常具体的各种信息,如组织和地点之间的关系。不是试图用文本(1)那样的文字直接回答这个问题,我们首先将自然语言句子的非结构化数据转换成表格这样的结构化数据。然后,利用强大的查询工具,如SQL。这种从文本获取意义的方法被称为信息提取

应用

信息提取有许多应用,包括商业智能、简历收获、媒体分析、情感检测、专利检索、电子邮件扫描。当前研究的一个特别重要的领域是提取出电子科学文献的结构化数据,特别是在生物学和医学领域。

命名实体识别(named entity recognition)

这是在信息抽取中十分重要的一个分支 :找到并识别文档中的名字
主要用途:

  • 命名实体的索引(index)和链接(link off)
  • 分析情感指向的公司或者产品
  • 很多信息抽取的关系都是和命名实体相关
  • 在问题回答(question answer)领域,答案往往是命名实体。

命名实体识别的评估

正确识别一个命名实体,需要包含两个方面,
一方面需要找到表示命名实体的词组,
另一方面对命名实体正确归类,

存在问题

对命名实体识别(NER)或者信息抽取(IE)而言,用之前介绍的recall和precision来进行评估会存在一个问题:没有办法定义边界错误(boundary error)。
举例子而言:
对于句子:First Bank of Chicago announced earnings…而言,机器识别Bank of Chicago作为实体,但实际First Bank of Chicago才是命名实体。对于这样的错误,我们在归类的时候即可以归到FN也可以归到FP。所以,基于这样的度量标准,实际上边界错误比无法识别(只会归类到FN)更严重。
其他度量,比如MUC得分会好一些

信息提取

首先,使用句子分割器将该文档的原始文本分割成,使用分词器将每个句子进一步细分为
接下来,对每个句子进行词性标注,在命名实体识别中将证明这是非常有益的。
下一步,我们寻找每个句子中提到的有潜在价值的实体
最后,使用关系识别搜索文本中不同实体间的可能关系。
在这里插入图片描述
信息提取系统的简单的流水线结构。该系统以一个文档的原始文本作为其输入,生成(entity, relation, entity)元组的一个列表作为输出。例如,假设一个文档表明Georgia-Pacific公司位于Atlanta,它可能产生元组([ORG: ‘Georgia-Pacific’] ‘in’ [LOC: ‘Atlanta’])。

词块划分

这篇关于NLTK(7)从文本提取信息(命名实体识别)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904327

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的