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

article/2025/9/21 19:09:58

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

RAKE

RAKE全称为Rapid Automatic Keyword Extraction,突出两个亮点:1. 快速,线上部署非常友好;2. 无监督,也即不需要大量有标签数据,0成本~

提取候选词

首先,使用停用词进行候选关键词的提取和切分,这里的停用词表非常关键,决定你候选词组切分的效果,候选词组切分不好,最终提取到的效果也会受影响。
候选词提取方法其实很简单:首先,构造停用词表,对一个句子中,两个停用词之间的短语进行切分(切分得到的,可能是短语,也可能是单词),从而得到多个候选词。
首先,构造停用词正则项:

stop_word_pattern = re.compile('|'.join(stop_word_regex_list), re.IGNORECASE)

其次,按停用词进行切分:

tmp = re.sub(stopword_pattern, '|', s.strip())

举个例子,原始句子如下:

text = "Compatibility of systems of linear constraints over the set of natural numbers. Criteria of compatibility of a system of linear Diophantine equations, strict inequations, and nonstrict inequations are considered. "

linear constraints前为停用词of, 后为停用词over,所以linear constraints会被切分成一个短语,上述句子切分后得到的候选关键词如下:

tmp_candidate_keywords = ["Compatibility", "systems", "linear constraints", "set", "natural numbers", "Criteria", "compatibility", "system", "linear Diophantine equations" "strict inequations", "nonstrict inequations", "considered".]

计算候选词得分

首先,分别计算(1)词频(freq(w)),即单词出现次数;(2)词组总长(deg(w)),即单词所在词组长度总和;(3)词组总长与词频的比例(deg(w)/freq(w))。
如上述例子tmp_candidate_keywords中,linear的词频freq(w)=2,词组总长deg(w)=2+3=5,因此该单词得分为deg(w)/freq(w)=5/2=2.5。
对每个单词都按上述方法计算得分后,可以得到每个单词的分数。
在这里插入图片描述
其次,计算短语得分:按每个单词的分数相加,得到短语得分。(由此可见,RAKE算法比较强调短语的结果,因为短语短语分数是由多个单词分词直接相加的,可以得到更高分数)
在这里插入图片描述
最后,按照得分进行排序,取前1/3的词组进行输出,作为最后的关键词结果。

实测效果

最后,来看一下效果。下图是在我们实际业务场景中提取到的关键词,总体效果还是很不错的:
在这里插入图片描述

参考:
Paper: Automatic keyword extraction from individual documents
Code: https://github.com/mpk001/RAKE-keywordsExtraction


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

相关文章

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…

威胁快报|ProtonMiner挖矿蠕虫扩大攻击面,加速传播

2019独角兽企业重金招聘Python工程师标准>>> 背景 近日,阿里云安全监测到一种挖矿蠕虫,正在互联网上加速传播。阿里云安全根据它使用ProtonMail邮箱地址作为矿池用户名的行为,将其命名为ProtonMiner。据分析,这种蠕虫与…

记一次mykings暗云挖矿木马的排查与解决

微信公众号:运维开发故事,作者:wanger 起因 之前有一台做测试的Windows server2012阿里云服务器的防火墙关掉之后开机总是启动,想了很多办法也没找到原因就提了工单问了售后,结果售后也没发现问题,并提示我…

应急响应流程以及入侵排查

归纳转载于: 应急响应的整体思路和基本流程 - FreeBuf网络安全行业门户不管是普通的企业,还是专业的安全厂商,都不可避免的需要掌握和运用好信息安全的知识、技能,以便在需要的时候,能够御敌千里。https://www.freebu…