NLP - 关键词提取 - TextRank

  • 一、TextRank介绍
  • 二、PageRank介绍
  • 三、PageRank计算过程
  • 四、关键词提取任务

一、TextRank介绍

TextRank算法则可以脱离语料库的基础,仅对单篇文档进行分析就可以提取该文档的关键词。这也是TextRank算法的重要特点。TextRank算法的基本思想源于Google的PageRank算法。

二、PageRank介绍

PageRank 算法是一种网页排名算法,其基本思想有两条:

链接数量: 一个网页被越多的其他网页链接,说明这个网页越重要。
链接质量: 一个网页被一个越高权值的网页链接,也能表明这个网页越重要。

PageRank 考虑到不同网页之间,一般会通过超链接相连,B网页 链接越多,说明 B网页 的价值也就越大;权重是从某个网页链接出去的数量的倒数,数量越多,权重越小,好比是投票,某个人投出的票越多,说明这个人的票越没有含金量。

三、PageRank计算过程

假设:以下几个网页有这样的链接关系,给定每个网页相同的初始价值:


依次如下计算 S(VA),S(VB),S(VC),S(VD),S(VE)S(V_{A}), S(V_{B}),S(V_{C}),S(V_{D}),S(V_{E})S(VA​),S(VB​),S(VC​),S(VD​),S(VE​),迭代N次,得到网页的稳定价值,即网页排名。

上述计算过程比较复杂,用邻接矩阵表示图,简化运算:


G 就是表示上面图的邻接矩阵,列表示从网页链接出去的,行表示从网页链接进来的。例如:第一列表示,A 链接到 B 和 D ,第一行表示,B 链接到 A 。

通过标准化,我们可以计算出概率转移矩阵:

初始化:

每次的迭代公式转换为以下计算:

迭代过程中,由于 D 节点不存在外链,使得最终结果都趋于0, 因此加入阻尼,认为用户浏览到任何一个页面,都有可能以一个极小的概率转移到另外一个页面。

同理得到矩阵形式:

迭代100轮,基本收敛:

在 0.85 的阻尼系数下,大约 100 多次迭代就能收敛到一个稳定的值,而当阻尼系数接近 1 时,需要的迭代次数会陡然增加很多,且排序不稳定。

四、关键词提取任务

在这个任务中,词就是Graph中的节点,而词与词之间的边,则利用 “共现” 关系来确定。所谓“共现”,就是共同出现,即在一个给定大小的滑动窗口内的词,认为是共同出现的,而这些单词间也就存在着边。

举例:

淡黄的长裙,蓬松的头发 牵着我的手看最新展出的油画。

分词后:淡黄 长裙 蓬松 头发 牵 我 手 看 最新 展出 油画

给定窗口为2,则 “淡黄” 和 “长裙” 两个节点间存在边:

计算公式和 PageRank一样:

文本摘要提取关键句,使用以下公式:

其中相似度计算如下:

NLP - 关键词提取 - TextRank相关推荐

  1. “西游记之大圣归来”关键词提取-textrank

    功能 输出文本关键词以及热度值 工具 python2 spark2.0.2 数据集 两个字段(评论人,评论内容),480条短评: 结果 引言 textrank是一个基于词共现的算法,目前最新的spar ...

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

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

  3. TextRank中文,英文关键词提取

    1.基于pytextrank英文关键词提取 # pip install pytextrank # python -m spacy download en_core_web_sm import spac ...

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

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

  5. 实现中文分词、词性标注、关键词提取、句法分析等智能预处理

    实现中文分词.词性标注.关键词提取.句法分析等智能预处理的一个简单的小实验作业 实验报告 一.实验目的 二.实验环境 三. 实验内容(内容以txt1分析为例) 1.文本素材自动分词 (1)分词初步处理 ...

  6. 简明Jieba中文分词教程(分词、关键词提取、词性标注、计算位置)

    目录 0 引言 1 分词 1.1 全模式和精确模式 1.2 搜索引擎模式 1.3 HMM 模型 2 繁体字分词 3 添加自定义词典 3.1 载入词典 3.2 调整词典 4 关键词提取 4.1 基于 T ...

  7. 【NLP】文本关键词提取的两种方法-TFIDF和TextRank

    背景 前两天看到论文<Chinese Poetry Generation with Planning based Neural Network>中使用TextRank进行关键词提取.在阅读 ...

  8. 文本处理算法_关键词提取和文本摘要算法TextRank详解及实战

    关键词提取和文本摘要算法TextRank详解及实战 写在前面 最近一直没有更新文章,实在惭愧.伴随着小老弟的职业方向由风控转向了NLP,后面的文章也会集中在NLP领域,希望大家能够继续支持~ 导读 本 ...

  9. NLP学习笔记 01 分词、词性标注和关键词提取

    目录 1.1 准确分词 level1 使用jieba自定义词典 + 正则表达式准确分词 1.2 准确分词 level2 1.3 词性标注 1.4 关键词提取 1.1 准确分词 level1 中文自动分 ...

最新文章

  1. 学生党如何拿到阿里技术offer:《阿里面试(成功)》
  2. 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
  3. HTML5 Canvas 绘制六叶草
  4. java word在线预览_java 生成word文档并且在线预览的问题
  5. ZZULIOJ 1093: 验证哥德巴赫猜想(函数专题)
  6. android统计流量,Android 获取手机整体流量使用情况以及某个应用的流量的统计
  7. 改写自SqlHelper的SqliteHelper
  8. 学习chirp信号笔记
  9. 【算法/C语言】01背包问题(动态规划DP)
  10. Oracle 数据库sql语句修改表字段的字段类型和长度
  11. java 方法注释_Java注释,java方法注释详解
  12. jflash烧录教程_Jflash烧录(windows)原理分析
  13. 中职学校计算机专业宣传口号,中职学校文明宣传标语
  14. 再谈FEC与UDP可靠传输,音视频FEC 应用
  15. [Python] 字符串操作及方法总结
  16. Stanford CS224N: PyTorch Tutorial (Winter ‘21) —— 斯坦福CS224N PyTorch教程 (第二部分)
  17. 给简书找BUG赢好礼17.11.27——简书iOS 4.2.0 公测(全新简友圈、发现页;连载内容横空出世)...
  18. axios post object object_一套全面又有实际意义的axios封装+api管理方案
  19. 安徽继续教育计算机在线作业二,安徽继续教育《大学英语》在线作业答案.doc...
  20. Php 线性 非线性,非线性方程的线性化

热门文章

  1. 图文详解维感科技3D深度相机在AGV/AMR的应用(一)
  2. 网络中用户使用的计算机设备,网络管理设备
  3. GJB 5000B二级-CM配置管理
  4. 【进阶技术】一篇文章搞掂:Spring Cloud Stream
  5. 机器学习的评价方法PRF
  6. 图像处理与图像识别笔记(二)图像变换
  7. vcpkg安装freeglut(起因:#include <GL/glut.h>无法识别)
  8. TELE 4662 PHOTONIC NETWORKS -Lecture 3: Light Sources and Detectors-半导体(Semiconductor)
  9. Android 开发周志 其一
  10. 人大网院计算机在线考试答案,2018年12月计算机二级MSOffice操作题及参考答案