信息抽取命名实体识别和关系抽取)

news2024/12/24 12:54:20

在这里插入图片描述
信息抽取的定义为:从自然语言文本中抽取指定类型的实体,关系、事件等事实信息。并形成结构化数据输出的文本处理技术。
信息抽取是从文本数据中抽取特定信息的一种技术,文本数据由医学具体的单位构成,例如,句子、段落、篇章。本文信息正式由一些小的具体的单位构成的,例如字、词、词组、句子、段落或是这些具体的单位的组合
抽取文本数据的名词短语、人名、地名等都是文本信息抽取,当然,文本信息抽取技术所抽取的信息可以是各种类型的信息
本文介绍从文本中提取的有限种类语义内容的技术,此信息提取过程(IE)将嵌入文本中的非结构化信息转换为结构化数据。例如用于填充关系数据库以支持进一步处理。
命名实体识别(NER): 找到文本中提到的每个命名实体,并标记其类型。构成命名实体类型的是特定于任务的人员,地点和组织是常见的,一旦提取了文本中的所有命名实体**,就可以将其链接到与实际实体相对应的集合中。
关系抽取:发现和分类文本实体之间的语义关系,这些关系通常
为二元关系、如子女关系、就业关系、部分-整体关系和**地理空间关系。

命名实体识别NER

信息提取的第一步是检测文本中的实体。一个命名实体,粗略地说,是任何可以用一个专有名称引用的东西:一个人、一个位置、一个组织
这个术语通常被扩展为包含本身不是实体的东西,包括日期、时间和其他类型的时态表达式。甚至像价格这样的数字表达式,下面是前面介绍的示例文本,其中标有命名实体:
在这里插入图片描述
文本包含13个提到的命名实体,包括5个组织、4个地点、2次、1个人和1个提到钱的实体。除了用于提取事件和参与者之间的关系之外,命名实体对于许多其他语言处理任务也很有用。
在情感分析中,我们可能想知道消费者对特定实体的情绪,实体是回答问题或将文本链接到结构化知识资源,如Wikipedia)中的信息的有用的第一阶段
下图显示了典型的通用命名实体类型,许多应用程序还需呀使用特定的实体类型,如蛋白质、基因、商业产品或艺术品。
在这里插入图片描述
命名实体指的是查找构成专有名称的文本范围。然后对实体类型进行分类。
识别困难的原因之一是分割的模糊性。我们需要决定什么是实体,什么不是,界限在哪里,另一个困难是类型模糊
J F K JFK JFK可以指一个人,纽约的机场,美国各地的学校、桥梁和街道。下图给出了这些交叉类型混淆的一些例子。
在这里插入图片描述

NER作为序列标记

命名实体识别的标准算法是一个逐词的序列标记任务。其中指定的标记同时捕获边界和类型。
序列分类器(如MEMM/CRF或bi-LSTM)被训练为在文本中使用标记来标记标记,这些标记表示特定类型的命名实体的存在。考虑下面来自运行示例的简化摘录
在这里插入图片描述
看一下最常用的两种 s e q u e n c e l a b e l i n g sequence labeling sequencelabeling的编码方式,IO encoding简单的为每个 token 标注,如果不是 NE 就标为 O(other),所以一共需要 C+1 个类别(label)。
而IOB encoding需要 2C+1 个类别(label),因为它标了 NE boundary,B 代表 begining,NE 开始的位置,I 代表 continue,承接上一个 NE**,如果连续出现两个 B,自然就表示上一个 B 已经结束**了。

在这里插入图片描述

一个基于特征的NER算法

在这里插入图片描述
第一种方法提取特征并训练,词性标记类型的MEMM或CRF序列模型。而这种思路在NER中更为普遍和有效。
NER任务中,最常见的特征包括形态、局部 l o c a l local local词汇和句法信息。形态特征有如词形、大小写、前后缀等。局部词汇特征有如前后提示词、窗口词、连接词等
最近,通过未登录词和非常规词的识别来提高NER的效果,也得到了尝试**。句法特征有词性、浅层句法结构等。
由于汉语的特殊性,除
了词汇层面的特征外,汉字层面的特征也被充分地用来辅助提高NER的效果**,如提示单字、常用尾字等。同时,由于汉语分词和NER的密切联系,有研究发现分词结果可以有效地提高汉语NER的效果
为了提高识别的效果,各种全局(global)信息也作为特征被广泛地应用在NER中,尤其是远距离依存和上下文同指等。与此同时,各种外部知识如未标注文本旦、人名词典、地名词典等也被普遍使用来提高NER模型的性能。
有研究表明**,在模型不变的情况下,全局信息和外部知识确实可以显著地提高识别的效果。值得注意的是,维基百科知识是最常见且有效的外部知识,而在汉语NER中,知网作为一个汉语特有的词汇语义知识库**,也被充分地应用在NER研究中。
例如,命名实体令牌L 'Occitane将生成以下非零值特征值::
在这里插入图片描述
地名表是地名的列表,通常为数百万个地点提供详细的地理和政治信息
一种相关的资源是姓名列表,美国人口普查局还提供了大量的姓氏和名字列表。这些名字都来自于其在美国进行的十年一次人口普查类似的公司、商业产品以及各种生物和矿物的清单也可从各种来源获得。
地名表和名称特性通常作为每个名称列表的二进制特性实现。不幸的是,这样的列表很难创建和维护,而且它们的有用性差别很大。虽然地名表可能非常有效,但个人和组织的列表并不总是有用的

特征有效性取决于应用程序、类型、媒体和语言

例如,形状特征对于英语新闻专线文本来说至关重要,但对于自动语音识别的抄本,其他未经编辑或非正式来源,或者像汉语这样不适用正字法大小写的语音,形状特征几乎没什么用处。
下图说明了在前面的示例中添加词性标记语法基短语块标记和一些形状信息的结果。给定这样一个训练集,就可以训练像MEMM这样的序列分类器来标记新的句子。图17.7说明了这样一个序列标记器在token Corp.接下来被标记的地方的操作。如果我们假设一个上下文窗口包含前两个和后两个单词,那么分类器可用的特征就是框内区域中显示的特征

在这里插入图片描述
在这里插入图片描述

一种用于NER的神经算法

NER的标准神经算法是基于bi-LSTM。回想一下,在这个模型中,输入单词wi的单词和字符嵌入。这些通过左到右的LSTM和右向左LSTM,其输出被连接(或其他组合)在位置上生成一个单一的输出层。在最简单的方法中,这个层可以直接传递到一个softmax上,它在所有标签上创建一个概率分布,最可能的标记被选择为 t i t_i ti
。对于被命名为标记这种贪婪的解码方法的实体来说,解码是不够的,因为它不允许我们强加相邻标签的强大约束。,标签I-PER必须遵循另一个i / b / b / b。相反,CRF层通常在双lstm输出的顶部使用,Viterbi解码算法被用来解码。图17.8显示了算法的草图:
在这里插入图片描述

基于规则的NER

虽然机器学习(神经或MEMM/CRF)序列模型是学术研究的规范,但NER的商业方法通常基于列表和规则的实用组合,还有少量的监督机器学习
如IBM系统T是一个文本理解结构,在这种结构中,一个用户指定复杂声明标记任务的约束在一个正式的查询语言,包括正则表达式、字典、语义约束,NLP运营商,和表结构,所有这些系统编译成一个高效提取器,一个常见的方法是使重复的基于规则的通过一个文本,允许一个通过影响下的结果
这些阶段通常首先涉及,使用具有极高精确度但召回率较低的规则。后续阶段采用更加容易出错的统计方法,将第一次传递的输出考虑在内。
学术界基本上以纯统计序列模型为主,但工业上处理命名实体的方法还是会更加实际一些,监督学习加上一些规则,最为常用的方法是通过序列,经上一个序列结果作为输入传递到下一个序列中

  • 第一步,用高精准度的规则去标记模棱两可的命名实体。
  • 第二步,寻找之前找到的名字的子串。
  • 第三步,将特定领域的词语列表与之前识别出的命名实体进行对比。
  • 第四步,应用概率序列标注模型将之前的标签作为特征。

关系抽取

关系抽取需要从文本中抽取两个或多个实体之间的语义关系,主要方法有下麦呢几类:

  • 基本模板的方法(hand-written patterns)
    • 基于触发词/字符串
    • 基于依存句法。
  • 监督学习
    • 机器学习
    • 深度学习
  • 半监督/无监督学习
    • Bootstrapping
    • Distant supervision
    • Unsupervised learning from the web
      这种模式可以用图数据库去做。

基于模板的方法

关系提取最早也是最常见的算法是词汇句法模式。考虑下面这句话:
在这里插入图片描述
多数人并不知道什么是凝胶体,但它们很容易推断出它是一种一种下胚层)红藻,不管其是什么,其提出了以下词汇句法模式。:
在这里插入图片描述
但是手写模型虽然有高精准度,可以专门适合于某种模型,但是另一方面来说,基本上它们都是低回归率的,需要花很多时间去做。
监督学习去做关系提取的过程如下:首先特定的关系和命名实体已经选择了,训练集语料手动去标注关系和命名实体,接着就是注释的语料就是用来去训练分类器,去标注没有见过的训练集。
最直接的方法有3步:

  • ,找寻一对命名实体。通常在一句话中。
  • 二元分类器的作用是判断两个命名实体之间是否有关系。
  • 分类器将用来去标记命名实体之间的关系。
    伪代码可以这样描述:
    在这里插入图片描述
    对于命名体识别,在这个过程中最重要的步骤就是去辨认有用的接口特征

基于依存句法

通常可以以动词为起点构建规则,对节点上的词性和边上的依存关系进行限定,流程为:
在这里插入图片描述
在这里插入图片描述

监督和深度学习

深度学习方法有分为两大类:pipeline 和 joint model

  • Pipeline
    • 吧实体识别和关系分类作为两个独立的过程,不会相互影响,关系识别依赖于实体识别的效果。
      • Joint Model
    • 实体识别和关系分类的过程共同优化
      深度学习用到的特征通常育:
  • Position embeddings
  • Word embeddings
  • Knowledge embeddings
    模型通常有$ CNN/RNN + attention$,损失函数 r a n k i n g l o s s ranking loss rankingloss 要优于交叉熵。

CR-CNN

在这里插入图片描述

总结

慢慢的会将关系识别入门,并搞懂,争取将那个比赛打通,并建立自己的模型思路和框架思路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb—Vue的简单介绍

1 Vue介绍 概述 Vue是一套构建用户界面的渐进式前端框架。只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合。通过尽可能简单的API来实现响应数据的绑定和组合的视图组件。 数据渲染 数据库 --JDBC–> java程序 --http协议–>…

《MySQL实战45讲》——学习笔记23 “binlogredolog 的写入机制/组提交机制“

本篇主要介绍数据的可靠性有关的知识,包括binlog的写入机制和redolog的写入机制,通过了解这些机制从而可以在MySQL的IO性能瓶颈上做些优化;前文介绍了MySQL在可靠性、性能相关的概念,包括WAL技术、redolog与binlog、2阶段提交、ch…

阿里云图标使用 (symbol 引用方式)

阿里云图标网址: https://www.iconfont.cn/ 一、登录注册 这个简单,就不说了 二、给当前项目找图库 2.1、添加项目 2.2、寻找图标添加入库 添加入库 2.3、打开入库 的图标添加到指定项目 添加到当前项目 1 2 三、项目使用图标 ( symbol 引用方式) 3.1、下…

《HelloGitHub》第 82 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!简介HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。https://github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Pyth…

Studio One6有哪些新功能及系统配置要求介绍

Studio One6全新版本上线记录、生产、混合、掌握和执行所有操作。从工作室到舞台,Studio One6以易用为核心,是您的创意合作伙伴。当你准备好登上舞台时,Studio One就在那里。只有Studio One从最初的灵感到完整的制作,最终混音到精…

一个数码管显示0-F

数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是发光二极管。七段数码管是一类价格便宜使用简…

VuePress 搭建结合GitHub Pages CI

简介 VuePress 是尤雨溪(vue.js 框架作者)4月12日发布的一个全新的基于 vue 的静态网站生成器,实际上就是一个 vue 的 spa 应用,内置 webpack,可以用来写文档。详见 VuePress中文网 其实类似的建站工具有很多&#x…

Java多线程 - 创建线程池的方法 - ThreadPoolExecutor和Executors

文章目录线程池(重点)线程池介绍实现线程池的方式方式一: 实现类ThreadPoolExecutorThreadPoolExecutor构造器的参数线程池处理Runnable任务线程池处理Callable任务方式二: Executors工具类创建线程池线程池(重点) 线程池介绍 什么是线程池? 线程池就是一个可以复用线程的技…

以太网报文详解

以太网数据帧格式 以太网链路传输的数据包称做以太帧,或者以太网数据帧。在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。 以太帧的工作机制 当以太网软件从网络层接收到数据报之后,需要完成如下操作&am…

模拟实现stack queue/dequeue/适配器/优先级队列/仿函数

⭐前言:学习C的STL,我们不仅仅要要求自己能够熟练地使用上层语法,我们还必须要求自己了解其底层原理,不需要了解得太深入,但一定得知道我们写出的各种代码后面,究竟采用了哪种设计思想,为什么要…

口碑巨制《流浪地球2》,再燃中国科幻电影新高度!

2019年,中国本土科幻电影《流浪地球》以炸裂之势吸引一众目光。上映26天,票房突破45亿,强势开启中国科幻电影的元年。如今时隔4年,《流浪地球2》再度登陆春节档,票房口碑双丰收,上映四天票房破13亿、淘票票…

Android渗透测试12:IDA动态调试so

0x00 前言 上一篇分享了使用 Android studio 和 Jeb 对 Apk 文件直接进行动态调试,本文将分享使用 IDA pro 调试 so 。 调试的 apk 文件还是使用 CTF案例4 的文件,已经上传到知识星球,可自行下载 本文涉及技术: IDA pro 工具使…

论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第4部分)

文章目录🚗 IV. Mothon Planning(运动规划)🟢 D. Graph Search Methods(图搜索算法)🟥 1) Lane Graph(车道图)🟧 2) Geometric Methods(几何方法&…

AtCoder Beginner Contest 287 A-G 赛时思路+正解

一把给我加到1219了,青大小蒟蒻表示很开心。 A - Majority 题意 问你"For""For""For"字符串数量是否比"Against""Against""Against"数量多。 思路 mapmapmap暴力即可。 A题代码 B - Postal Card 题意…

电脑技巧:教你关闭Win11内存压缩,解决电脑卡顿的问题

很多朋友都注意到,Win11默认开启了内存压缩功能。内存压缩顾名思义,可以压缩内存中的数据,让内存占用更少,同时减少Swap频次,带来更高的I/O效率。 但与此同时,压缩数据需要耗费CPU资源,一些朋友…

Dr4g0n-b4ll靶机总结

Dr4g0n-b4ll靶机渗透测试总结 靶机下载地址: https://download.vulnhub.com/dr4g0nb4ll/Dr4g0n-b4ll.zip 打开靶机,使用nmap扫描靶机的ip和所有开放的端口 可以看到靶机开放了80端口和22端口 根据80端口打开网站 信息收集,目录爆破 在robots.txt下发现一串base64编码 eW91IG…

编写循环(RH294)

循环这东西你早就懂的不是么就像python里的for一样在ansible中 使用loop关键字来实现迭代简单循环简单循环中一般使用loop关键字来开始循环使用循环变量item来存储每个迭代过程中使用的值举个例子 栗子啊首先让我们拿出两个任务片段- name: Postfix is runningservice:name: po…

索引15连问

前言 大家好,我是田螺。 金三银四很快就要来啦,准备了索引的15连问,相信大家看完肯定会有帮助的。 公众号:捡田螺的小男孩 1. 索引是什么? 索引是一种能提高数据库查询效率的数据结构。它可以比作一本字典的目录&am…

从C语言的使用转换到C++(下篇)——刷题、竞赛篇

目录 一、CSTL的简介 二、STL的使用详解 2、1 STL之动态数组vector的使用 2、2 STL之集合set的使用 2、3 STL之映射map的使用 2、4 STL之栈stack的使用 2、5 STL之队列queue的使用 2、6 STL之unordered_map和unordered_set的使用 三、总结 标题:从C语言的使用转换…

还不会SpringBoot项目模块分层?来这手把手教你

文章目录前言🍊缘由⏲️本文阅读时长🎯主要目标👨‍🎓试用人群🎁快速链接🍩水图正文🥫1.IDEA新建项目🌭2.创建子模块-dependencies(依赖层)🎯重点🍪3.创建子模…