关键词提取算法概述

article/2025/9/21 20:04:49

关键词提取概述

概念

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

关键词提取方法概述

关于文本的关键词提取方法分为:

  • 有监督的关键词抽取算法
  • 半监督的关键词抽取算法
  • 无监督的关键词抽取算法

有监督的关键词抽取算法

有监督的关键词提取方法主要是通过分类的方式进行,通过构建一个较为丰富和完善的词表,然后通过判断每个文档和词表中每个词都匹配程度,以类似打标签的方式,达到关键词提取的效果。既然是分类问题,就需要提供已经标注好的大批量训练语料,因为每天都有大量新的信息出现,人工维护词表需要很高的人力成本。

半监督的关键词抽取算法

只需要少量的训练数据,利用这些训练数据构建关键词抽取模型,然后使用模型对新的文本进行关键词提取,对于这些关键词进行人工过滤,将过滤得到的关键词加入训练集,重新训练模型。

无监督的关键词抽取算法

相对于有监督的方法,无监督的方法既不需要维护词表,也不需要人工标准语料辅助训练。利用某些算法挖掘文本中比较重要的词作为关键词,进行关键词抽取。关键词抽取流程如下:

关键词提取算法流程

因此这类算法在工程中应用较广,无监督关键词抽取算法可以分为三大类:

  • 基于统计特征的关键词抽取
  • 基于词图模型的关键词抽取
  • 基于主题模型的关键词抽取

基于统计特征的关键词抽取

基于统计特征的关键词抽取算法的思想是利用文档中词语的统计信息抽取文档的关键词。通常对文本进行预处理得到候选词语的集合,然后采用特征值量化的方式从候选集合中得到关键词。此处主要讲TF-IDF。

TF-IDF

TF-IDF基本思想:词的重要性与它在文件中出现的次数成正比,但同时会随着它在语料库中出现的频率成反比。

一个文档中多次出现的词总是有一定的特殊意义,但是并不是所有多次出现的词就都是有意义的,如果一个词在所有的文档中都多次出现,那么这个词就没有什么价值了。或者说,如果某个词或者短语在一个文档中出现多次,但是在其他文档中很少出现,就可以认为这个词或短语具有很好的区分性,适合用来对文档进行分类。

TF-IDF = TF * IDF,其中TF(Term Frequency)表示一个词在文档中出现的次数。DF(Document Frequency)表示整个语料库中含有某个词的文档个数。IDF(Inverse Document Frequency)为逆文档频率,其计算公式为:IDF= log(语料库中文档总数/(包含该词的文档数+1)),+1 的作用是做平滑处理。

基于词图模型的关键词抽取

基于词图模型的关键词抽取首先要构建文档的语言网络图,然后对语言进行网络图分析,在这个图上寻找具有重要作用的词或者短语,这些短语就是文档的关键词。

TextRank

TextRank 算法是一种用于文本的基于图的排序算法。其基本思想来源于谷歌的 PageRank算法(其原理在本文在下面), 通过把文本分割成若干组成单元(单词、句子)并建立图模型, 利用投票机制对文本中的重要成分进行排序, 仅利用单篇文档本身的信息即可实现关键词提取。TextRank算法用于关键词提取的步骤如下:

  • 把给定的文本T按照完整句子进行分割
  • 对每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词。
  • 构建候选关键词图 G = (V,E),其中 V 为节点集,由(2)生成的候选关键词组成,然后采用共现关系(Co-Occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为 K 的窗口中共现,K 表示窗口大小,即最多共现 K 个单词。
  • 根据TextRank的公式,迭代传播各节点的权重,直至收敛。
  • 对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。
  • 根据上述步骤得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。

基于主题模型的关键词抽取

基于主题关键词提取算法主要利用的是主题模型中关于主题的分布的性质进行关键词提取。在某些场景,关键词不一定会显示的出现在文档中,这种情况下,前面两种算法显然不能提取出隐含的主题信息,这时就需要用到主题模型。前两种算法仅用到了文本中的统计信息,并没有用到文本的语义信息。主题模型认为在词与文档之间没有直接的联系,它们应当还有一个维度将它们串联起来,将这个维度称为主题。每个文档都应该对应着一个或多个的主题,而每个主题都会有对应的词分布,通过主题,就可以得到每个文档的词分布。

P(单词 | 文档) = P(单词 | 主题) * P(主题 | 文档)

LSA

潜在语义分析(LSA)是主题建模的基础技术之一。其核心思想是将文档-词矩阵分解成相互独立的文档-主题矩阵和主题-词矩阵。LSA的主要步骤:

  • 使用词袋模型或空间向量模型将每个文档表示为向量
  • 将所有的文档词向量拼接起来构成文档-词矩阵
  • 对文档-词矩阵进行奇异值分解
  • 根据SVD结果,将文档-词矩阵映射到一个更低维度k的近似SVD结果,每个文档和词都可以表示为k个主题构成的空间中的一个点。通过计算每个文档和词的相似度,取相似度最高的一个词即为文档的关键词。
LDA

LDA 即潜在狄利克雷分布,是 pLSA 的贝叶斯版本。它假设文档中主题的先验分布和主题中词的先验分布都服从狄利克雷分布。根据贝叶斯学派的方法,通过先验的狄利克雷分布和观测数据得到的多项式分布,得到一组Dirichlet-multi共轭,并据此来推断文档中主题的后验分布和主题中词的后验分布,从而有助于更好地泛化。

结合吉布斯采样的LDA模型训练过程:

  • 随机初始化,对语料中每篇文档中的每个词w,随机的赋予一个topic编号z
  • 重新扫描语料库,对每个词w按照吉布斯采样公式重新采样它的topic,在语料中进行更新
  • 重复以上语料库的重新采样过程知道吉布斯采样收敛
  • 统计语料库的topic-word共现频率矩阵,该矩阵就是LDA的模型

接下来就可以按照一定的方式对新文档的主题进行预估,具体步骤如下:

  • 随机初始化,对当前文档中的每个词w,随机地赋一个主题编号z
  • 重新扫描当前文档,按照吉布斯采样公式重新采样它的主题
  • 重复以上过程,直到吉布斯采样收敛
  • 统计文档中的主题分布即为预估结果

应用

现阶段,文本的关键词提取在文本分类、文本检索、自动文摘、文本推荐和数据挖掘领域有着广泛的应用。在实际应用中,因为应用环境的复杂性,对于不同类型的文本,例如长文本和短文本,用同一种文本关键词提取方法得到的效果并不相同。因此,在实际应用中针对不同的条件环境所采用的算法会有所不同。

相对于上文中所提到的算法,一些组合算法在工程上被大量应用以弥补单算法的不足,例如将TF-IDF算法与TextRank算法相结合,或者利用TF-IDF与词性综合考虑得到关键词等。同时,工程上对于文本的预处理以及文本分词的准确性也有很大的依赖。对于文本的错别字,变形词等信息,需要在预处理阶段予以解决,分词算法的选择,未登录词以及歧义词的识别在一定程度上对关键词突提取会产生很大的影响。


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

相关文章

关键词提取算法

来源:《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…

阿里云服务器被挖矿程序minerd入侵的终极解决办法

突然发现阿里云服务器CPU很高,几乎达到100%,执行 top c 一看,吓一跳,结果如下: 3798 root 20 0 386m 7852 1272 S 300.0 0.1 4355:11 /tmp/AnXqV -B -a cryptonight -o stratumtcp://xmr.crypto-pool.fr:44…

如何更有效的消灭watchdogs挖矿病毒?华为云DCS Redis为您支招

2019独角兽企业重金招聘Python工程师标准>>> 漏洞概述 近日,互联网出现watchdogs挖矿病毒,攻击者可以利用Redis未授权访问漏洞入侵服务器,通过内外网扫描感染更多机器。被感染的主机出现 crontab 任务异常、系统文件被删除、CPU 异…

2t3ik与ddgs挖矿病毒处理

为什么80%的码农都做不了架构师?>>> http://ju.outofmemory.cn/entry/351669 转载于:https://my.oschina.net/lgfei/blog/1809898