基于TextRank的关键词提取算法

前沿

TextRank是一种文本排序算法,是基于著名的网页排序算法PageRank改动而来。在介绍TextRank前,我们先简单介绍下什么是PageRank。另外TextRank不仅能进行关键词提取,也能做自动文摘,这边文章以关键词提取为主,自动文摘部分后续补充。

一、PageRank原理

PageRank是用来计算网页重要性的,将每一个网页看作一个节点,将网页之间的链接看作是节点之间的有向边,网页的重要性取决于链接到它的网页数量以及这些网页的重要性。衡量网页重要性的公式说明如下:

二、TextRank原理

进行关键词提取时,TextRank算法思想和PageRank算法类似,不同的是,TextRank中时以词为节点,以共现关系建立起节点之间的链接,需要强调的是,PageRank中是有向边,而TextRank中是无向边,或者说是双向边。

什么是共现关系呢?将文本进行分词,去除停用词或词性筛选等之后,设定窗口长度为K,即最多只能出现K个词,进行窗口滑动,在窗口中共同出现的词之间即可建立起无向边。

基于TextRank提取关键词的主要步骤:

(1)把给定的文本T按照完整句子进行分割;

(2)对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词等。这些词形成候选关键词;

(3)构建候选关键词图G = (V,E),其中V为节点集,由(2)生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现;

(4)根据PageRank原理中的衡量重要性的公式,初始化各节点的权重,然后迭代计算各节点的权重,直至收敛;

(5)对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词;

(6)由(5)得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均属于候选关键词,则组合成“Matlab code”加入关键词序列。

基于TextRank的关键词提取算法相关推荐

  1. KeyBert、TextRank等九种本文关键词提取算法(KPE)原理及代码实现

    关键词提取 (Keyphrase Extraction,KPE) 任务可以自动提取文档中能够概括核心内容的短语,有利于下游信息检索和 NLP 任务.当前,由于对文档进行标注需要耗费大量资源且缺乏大规模 ...

  2. 短文本关键词提取算法RAKE TextRank及改进

    最近做的一个项目是短文本关键词提取(twitter, linkedin post),这里主要用到了两个算法,一个是TextRank, 一个是RAKE,总的来说,这两个算法思路上差别很大,但对于短文本的 ...

  3. 系统学习NLP(二十一)--关键词提取算法总结

    先说一下自动文摘的方法.自动文摘(Automatic Summarization)的方法主要有两种:Extraction和Abstraction.其中Extraction是抽取式自动文摘方法,通过提取 ...

  4. 关键词提取算法TextRank

    很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank. ...

  5. TextRank关键词提取算法

    参考:百度AI Studio课程_学习成就梦想,AI遇见未来_AI课程 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com) 1.关键词提取算法分类 1.有监督 将关键词提取 ...

  6. 广告行业中那些趣事系列60:详解超好用的无监督关键词提取算法Keybert

    导读:本文是"数据拾光者"专栏的第六十篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践.本篇从理论到实践介绍了超好用的无监督关键词提取算法Keybert,对于希望使用无 ...

  7. java 文本分析 关键词提取_文本关键词提取算法总结

    1.TF-IDF 昨天给大家演示简单的文本聚类,但要给每个聚类再提取一两个关键词用于表示该聚类.我们还是用TFIDF算法来做,因为这是比较简单的提取特征算法,不过这里的TF是指某词在本聚类内所有文章的 ...

  8. 关键词提取算法—TF/IDF算法

    关键词提取算法一般可分为有监督学习和无监督学习两类. 有监督的关键词提取方法可以通过分类的方式进行,通过构建一个较为完善的词表,然后判断每个文档与词表中的每个词的匹配程度,以类似打标签的方式,达到关键 ...

  9. 关键词提取算法之RAKE

    关键词提取算法之RAKE RAKE(Rapid Automatic Keyword Extraction)算法,作者Alyona Medelyan,她的GitHub上有很多关键字提取的项目. RAKE ...

最新文章

  1. jvm误区--动态对象年龄判定
  2. 《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(四)
  3. C++利用构造函数限制对象的创建
  4. 用自动阈值话处理SVM棋盘
  5. python 在软件自己自动输入-Python模拟百度自动输入搜索功能的实例
  6. PHP 8引入JIT支持,以提高CPU性能
  7. 今日恐慌与贪婪指数为74 等级转为贪婪
  8. 深度学习:文本检测数据集整理
  9. linux 联合编译,在Linux上编译UEFI SDK 2018/OVMF的方法
  10. 创业项目黄了,我靠着被废弃的副业项目,年收入45亿,将公司做到了200多亿市值...
  11. C语言进制转换以及原补反码位运算介绍
  12. IDEA 代码格式化设置
  13. 牛顿插值法,泰勒公式
  14. 从0开始的python学习:编译原理实验1:程序语言的重复率检查
  15. 笔记本拆机后无法开机是什么原因
  16. 命令方式查找ip地址、Mac地址
  17. 2021年IEEE Fellow刚刚放榜!84位华人学者当选再创新高!
  18. 计算机维修工技能培训课程,计算机维修工基本技能培训大纲.doc
  19. 2018腾讯游戏客户端岗位暑期实习生面试
  20. 数据库连接10060_MySQL错误:Can't connect to MySQL server (10060)

热门文章

  1. 《Flowable基础二 Flowable是什么》
  2. 公共基础知识计算机,公共基础知识计算机基础知识试题
  3. python带我起飞_【有书共读】python带我起飞读书笔记05
  4. 专家解读 | 数据中心,从“电老虎”走向“数字经济发动机”
  5. ML:MLOps系列讲解之《MLOps原则—迭代增量过程/自动化/持续部署/版本控制/实验跟踪/测试/监控/“ML成绩”系统/可再现性/松散耦合架构(模块化)/基于ML的软件交付指标等》解读
  6. 成功解决AttributeError: ‘Series‘ object has no attribute ‘name’
  7. 成功解决_catboost.CatBoostError: Bad value for num_feature: Cannot convert ‘b‘\x8f\x91‘‘ to float
  8. Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略
  9. 成功解决RuntimeWarning: invalid value encountered in double_scalars
  10. hyperopt中文文档:Recipes