[计算机毕业设计]远程监督的跨语言实体关系抽取

news2025/2/27 13:29:40

前言

    📅大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

本次分享的课题是

🎯远程监督的跨语言实体关系抽取

课题背景与意义

知识就是力量。使人类及机器能够更好地利用知识是提升工作效率及实现人工智能的关键所在,也催生了包括知识表示、知识推理在内的一系列研究。作为一切对知识的利用的基础,我们首先要获取知识,即知识抽取。

课题实现技术思路

与我们一般通过阅读书籍来获取知识一样,知识抽取的主要数据来源是文本(如新闻、小说、维基百科等)。通常来讲,我们可以直接从文本中获取的知识包含两类:实体 (entity) 和关系 (relation) [1],这也对应了两类知识抽取任务:实体识别 (entity recognition) 和关系抽取 (relation extraction)。下表给出了一个从句子中进行知识抽取的示例。在本文中,我们将主要关注「关系抽取」

ID文本实体关系
1北京是中国的首都,具有悠久的历史。北京,中国首都
2比尔盖茨是微软的创始人。比尔盖茨,微软创始人
3合肥位于安徽中部,是安徽省会。合肥,安徽位于,是省会

顾名思义,关系抽取的目的就是从文本数据中抽取出关系。直观来讲,关系必然存在于两个(或多个实体)之间,比如在“合肥位于安徽中部”这一文本中,“位于”是“合肥”和“安徽”之间的关系,而撇开实体或者单看某单一实体时不会有关系这一概念的出现。从上表第三个例子又可以看出,”合肥“和”安徽“之间同时具有”位于“和”省会“两个关系,即一个文本中的实体对之间事实上可以存在多个不同的关系。因此,在不考虑发现未知的新关系时,我们可以将关系抽取定义成一个「给定实体对」情况下的「多标签分类」 (multi-label classification) 任务,其中的标签即为实体对之间的关系。

关系抽取的难点

从上一节对关系抽取任务的定义可以看出,要训练一个关系抽取模型,数据中应同时包含对实体对和关系的标注。实体的标注对应了实体识别任务,目前可以通过较为成熟的命名实体识别 (NER) 等技术来进行高质量自动标注。但关系的标注通常较为困难,一些句子中甚至不会显式的出现定义好的关系的相近描述。如“合肥是安徽的省会”一句中事实上是蕴含了“位于”这一关系,但句子中并没有显式地出现“位于”的相关描述,我们需要通过一些人类的常识进行推断。因此,在构建精确标注的关系抽取数据集时,大量人工标注通常是必不可少的,这就导致数据集的构建成本非常高昂。

此外,如 Mintz 等人指出,在特定领域的语料上进行关系标注而训练得到的关系抽取模型通常具有偏置 (bias) [2]。比如,发表于 ACL2020 的一篇文章 [3] 中对关系抽取中存在的性别偏见 (Gender Bias) 进行了讨论,感兴趣的读者可以去读一下这篇文章。

在上文中我们提到了仅利用给定语料上精确标注数据集进行关系抽取模型训练存在的两个问题,即「标注成本高」和存在「偏置」。那么该怎样解决这些问题呢?

标注成本高问题

如果我们继续采用监督学习 (supervised learning) 来对模型进行训练,那这个问题就很难回避。尽管我们可以通过少样本学习 (few shot learning) 等技术来充分利用已有的少量精确标注数据,但这些标注本身就更容易产生偏置,这就会导致第二个问题变得更加突出。

因此,要想从根本上缓解标注成本高问题,我们应该考虑放弃监督学习,转而采用弱监督、无监督,或者探索一种新的学习方式。

偏置问题

偏置问题产生的主要原因是在若干个特定领域的标注语料库上进行训练,因此解决偏置问题最简单粗暴的做法自然是选择覆盖面较广的数据。幸运地是,我们并不缺少这种数据:现在网络、书刊等媒体上充斥着大量文本,这些文本获取成本低且覆盖领域广,如果能够有效利用这些数据,那偏置问题将在很大程度上得到缓解。然而,这些数据又转而面临标注成本高问题。

远程监督

为同时解决以上两个问题,Mintz 等人于 2009 年提出一种能够在未经精确标注的文本上进行关系抽取的新学习框架---「远程监督」 (distant supervision) [2]。

何为远程监督

远程监督通过文本之外的、由大量实体对与关系构成的知识库来对文本进行关系标注。其中,“远程”可以理解为利用了文本之外的知识库,而“监督”可以理解为提供了关系标签(即监督信息)。

远程监督的基本假设

远程监督具有如下假设 [2]:

「如果一对实体之间具有某种关系,那么所有包含这对实体的句子都将表达这个关系的含义。」

因此,对于一个已经识别出某实体对的句子,知识库中所有该实体对之间具有的关系都可以被看成句子的标签。

远程监督的基本流程

从上文介绍中可以看出,利用远程监督进行关系抽取模型的学习,我们只需要收集文本,在文本中识别实体对,然后与知识库中进行比对以标注关系即可。需要注意,根据远程监督的基本假设,实体对之间所有能够成立的关系都会成为句子的标签。其基本流程可用下例来表示。

很明显,远程监督方法极大地扩充了关系抽取能够利用的数据量,其标注成本极低,覆盖面可以极广。如果标注的每个句子都是正确的,那么问题就归结于一个相对较为简单的文本分类任务。

但是,细心的读者可能已经发现了,我们假定存在给定实体对的句子就能表示这对实体之间的所有关系,这势必会「引入错误的标注」。如“合肥”和“安徽”之间同时存在“位于”、“是省会”两个关系,那对于“合肥位于安徽”这一句子,我们也会同时给他标注“位于”和“是省会”两个关系。但很明显,这句话并没有表达”是省会“这一关系的含义。如果模型在这错误的标注上进行训练并将这个模式“记住”,即”A位于B“蕴含了A是B的省会,那在遇到”黄山位于安徽“这一句子时,它就会认为”黄山“和”安徽“之间也具有”是省会“这一关系,这明显是不合理的。因此,利用远程监督进行关系抽取的关键在于「如何消除错误标注样本对模型训练的影响」

远程监督关系抽取模型

为了消除错误标注样本的影响,远程监督关系抽取模型主要采用了两种方法:错误标注样本「筛除」法和错误标注样本「转正确标注」法。

在本节中,我们将从上述两种方法出发简单介绍几个经典的模型。受篇幅限制,我们在本文中仅介绍这些模型的核心思路,技术细节请参照原文。因此类模型大都考虑句子级文本,在下文中涉及到数据的描述时我们不再对“句子”和“文本”进行区分。

错误标注样本筛除

PCNN

可以设想,在远程监督框架下,如果我们每次都将一个带标注的句子作为模型训练的样本,那甚至可以说训练过程中所使用的大部分样本都是被错误标注的,这将会极大地影响模型在实际应用中的效果。

因此,Zeng 等 在 PCNN [4] 一文中提出将多实例学习 (multi-instance learning) 应用于远程监督中。其采用 expressed-at-least-once [5] 假设:

「当一对实体之间存在某个关系,那么包含这对实体的句子中至少有一个能够表达这个关系。」

在上述假设下,Zeng 等不再将带标注的句子逐个送入模型进行训练,而是将具有相同实体对和关系标注的所有(也可以是一部分,但直观上来讲越多越好)句子看成一个整体,称为「包 (bag)」,然后将标注的关系作为整个包的标签进行训练。如下图

这样一来,即便存在句子是被错误标注为了某关系的,但包中有这么多句子,我们总能找到一个句子是具有这个关系的吧!再退一步,就算包中所有句子都不表达所标注的关系,那结果也不会变得更坏了。因此从整体上来看,错误标注的几率被降低。

显然,接下来的工作就是如何「从包中选择」出那个被正确标注的样本来进行接下来的训练了。PCNN 一文中采取的方式是挑选使得条件概率 p(包的标签|句子) 最大的那个句子作为正确标注样本,具体实现细节在此不再赘述。

其他模型

PCNN 每次只选取包中一个句子作为正确标注样本的做法存在一个问题:如果包中有多个句子是被正确标注的,那么它们中的大部分都将被舍弃,从而造成了数据的浪费。为此,一系列基于「注意力机制」 (attention mechanism) 的模型被提出 [6,7,8],它们通过对包中的句子进行注意力权重的分配来同时选择多个句子。若包中存在多个被正确标注的句子,那么它们的注意力权重都会较高,从而都会在最终关系预测中发挥作用;此外,被正确标注的置信度(即注意力权重)越高,发挥的作用将越大。这种软选择 (soft selection) 机制有效地缓解了 PCNN 中硬选择 (hard selection) 带来的数据浪费问题,从而可能在相同样本量的情况下达到更高的性能。

错误标注样本转正确标注

无论怎样进行样本的筛选,部分确定被错误标注的样本总是可以被看成在数据集中剔除掉了。那么,这些错误标注的样本真的对远程监督关系抽取不起作用吗?(此句借用了 Shang 等论文 [9] 的题目)至少在一些论文的作者看来,答案是否定的。

比如,Shang 等 [9] 利用无监督聚类的方法来为错误标注的样本重新分配新的标签;而 Wu 等 [10] 认为每个句子的现有标注和其应有标注之间存在映射关系,于是通过学习转移矩阵来模拟该映射,进而将每个句子的标注都转换成其应有标注。

通过将错误标注样本转换为正确标注,此类模型在一定程度上扩充了数据量,也为提升关系抽取的质量提供了新的可能性。但要注意的是,转换后的样本标注可能还是错的,有时仍需要进行进一步的筛选。

🚀海浪学长的作品示例:

大数据算法项目

机器视觉算法项目

 

微信小程序项目

Unity3D游戏项目

最后💯

🏆为帮助大家节省时间,如果对开题选题,或者相关的技术有不理解,不知道毕设如何下手,都可以随时来问学长,我将根据你的具体情况,提供帮助。

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

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

相关文章

代码随想录算法训练营day57 | 647. 回文子串,516.最长回文子序列

647. 回文子串: 暴力解法:两层for循环,遍历区间起始位置和终止位置,然后判断这个区间是不是回文。时间复杂度:O(n^3). Output Limit Exceeded class Solution:#时间复杂度:O(n^3)def countSubstrings(self, s: s…

线程与进程

目录 1.为什么使用线程? 2.什么是线程? 3.进程和线程的工作原理 3.1 进程 3.2 线程 4.线程安全问题 5.总结:线程和进程的区别(面试题) 1.为什么使用线程? 线程与进程都是用来解决并发编程问题的&…

推荐 5 个不错的 React Native UI 库

最近在做一个 React Native 的项目,调研了下 UI 库,下面列举 5 个: React Native Elements React Native Element 是相当闻名的 UI 库,它遵循 Material 设计规范,同时你还可以精细地控制每一个组件。 TL;DR 22.2k G…

朴素贝叶斯——垃圾邮件过滤

文章目录利用朴素贝叶斯进行文档分类1、获取数据集2、切分文本3、构建词表和分类4、构建分类器5、测试算法利用朴素贝叶斯进行垃圾邮件过滤1、导入数据集2、垃圾邮件预测总结利用朴素贝叶斯进行文档分类 1、获取数据集 下载数据集,获取到一些邮件文档。其中ham文件…

Intersoft WebUI Studio for asp.net/asp.mvc

企业 Web 开发的终极工具集。WebUI 建立在坚实的框架之上,为 ASP.NET 提供创新和先进的 40 多个优质 UI 组件,让您轻松及时地构建强大的业务 Web 应用程序。 不仅仅是全面的 UI 工具集。 在提供业界最佳网络体验的愿景的支持下,WebUI 提供了前…

AQS源码解析 8.共享模式_Semaphore信号量

AQS源码解析—共享模式_Semaphore信号量 简介 synchronized 可以起到锁的作用,但某个时间段内,只能有一个线程允许执行。 Semaphore(信号量)用来限制能同时访问共享资源的线程上限,非重入锁。 Semaphore 是什么&am…

377. 组合总和 Ⅳ【完全背包】求排列数:外层for背包,内层for物品;求组合数:外层for物品,内层for背包;

377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums [1,2,3], target 4 输出&#x…

如何利用快解析远程访问家庭智能网关

随着家庭宽带用户的暴增,涌现出了许多连接家居设备和控制中心的产品,如家庭智能网关。家庭智能网关是家居智能化的心脏,通过它实现系统的信息采集、信息输入、信息输出、集中控制、远程控制、联动控制等功能。 ​ 智能家庭网关具备智能家居控…

springcloud24:分布式事务 Seata处理分布式事务总结篇

分布式事务: 分布式事务的问题: 1:1 一个servlet 对应一个 数据库1:N 一个servlet对应多个数据库N:N 多个servlet对应多个数据库 全局事务一致性问题(全局数据一致性的保证) Seata是分布式事务的解决方案 分…

Python标准库之os

1. OS标准库简介 顾名思义,OS表示Operating System,即操作系统。OS标准库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数,具体安装位置可通过导入os模块查看os.__file__属性得到。当需要在Python代码中调用OS相…

WPF-页面-DataGrid数据处理-多线程-Winform嵌入

页面 if(NavigationService.CanGoBack true) NavigationService.GoBack(); NavigationService.Navigate(new Uri("Page.xaml",UriKind.Relative));打印对话框PrintDialog如果要一下启动两个窗口,可以重写App.cs中的OnStartUP方法设置窗口所属关系&#…

【我的渲染技术进阶之旅】你知道数字图像处理的标准图上的女孩子是谁吗?背后的故事你了解吗?为啥这张名为Lenna的图会成为数字图像处理的标准图呢?

文章目录一、先来看一张神图:Lenna图二、图片中的妹子是谁?三、为何要使用Lenna图像?四、谁制作了Lenna图像?五、人红是非多六、福利时间七、岁月神偷文末有福利 一、先来看一张神图:Lenna图 想必所有搞过图像处理的人…

LQ0265 汉诺塔【水题】

题目来源:蓝桥杯2012初赛 Java A组C题 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。 大梵天创造世界的时候做了三…

Map和Set常见操作汇总

作者:~小明学编程 文章专栏:Java数据结构 格言:目之所及皆为回忆,心之所想皆为过往 目录 Map 介绍 什么是Map? Map.Entry,> 常用方法 代码 Map中的注意点总结 Set 常见方法汇总 Set中的注意点总结 Map …

Ngxin--源码分析 缓冲区链表

1.基本数据结构 在处理 TCP/HTTP 请求时会经常创建多个缓冲区来存放数据, Nginx缓冲区块简单地组织一个单向链表struct ngx_chain_s {ngx_buf_t *buf;ngx_chain_t *next; };buf: 缓冲区指针 next 下一个链表节点 注意: ngx_chain_t是…

自定义数据类型:结构体、枚举、联合

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C/C】 目录结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐练习1练习2(结构体嵌套问题&#x…

JSP表达式(EL)

一、介绍: EL(Expression Language)可用来代替JSP中的各类脚本,提高编程的灵活度,简化代码的编写。 二、EL的限制: 不能声明变量,需要使用JSTL或者JavaBean Action设置变量。 三、EL的标准格…

使用D435i+Avia跑Fast-LIVO

前言 最近Fast-LIVO开源了,之前看它的论文的时候发现效果很优秀,于是用实验室现有的设备尝试一下。这里主要记录一下使用不带外触发功能的D435i Avia跑Fast-LIVO的过程,为了适配代码,主要修改了雷达的驱动、相机的launch文件、以…

【Flink】各种窗口的使用(处理时间窗口、事件时间窗口、窗口聚合窗口)

文章目录一 Flink 中的 Window1 Window(1)Window概述(2) Window类型a 滚动窗口(Tumbling Windows)b 滑动窗口(Sliding Windows)c 会话窗口(Session Windows)2…

ATJ2157内存篇【炬芯音频芯片】---sct语法

ATJ2157 sct语法公共知识篇BNF 简介Sct脚本Sct的作用Sct的语法规则1. 加载域描述(Loadd region descriptions)2. 执行域描述3. 输入节的描述ATJ2157平台使用的sctRO的等效写法ScatterAssert()函数LoadLength()函数LoadBase()函数ImageLimit()函数ATJ2157平台什么数据编译出来是…