关键词提取——有监督方法

article/2025/9/21 19:08:27

在上一篇博客中,介绍了关键词提取的无监督方法:点击这里查看文章。本篇主要是介绍关键词提取的有监督方法。

可以从如下角度去做有监督学习:

  • 二分类模型:短语是否为关键短语。
  • LTR(learn to rank):学习排序模型,选取top K 的作为关键短语。
  • encoder-decoder:类似翻译的思想,将文本作为源语言,关键短语作为目标语言。
  • 序列标注:类似于实体识别的思路,实体识别提取实体词,这里提取关键短语。

对于上述的每种方法,都用1~2个模型去说明。

特征

在这里插入图片描述
二分类模型可以利用上述特征,构建二分类模型,判断短语是否为关键短语。与之相关的,可以看一下KEA: Practical Automatic Keyphrase Extraction这篇论文,它使用tf-idf值与位置信息作为特征,以朴素贝叶斯作为二分类模型,从而判断某个短语是否为关键短语。

LTR

RankingSVM
A Ranking Approach to Keyphrase Extraction使用RankingSVM来建模该问题。

使用的特征:

The features include TF-IDF score, phrase length, position of phrase’s first occurrence, phrase’s appearance in document title, uniformity of phrase’s distribution within document (measured by entropy), frequency of most and least frequent word of phrase, etc.

rankingsvm简介:

rankingsvm是一种pointwise的排序算法。给定文档 d d d,关键词 k 1 > k 2 > k 3 k_1>k_2>k_3 k1>k2>k3,意味着关键词 k 1 k_1 k1 k 2 , k 3 k_2,k_3 k2,k3都更相关。令 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3 k 1 , k 2 , k 3 k_1,k_2,k_3 k1k2k3的特征,则, x 1 − x 2 , x 1 − x 3 , x 2 − x 3 x_1-x_2,x_1-x_3,x_2-x_3 x1x2,x1x3,x2x3为正样本; x 2 − x 1 , x 3 − x 1 , x 3 − x 2 x_2-x_1,x_3-x_1,x_3-x_2 x2x1,x3x1,x3x2为负样本。那么问题就重新转变为分类问题。可用SVM进行分类。

Bert-KPE
Capturing Global Informativeness in Open Domain Keyphrase Extraction,中使用了Pairwise ranking loss作为其rank损失。具体的论文分析,详见我的博客。

Encoder-Decoder

论文Deep Keyphrase Generation中使用encoder-decoder完成关键词的抽取。

Deep Keyphrase Generation的源码地址。

Deep Keyphrase Generation:

问题定义:

假设语料库中包含N条语料,对于其中的第 i i i条语料,定义为 ( x ( i ) , p ( i ) ) (x^{(i)},p^{(i)}) (x(i),p(i)),其中 x ( i ) x^{(i)} x(i)是源文本,而 p ( i ) p^{(i)} p(i)是长度为 M i M_i Mi的向量( M i M_i Mi表示目标关键短语的数目),那么 p ( i ) = ( p ( i , 1 ) , ⋯ , p ( i , M i ) ) p^{(i)}=(p^{(i,1)},\cdots,p^{(i,M_i)}) p(i)=(p(i,1),,p(i,Mi))。对于源文本和关键短语,都可以将其拆分为word level的表示,因此,有:
在这里插入图片描述
( x ( i ) , p ( i ) ) (x^{(i)},p^{(i)}) (x(i),p(i))可以转变为 M i M_i Mi个对: ( ( x i , p ( i , 1 ) ) , ⋯ , ( x i p ( i , M i ) ) ) ((x^{i},p^{(i,1)}),\cdots,(x^{i}p^{(i,M_i)})) ((xi,p(i,1)),,(xip(i,Mi))),为了方便起见,将这些pair用 ( x , y ) (x,y) (x,y)表示。

encoder-decoder model:
encoder部分,目标是获得源文本的表征 c c c c c c的计算方式如下:
在这里插入图片描述
在这里插入图片描述
其中, f , q f,q f,q都是非线性函数。得到文本的表征后,利用 c c c对其进行解码。于是有:

decoder部分:将 c c c解码成变长 y = ( y 1 , y 2 , ⋯ , y T ′ ) y=(y_1,y_2,\cdots,y_{T'}) y=(y1,y2,,yT)
在这里插入图片描述
s t s_t st是decoder RNN在时刻t的隐状态。g是一个softmax函数。

encoder 和 decoder 的细节:
值得一提的是,在实际工作中,将encoder部分转变为双向GRU得到 H H H,decoder使用前向GRU得到 S S S。除此之外,生成表征时可以使用attention机制:
在这里插入图片描述
Copying Mechanism:
为了保证学到的表征的质量以及减少词库的大小,一般来说,RNN只会包含30000个常用的词,有大量的长尾词被忽略了(英文情况),这会使得decoder没法生成包含未登陆词的短语。而重要的短语其实与其所在的位置以及语法信息有关,Copying Mechanism通过从原文中获取word,从而能够输出OOV,但包含在源文本中的词。

那么,新的概率分布定义如下:
在这里插入图片描述
p g p_g pg表示生成词的概率, p c p_c pc表示复制词的概率:
在这里插入图片描述
这样的话,从某种程度来说解决了OOV问题,也会让模型优先考虑已经出现的词(因为大多数的关键词往往出现在源文本中)。

序列标注

BiLSTM-CRF:
这里将问题转变为序列标注问题。比如,可以将关键词或者关键词短语标注出来,其余的词标注为other。这样就与命名实体识别任务相同了。具体的关键词抽取实践请看这里。

关于序列标注的更多细节,可以看我的下一篇博客: 命名实体识别。

参考

https://zhuanlan.zhihu.com/p/163426574
https://www.cnblogs.com/kemaswill/p/3241963.html
https://cloud.tencent.com/developer/article/1528457


http://chatgpt.dhexx.cn/article/UpPOLbLv.shtml

相关文章

NLP- 关键词提取 - 综述

NLP- 关键词提取 - 综述 一、关键词提取有以下几种方式二、TF-IDF三、TextRank四、LDA五、word2vec 一、关键词提取有以下几种方式 二、TF-IDF TF-IDF算法,主要是通过统计方法,评估词对文档的重要性。一个基本思想是,一个词在文档中出现的次…

基于yake的中文关键词提取试验

前言: 之前看了云朵dalao的一篇关于关键词提取的文章,其中介绍的 Yake 模型采用了大写词、词位置、全文词频、上下文关系、句间词频等 5 个指标,计算候选词得分。感觉设计上较直观、易解释,但原 yake 库不支持中文,于是…

RAKE-无监督英文关键词提取算法

没想到吧,在深度学习大行其道的当今,我突然写了一篇上古时代的文章(其实也就2010年,奈何知识更新真快…) 话不多说,一起来看一下RAKE算法 RAKE RAKE全称为Rapid Automatic Keyword Extraction&#xff0c…

tfidf关键词提取_基于深度学习的个性化商品评论标签提取

商品评论标签提取作为商品评论中的一个比较有意思的问题。评论标签提取的主要任务是从评论中了解到用户对产品的哪些功能、属性进行了怎样的评论,并抽取成简短有效的信息。 关键词提取Vs评论标签提取 商品标签提取和关键词的抽取还不是同样的NLP问题,关键词提取更侧重于文章或…

NLP-关键词提取算法

一、提取关键字技术简介 关键字提取技术一般也可以分为有监督和无监督两类。 有监督的关键词提取方法主要是通过分类的方式进行的,通过构建一个比较丰富完善的词表,然后通过判断每个文档与词表中每个词的匹配程度,以类似打标签的方式&#x…

关键词提取算法概述

关键词提取概述 概念 关键词是指能反映文本主题或者主要内容的词语。关键词提取是NLP领域的一个重要的子任务。在信息检索中,准确的关键词提取可以大幅提升效率;在对话系统中,机器可以通过关键词来理解用户意图;在自动文摘、文本…

关键词提取算法

来源:《Python自然语言处理实战:核心技术与算法》 1.TF-IDF TF-IDF从词频、逆文档频次两个角度对词的重要性进行衡量,可以根据tf-idf值由大到小排序取前n个作为关键词。 传统的TF-IDF算法中,仅考虑了词的两个统计信息&#xff0…

KeyBert关键词提取 :原理、方法介绍、代码实践

创建于:20210708 修改于:20210708, 20221104 文章目录 1 概述2 方法介绍2.1 安装2.2 KeyBERT(model)2.3 extract_keywords参数介绍 3、代码实践3.1 英文示例3.2 中文示例 4、加载不同的模型库4.1 SentenceTransformers模型调用4.2 Transformers模型调用4…

常用的Python3关键词提取方法

诸神缄默不语-个人CSDN博文目录 本文将介绍一些简单的使用Python3实现关键词提取的算法。目前仅整理了一些比较简单的方法,如后期将了解更多、更前沿的算法,会继续更新本文。 文章目录 1. 基于TF-IDF算法的中文关键词提取:使用jieba包实现2.…

NLP——关键词提取

NLP——关键词提取 文章目录 NLP——关键词提取前言一、TF-IDF算法1. 基本原理2. 算法改进 二、TextRank算法1. 基本原理2. PageRank算法3. TextRank算法4. TextRank算法在关键词提取的应用 三、LSA/LSI/LDA算法1. LSA/LSI算法2. LDA算法 四、实战练习 前言 关键词提取分为有监…

文本关键词提取:ansj

背景 因为文本内容里面,需要提取出关键词给到seo作关键词。 同时内容是中文的,需要找个对应的中文分词和提取工具。 ansj 根据官方介绍,感觉还是比较厉害的样子。 官方说明: 这是一个基于n-GramCRFHMM的中文分词的java实现。…

[转]NLP关键词提取方法总结及实现

最近在研究关键词的提取算法,看到一篇关于关键词提取算法的总结,比较全面了,在这里分享给大家,希望能够帮助同学们~ 原文链接:https://blog.nowcoder.net/n/ac016f8256f54c4b8c8784e99bccf28a (ps:作者同意…

文本中的关键词提取方法

目录 1. TF-IDF(Term Frequency-Inverse Document Frequency)算法: 2. TextRank算法: 3. LDA(Latent Dirichlet Allocation)算法: 4. RAKE(Rapid Automatic Keyword Extraction&…

关键词抽取方法

1、关键词提取 为了方便用户快速了解文章的中心主题,会抽取文章的一些中心词来表达文章的中心思想。关键词抽取就是通过一定的方法抽取出能表达文章的中心主题的一系列方法。 2、关键词抽取方法分类 2.1、有监督无监督抽取方法 无监督关键词提取方法主要有三类&…

自然语言处理之——关键词提取(一)

一. 摘要 本次的分享中,我们将了解目前较常用的关键词提取技术。关键词是代表文章重要内容的一组词。在文本的分类聚类、自动摘要等方面有着重要的作用。还可以让人们更直观便捷的浏览文本信息。在现实的常用文本中是不包含关键词的,所以自动…

记一次 watchbog 挖矿病毒的清理

突然发现服务器上的mysql数据库连接不上遂使用xshell连接服务器查看进程发现被一个叫watchbog的进程沾满了cpu 通过查阅资料发现该病毒通过定时器 不断下载挖矿程序脚本 先清除 crontab中不属于自己的内容 kill掉所有的watchbog进程 bog 不是dog 查找到服务器上所有的…

手工清除Windows服务器上的Steam挖矿病毒:HackTool/CoinMiner.a及Trojan/Miner.ac

手工清除Windows服务器上的Steam挖矿病毒:HackTool/CoinMiner.a及Trojan/Miner.ac 起因: 最近服务器群里的两台Windows虚拟服务器上的CPU占用率超级高(已经达到了91%),严重影响公司程序的正常运行,但是又不能安装杀毒软…

2019上半年恶意挖矿趋势报告

上一期,深信服安全团队对勒索病毒进行2019半年度总结,主要盘点了高发勒索家族、受灾区域分布、勒索病毒发展走向等。本期深信服安全团队对另一流行病毒类型——挖矿木马进行深入分析,给大家揭秘2019上半年挖矿木马的所作所为。 一、2019上半…

服务器被加了挖矿代码

2019独角兽企业重金招聘Python工程师标准>>> 平时很少使用的一台服务器,24G内存,在上面搭建了Hadoop环境。 突然发现负载好高,top看了一下,一个java进程占用了很多cpu 疑似国内来源的“8220挖矿团伙”追踪溯源分析 挖矿…

威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复...

2019独角兽企业重金招聘Python工程师标准>>> 背景 近日,阿里云安全监测到watchbog挖矿木马使用新曝光的Nexus Repository Manager 3远程代码执行漏洞(CVE-2019-7238)进行攻击并挖矿的事件。 值得注意的是,这一攻击开始的时间(2月2…