YAKE!无监督关键字抽取算法解读

简介: RAKE遵循由启发式方法支持的无监督方法,该方法可以在短时间内轻松扩展到不同的集合、域和语言。

本周任务如下,接续上周的关键字抽取任务,前面一两周主要学习了RAKE、TF-IDF、TextRank算法,详细见https://blog.csdn.net/qq_45041871/article/details/126658189。本周发现还有一个无监督的关键字抽取算法比较经典,所以在扩展一下。这个算法就是YAKE!,在2018年提出,论文A Text Feature Based Automatic Keyword Extraction Method for Single Documents,该论文获得2018年ECIR的最佳短论文奖。


YAKE


RAKE遵循由启发式方法支持的无监督方法,该方法可以在短时间内轻松扩展到不同的集合、域和语言。该文章的主要有两个贡献:(1)作者提出了一种无监督关键字抽取方法叫做YAKE!,YAKE是基于文本统计的特征的方法,从单个文档中抽取关键词(单词和多词短语),并且不需要依赖文档集合;(2)YAKE可能适用于没有现成方法的领域和语言,因为它既不需要训练语料库,也不依赖任何外部来源(如WordNet)或语言工具(如NER或PoS标记器)。


YAKE的四个主要流程:文本预处理——>特征提取——>单个词权重计算——>候选关键字的生成,其中最为关键的莫过于特征提取过程。


文本预处理


其实就是对文档进行分词,按照一些标点符号和特殊字符进行分词。


特征提取


作者选用了5种常见的特征,Casing、Word Position、Word Frequency、Word Relatedness to Context、 Word DifSentence。

Casing:特别关注以大写字母开头的任何单词(不包括句子开头的字母)或任何首字母缩略词(即,该单词的所有字母都是大写),前提是这些单词往往更相关。我们不计算它们两次,只考虑它们中的最大值。


image.png


TF(U(w))是候选词w 以大写字母开头的次数,TF(A(w))是候选词w 被标记为首字母缩略词的次数,而TF(w)是w 的频率。


Word Position:考虑单词出现的句子位置可能是关键词提取过程的一个重要特征,因为文档(尤其是科学和新闻出版物)的早期部分往往包含大量相关关键词。


image.png


Senw 表示单词w 出现在句子集的位置,Midian是中值函数。结果是一个递增函数,当单词位于文档末尾时,值趋于平稳增加,这意味着单词出现在文档开头的频率越高,其W p o s i t i o n 值越小。相反,更经常位于文档末尾的单词(可能不太相关)将被赋予更高的W p o s i t i o n 值。注意,等式中考虑值2,以保证W p o s i t i o n > 0 。


Word Frequency: 该特征指示文档中单词w的频率。它反映了一种理念,即频率越高,单词越重要。为了防止长文档中出现偏向高频的情况,单词w 的TF值除以频率均值MeanTF。我们的目的是对所有高于平均值的单词进行评分(由标准偏差给出的分散度平衡)。


image.png


Word Relatedness to Context:W r e l 量化了一个词与停止词特征相似的程度。为了计算这个度量,我们借助于出现在候选词左侧(和右侧)大小为n的窗口中的不同项的数量。与候选词(两侧)同时出现的不同词的数量越多,候选词可能就越无意义。


image.png


更准确地说,WL[WR]测量与候选词(在左[右]侧)共同出现的不同词的数量与它共同出现的词的数量之间的比率。TF(w)是单词相对于所有单词中的最大频率(MaxTF)的频率,PL[PR]测量与候选单词(在左[右]侧)共同出现的不同单词的数量与MaxTF之间的比率。实际上,候选词越不重要,该特征的得分就越高。因此,类似的停止词很容易获得更高的分数。


Word DifSentence:量化候选词在不同句子中出现的频率。一个词在越多句子中出现,相对显得更加重要。


image.png


其中,SF(w)单词w 出现的句子频率,也就是单词w 出现的句子数。# S e n t e n c e s是文档中句子的总数。


计算每个单词的权重


结合上面五个评估指标,作者提出了一种联合计算指标,用来代表每个单词的重要性程度,该值越小,则表现的越重要。


image.png


候选词列表生成


因为候选关键词可以是单词也可以词组,所以作者设置了滑动窗口大小为1、2、3来设定关键词序列。另外,作者不考虑以停用词开头和结尾的连续序列。同样重要的是,对于候选关键词没有要求必须具有最小频率或句子频率。,这意味着,我们可以将一个关键字视为重要或不重要的依次出现或者多次出现。然后,每个候选关键字将为分配一个最终形式的S(kw),这样分数越小,关键词就越有意义。


image.png


S(kw)是最大尺度为3的候选词的得分。


评估


评估数据集:SemEval2010 、500N-KPCrowd-v1.1、 WICC、Schutz2008。


实验参数设置:最大滑动窗口设置为3、使用停用词预料、Levenshtein阈值设置为0.8。


对比模型:TextRank、RAKE、SingleRank、TF-IDF。


评价指标:precision、recall、F1。


实验结果如下表所是:


5984ef6f7f9549c4bbe8de05d5f11112.png


实验


可以参考作者的开源代码:YAKE!实现


Reference


[1] 面向特定问题的开源算法管理和推荐(十二)_郭德纲闭门弟子的博客-CSDN博客


[2] Campos R , Mangaravite V , Pasquali A , et al. YAKE! Keyword Extraction from Single Documents using Multiple Local Features[J]. Information Sciences, 2020, 509:257-289.


[3] Pasi G , Piwowarski B , Azzopardi L , et al. [Lecture Notes in Computer Science] Advances in Information Retrieval Volume 10772 || A Text Feature Based Automatic Keyword Extraction Method for Single Documents[J]. 2018

[4] http://bit.ly/YakeDemoECIR2018

[5] http://www.hlt.utdallas.edu/~saidul/code.html

[6] https://github.com/zelandiya/RAKE-tutorial

[7] https://pypi.python.org/pypi/yake


[8] Yet Another Keyword Extractor (Yake)代码解读 - 知乎 (zhihu.com)

目录
相关文章
|
机器学习/深度学习 传感器 运维
综述:弱监督下的异常检测算法
# 一、前言 文章标题是: Weakly Supervised Anomaly Detection: A Survey 这是一篇针对“弱监督”异常检测的综述。 其中弱监督异常检测 简称为 WSAD - 论文链接:https://arxiv.org/abs/2302.04549 - 代码链接:https://github.com/yzhao062/wsad # 二、问题 针对异常检测问题,其
558 1
综述:弱监督下的异常检测算法
|
3月前
|
机器学习/深度学习 运维 算法
监督算法和无监督算法之间的区别
【8月更文挑战第23天】
98 0
|
传感器 机器学习/深度学习 人工智能
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
近年来,自动驾驶因其减轻驾驶员负担、提高行车安全的潜力而受到越来越多的关注。在现代自动驾驶系统中,感知系统是不可或缺的组成部分,旨在准确估计周围环境的状态,并为预测和规划提供可靠的观察结果。3D目标检测可以智能地预测自动驾驶车辆附近关键3D目标的位置、大小和类别,是感知系统的重要组成部分。本文回顾了应用于自动驾驶领域的3D目标检测的进展。
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
|
机器学习/深度学习 算法
JointKPE关键词抽取论文算法解读
这篇论文是清华大学2021年的论文,主要目的是在开放领域进行关键词/短语抽取。作者提出了一种模型叫做JointKPE,是建立在预训练语言模型上的开放领域关键词抽取模型
244 0
JointKPE关键词抽取论文算法解读
|
自然语言处理 算法 搜索推荐
TF-IDF、TextRank关键字抽取排序算法
TF-IDF称为词频逆文本,结果严重依赖文本分词之后的效果。其公式又可以分成词频(Term Frequency,TF)的计算和逆文档概率(IDF)的计算。
170 0
|
自然语言处理 算法 Python
RAKE(快速自动关键字抽取)算法原理与实现
RAKE算法用来做关键词(key word)的提取,实际上提取的是关键的短语(phrase),并且倾向于较长的短语,在英文中,关键词通常包括多个单词,但很少包含标点符号和停用词,例如and,the,of等,以及其他不包含语义信息的单词。
288 0
|
机器学习/深度学习 人工智能 自然语言处理
EasyNLP集成K-Global Pointer算法,支持中文信息抽取
K-Global Pointer的技术解读,以及如何在EasyNLP框架中使⽤K-Global Pointer模型。
EasyNLP集成K-Global Pointer算法,支持中文信息抽取
|
机器学习/深度学习 资源调度 算法
基于LGC局部全局一致性和SVM支持向量机的半监督分类算法matlab仿真
基于LGC局部全局一致性和SVM支持向量机的半监督分类算法matlab仿真
305 0
基于LGC局部全局一致性和SVM支持向量机的半监督分类算法matlab仿真
|
机器学习/深度学习 传感器 编解码
【图像检测】基于递减圆拟合算法 (DCFA)无监督树桩检测与计算
【图像检测】基于递减圆拟合算法 (DCFA)无监督树桩检测与计算
|
机器学习/深度学习 算法
【机器学习】有监督算法基础
【机器学习】有监督算法基础
179 0