Self-supervised Contextual Keyword and Keyphrase Retrieval with Self-Labelling

news2024/9/28 5:28:23

文章目录

    • 题目
    • 摘要
    • 方法
    • 数据集
    • 实验

题目

通过自我标记进行自我监督的上下文关键字和关键词短语检索

图片名称

论文地址:https://www.preprints.org/manuscript/201908.0073/v1
项目地址:https://github.com/naister/Keyword-OpenSource-Data

摘要

    在本文中,我们提出了一种通过端到端深度学习方法进行关键字和关键短语检索和提取的新型自监督方法,该方法由上下文自标记语料库进行训练。我们提出的方法是新颖的,它使用上下文和语义特征来提取关键词,并且优于现有技术。通过实验证明该方法在语义和质量上均优于现有流行的关键词提取算法。此外,我们建议使用Transform的上下文特征来自动用关键字和关键短语标记短句语料库以构建基本事实。这个过程避免了人工标记关键字的时间,并且不需要任何先验知识。据我们所知,我们在本文中发布的数据集是 NLP 社区中一个良好的、独立于领域的短句语料库,其中带有标记的关键字和关键短语。

    关键词是能够简洁、准确地描述文档中全部或部分主题的词[5]。关键字是一元语法,而关键短语是 N 元语法,即多个单词,例如“家庭”是一个关键字,“家庭度假”是一个关键字短语。在可理解性方面,人们更喜欢关键短语而不是关键字,因为与关键字相比,关键短语包含上下文更多的信息和含义,而关键字的上下文含义在不同的文本环境中可能会有所不同。例如,“银行”一词可能意味着银行组织,也可能意味着河岸。因此,背景是一个重要的方面。在本文中,我们通过变压器架构利用文本语料库的上下文特征,并使用它们来开发关键字提取模型。

    虽然从长语料库中提取关键词和关键短语很容易,但从较短的句子中提取相同的关键词和关键短语却有点困难。有几种提出的算法可以成功地从长句子语料库中提取关键词,但是,它们对于短句子的性能相对较差。我们将在接下来的章节中讨论一些方法。在本文中,提出的方法 SCKKRS(带有自标签的自监督上下文关键字和关键短语检索)适用于长句和短句语料库,以在语义和上下文上检索关键字和关键短语。我们提出的方法在提取关键词的同时关注上下文特征,因此优于一些现有方法。

方法

    关键词和关键短语提取概述关键词和关键短语检索方法大致可分为以下几种:统计方法、基于图的方法、语言学方法、机器学习方法和混合方法。在本节中,我们将讨论每种方法及其背后的概念。

    统计方法在关键词和关键短语提取的统计方法中,统计特征的频率测量用于基于语言语料库选择前n个候选者。大多数统计方法都是独立于语言的,因此如果有大型语料库,它们可以应用于每种语言。Gerard Salton 和 Christopher Buckley [3] 讨论了适当的术语权重系统对于有效的信息检索系统的重要性。使用维基百科等外部资源来确定候选短语 [4] 的重要性也是另一种可能性。此外,候选关键短语之间的统计关联可以用作语义一致性的可能代理。 M.W.Berry 等人提出的快速自动关键词提取 (RAKE) [11] 是一种流行的针对单个文档的关键词提取算法,可以扩展到多个文档。 Yutaka Matsuo 和 Mitsuru Ishizuka [5] 提出了另一种统计算法,用于从单个文档中提取关键字,而不依赖于语料库和 TF-IDF 测量。在他们提出的算法中,首先确定频繁出现的术语,然后根据一些相似性度量对它们进行聚类。研究任何术语与这些簇共现的概率分布的偏差程度。如果存在偏差,则该术语很可能是关键字。然而,我们应该注意到,大多数统计方法都是基于语料库中单词的频率度量,并且算法的输出很容易出现语料库中存在的噪声单词。

    基于图的方法[18]使用具有共现度量的词袋,并为每个文档提供 N 维向量,其中 N 是语料库中所有可能单词的数量。文档可以由N维向量的余弦相似度矩阵来表示。因此,当我们建立单词和文档之间的图关系时,语料库中的单词成为顶点,而边代表计算出的相似度。最后,可以选择多种中心性算法来提取顶部节点作为关键词和关键短语,例如纯度中心性、特征向量中心性[12]和Pagerank[13]。在 PageRank [13] 中,节点的重要性由代表相关性投票的相邻节点的边决定。通过考虑这些边的权重和相邻节点的排名来递归计算排名分数。同时,textrank [14] 可以应用于文本摘要和关键词提取。 Textrank 使用网络中的声望和 Pagerank 的概念对图的节点进行排名。图中前n个关键词或句子是排名最高的节点。这样,就从句子中提取了关键字列表。

    语言方法利用单词的语言特征来进行关键词检测,因此语言方法是依赖于语言的。语言学方法中使用的流行算法包括 POS 模式、n-gram、NP 块等。语言学方法广泛用于领域相关语料库 [15] [16] [17]。语言学方法流行使用规则来决定关键短语的提取。例如,形容词+名词,例如线性代数,以及名词+名词,例如电脑病毒。

    关键词提取的机器学习方法与其他机器学习方法一样,都是监督学习方法,需要先验知识——训练数据来学习并输出训练好的模型。训练数据是语料库及其对应的预先标记的关键词和关键短语。

    混合方法结合了上述所有方法的优点。使用启发式的方法,例如位置和围绕单词的 HTML 标签属于混合方法 [23]。

数据集

    现有的数据集并不适合我们,原因如下:1)它们是特定领域的,因此不能用于通用数据集; 2)它们通常是长段落,而不是短句子长度的语料库; 3)这些数据集就体积而言不够大; 4)关键词和关键短语的标记是基于频率的方法,而不是上下文相关性,因此不太接近真实情况。为了收集数据,我们使用维基百科作为来源。维基百科 [26] 是研究界流行的文本语料库来源。由于我们需要建立一个与领域无关的语料库,我们从维基百科网页中随机收集句子,以确保收集数据的通用性,这确保了语料库不属于特定领域(例如,体育、政治)。

    数据清理由于维基百科文章的句子包含特殊字符和停用词,因此上一步的数据集包含大量特殊字符和停用词。因此,我们利用传统的正则表达式和现有的工具包来预处理和清理数据。

图片名称

    我们对句子长度段落进行关键字和关键短语标记的新颖方法使用了一种新颖的自我监督标记关键字和关键短语的方法。该方法是根据关键字与句子的上下文相关性来提取关键字。与基于频率的统计方法(严重依赖共现和术语频率来提取关键词)不同,我们提出的方法考虑了单词与句子的上下文相关性。因此,它在提取单词和短语时利用它们的语义和上下文特征。

图片名称

    句子中单词的上下文特征是使用双向Transformers[10]提取的,它完全基于注意力机制,完全不需要递归和卷积。对两个机器翻译任务的实验表明,与序列模型相比,这些模型的质量更高。我们将句子输入 BERT,获得每个单词的上下文特征向量,如图 3 所示。对句子中单词的向量进行平均,以获得其句子嵌入向量。然后我们选择接近句子嵌入向量的单词。这个想法是关键字应该捕获句子的含义,因此应该更接近句子嵌入。嵌入与句子嵌入的相似度是使用余弦相似度度量(公式 1)获得的。
S i m i i = c o s ( w i , W ) Simi_i=cos(w_i,W) Simii=cos(wi,W)是单词𝑖 的词嵌入向量𝑤i与句子嵌入向量之间的余弦相似度。一旦提取了候选关键词,我们就可以通过相邻关键词的规则获得关键词。

图片名称

    无需人工干预的自标记语料库减少了对手动构建标记良好的语料库以进行关键字和关键短语提取的主要依赖。关键词提取模型在自标记阶段之后,将标记的语料库分为训练集和验证集,然后将其输入基于深度学习的关键词提取模型。如图 2 所示,我们将关键词提取问题视为分类问题,即给定句子的上下文特征,句子中的哪些单词可以被分类为关键词的候选者。因此,将问题视为二元分类器。

图片名称

    双向 LSTM [6] [7] 将句子作为序列,以及来自自标签的关键字和关键短语标签。标签是按以下方式进行one-hot编码的: 1 - 单词是关键字、0 - 单词不是关键字。然后将此 <sentence, label> 对传递给模型进行训练。采用dropout等正则化方法来避免高方差和低偏差。应该注意的是,标签是根据上下文特征提取的。我们使用图 4 来说明双向 LSTM 的训练过程。

实验

    在社区中,大多数开源和公共语料库都是特定领域的,除此之外,带有标签的关键词和关键短语的语料库更是凤毛麟角。此外,它们大多数都是句子较长的语料库,有时甚至长达一个段落,因此这些困难使得它们不适合构建深度学习模型。因此,我们将部分句子长度的语料库开源给社区,可在此处获取:https://github.com/naister/Keyword-OpenSource-Data。据我们所知,这是社区中第一个带有标签关键词和关键短语的公共句子长度语料库。

    为了进行性能评估,我们使用著名的 INSPEC 数据集 [29] 和 DUC 数据集 [30] 的语料库。图 5 显示了我们提出的方法中的关键字/关键短语以及基本事实的关键字。我们可以看到我们的方法检索了所有关键词/关键短语,甚至给出了比真实情况更有用的关键词和关键短语。

图片名称

结果如图 6 所示。在图 6 中,g 表示真实关键字,r 表示 RAKE 生成的关键字,t 表示 TextRank 生成的关键字,p 表示建议的自标记关键字。

图片名称

    我们将自标记语料库中的训练数据输入到模型训练中并获得模型性能,即准确率、召回率、F1 分数和支持度如表 1 所示。

图片名称
    表1中,1表示该词被预测为关键词,0表示该词被预测为非关键词。为了证明长段落语料库和句子长度语料库提取的关键字的质量,我们在图 7 和图 8 中显示了示例结果。从主观角度来看,我们可以得出结论,所提出的方法优于其他现有的关键字检索算法。此外,我们使用带有人类标记关键字的黄金标准特定领域数据集 INSPEC 和我们的测试数据集来大规模验证所提出模型的性能。
图片名称

    结果如图 9 所示。我们可以看到,在这两个数据集中,所提出的方法都取得了非常接近真实情况的结果,并且当我们考虑图 6 时,也获得了比其他方法更好的统计数据。我们的结果相似性也优于 INSPEC 和 DUC 的真实值,这证明了 INSPEC 和 DUC 的语义和上下文关键字提取比黄金标准更好。

图片名称

    在图 9 中,g 是真实值,m 表示来自我们训练模型的关键字或关键短语,s 是来自我们方法的自标记关键字或关键短语。

图片名称

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

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

相关文章

SE园区综合实验(未补齐版)

实验要求&#xff1a; 1.局域网存在vlan10和vlan20两个业务vlan&#xff0c;ip网段分别对应192.168.1.0/24和192.168.2.0/24 2.业务vlan可以在所有链路上传输数据 3.sw1和sw2之间的直连链路上配置静态链路聚合实现链路冗余&#xff0c;并提高链路带宽 4.sw3为某接入点二次交…

【教学类-34-11】20240314 动物拼图(Midjounery生成线描图,8*8格拼图块 A4整张)(AI对话大师)

作品展示&#xff1a;——A4整页&#xff08;一人2张纸&#xff09; 背景需求&#xff1a; 通过春天拼图的个别化实验&#xff0c;我发现&#xff1a; 【教学类-34-10】20240313 春天拼图&#xff08;Midjounery生成线描图&#xff0c;4*4格拼图块&#xff09;&#xff08;AI…

单例模式( Singleton)——创建型模式

单例模式——创建型模式 什么是单例模式&#xff1f; 单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。简单来说如果你创建了一个对象&#xff0c; 过一会儿后你决定再创建一个新对象&#xff0c; 此…

【Memcached】

memcached 有一个很大的缺陷不能持久化&#xff0c;不能存储在硬盘里 1.NoSQL介绍 NoSQL是对 Not Only SQL、非传统关系型数据库的统称。 NoSQL一词诞生于1998年&#xff0c;2009年这个词汇被再次提出指非关系型、分布式、不提供ACID的数据库设计模式。 随着互联网时代的到…

Node.js 学习笔记 fs、path、http模块;模块化;包;npm

Node.js学习 Node.js一、定义1.前端工程化2.Node.js 为何能执行 JS&#xff1f;3.安装nodejs、删除之前的nodejs4.使用 Node.js 二、fs模块 \- 读写文件三、path 模块案例 - 压缩前端html四、HTTP相关URL中的端口号常见的服务程序http 模块-创建 Web 服务案例&#xff1a;浏览时…

【Flutter 面试题】Flutter如何处理响应式布局?

【Flutter 面试题】Flutter如何处理响应式布局&#xff1f; 文章目录 写在前面口述回答补充说明完整代码示例运行结果详细说明 写在前面 &#x1f64b; 关于我 &#xff0c;小雨青年 &#x1f449; CSDN博客专家&#xff0c;GitChat专栏作者&#xff0c;阿里云社区专家博主&am…

windows下安装python3.8

一、从官网下载安装包 官网地址&#xff1a;https://www.python.org/downloads/ 华为云地址&#xff1a;https://mirrors.huaweicloud.com/python/ 第三方镜像&#xff1a;https://registry.npmmirror.com/binary.html?pathpython/ 注意&#xff1a;从python3.8.10版本开始…

注意!运用表单流程管理可一起实现提质增效

经常会有客户在我们面前抱怨&#xff1a;到底用什么样的方法和软件&#xff0c;才能实现高效率的办公&#xff1f;其实&#xff0c;大家不必苦恼。因为低代码技术平台服务商流辰信息将会给大家推荐表单流程管理的实用性&#xff0c;它的灵活简便、易操作等优势特点&#xff0c;…

C#文件交互

C#是一种流行的编程语言&#xff0c;广泛应用于开发各种类型的应用程序&#xff0c;包括需要进行文件交互的应用程序。文件交互是指应用程序与计算机文件系统进行交互&#xff0c;包括读取、写入、创建、删除和修改文件等操作。在C#中&#xff0c;文件交互通常通过.NET框架提供…

格子表单GRID-FORM | 必填项检验 BUG 修复实录

格子表单/GRID-FORM已在Github 开源&#xff0c;如能帮到您麻烦给个星&#x1f91d; GRID-FORM 系列文章 基于 VUE3 可视化低代码表单设计器嵌套表单与自定义脚本交互文档网站搭建&#xff08;VitePress&#xff09;与部署&#xff08;Github Pages&#xff09;必填项检验 BUG…

打卡学习kubernetes——了解五种控制器类型

目录 1 Deployment控制器 2 StatefulSet控制器 3 DaemonSet控制器 4 Job控制器 5 CronJob控制器 1 Deployment控制器 Deployment为Pod和Replica Set&#xff08;下一代Replication Controller&#xff09;提供声明式更新。 Deployment运行无状态应用&#xff0c;一般情况…

redis中的zset的原理

一、zset有序集合的原理 如果有序集合元素个数少于128个且元素值小于64字节&#xff0c;使用压缩列表&#xff08;新版本已经废弃压缩列表改用listpack数据结构了&#xff09; 如果不满足上述条件&#xff0c;采用跳表作为redis的底层数据结构 二、压缩列表 1.由连续内存块组…

迄今为止易用 —— 的 “盲水印“ 实现方案

前期回顾 网站的打赏 —— 新一代的思路-CSDN博客https://blog.csdn.net/m0_57904695/article/details/136704914?spm1001.2014.3001.5501 目录 CSDN 彩色之外 &#x1f4dd; 前言&#xff1a; &#x1f6e0;️ vue3-blind-watermark &#x1f916; 安装 ♻️ 引入&am…

【LeetCode热题100】142. 环形链表 II(链表)

一.题目要求 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统…

GEE必须会教程—影像集合的操作方法

影像集合&#xff08;Image Collection&#xff09;&#xff0c;说白了就是把一堆影像打包在一起形成的集合&#xff0c;我们可以用用前文讲过的矢量集合的方法来理解&#xff08;http://t.csdnimg.cn/bRJOT&#xff09;&#xff0c;学习影像集合的过程中&#xff0c;同样需要掌…

【DL经典回顾】激活函数大汇总(八)(Maxout Softmin附代码和详细公式)

激活函数大汇总&#xff08;八&#xff09;&#xff08;Maxout & Softmin附代码和详细公式&#xff09; 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里&#xff0c;激活函数扮演着不…

strcat的模拟实现

一&#xff1a;strcat函数的定义&#xff1a; strcat函数功能的解释&#xff1a; 将源字符串追加&#xff08;连接&#xff09;到目的字符串的后面 strcat函数要点&#xff1a; 源字符串必须以 \0 结束。 目标空间必须有足够的大&#xff0c;能容纳下源字符串的内容。 目…

使用STM32+ESP8266(ESP-01S)+点灯科技(手机端Blinker)实现远程控制智能家居

硬件准备&#xff1a;STM32单片机、ESP8266&#xff08;ESP-01S&#xff09;、CH340C下载烧录器 软件准备&#xff1a;STM32CubeMX、Keil uVision5、Arduino IDE、 点灯科技&#xff08;手机端APP Blinker&#xff09;点灯科技 (diandeng.tech)点击进入 值得注意的是&#x…

NO9 蓝桥杯单片机之串口通信的使用

1 基本概念 简单来说&#xff0c;串口通信是一种按位&#xff08;bit&#xff09;传输数据的通信方式。 其他一些知识就直接贴图吧&#xff08;单工&#xff0c;半双工这些学过通信的同学应该都知道&#xff0c;可以上网查询一下具体概念。&#xff09; 来源还是&#xff1a;…

【CSP试题回顾】201709-3-JSON查询

CSP-201709-3-JSON查询 解题思路 1. 初始化数据结构 map<string, string> strContent: 存储字符串类型属性的内容。键是属性名&#xff08;可能包含通过点.连接的多级属性名&#xff09;&#xff0c;值是属性的字符串值。vector<string> keyVec: 存储当前正在处…