TextRank文本摘要算法
摘要提取:对文本进行降维处理
内容参考:
https://www.bilibili.com/video/BV1UR4y1E7fa?spm_id_from=333.337.search-card.all.click
TextRank-文本摘要算法
TextRank基于图的排序算法,来源于谷歌的PageRank算法,把文本单元分割成若干组成单元(单词或句子)并建立图模型,利用投票机制对文本的重要成分进行排序,仅仅利用****单篇文档本身的信息就可以实现关键词提取,摘录。和LDA,HMM等模型不同,TextRank不需要对多篇文档进行训练。
基于TextRank的关键词提取
从一端给定的文本自动抽取有意义的若干词语或词组,TextRank算法是利用局部词汇之间的关系(共现窗口)对后续关键词进行排序,直接从文本本身抽取:
- 给定文本T按照完整句子进行分割
- 每个句子进行分词和词性处理,并过滤掉停用词,只保留指定词性的单词,保留后的词为候选关键词
- 构建候选关键词图,G=(V,E)其中V为节点集,由步骤2中生成的候选关键词组成,然后采用共现关系构造任意两点之间的边,两个节点之间存在的边仅当他们对应的词汇在长度为K的窗口中共现。K表示窗口大小,即最多共现K个单词。
- 根据上面的公式,初始化各个节点的权重,迭代计算各个节点的权重,直至收敛。
- 对节点权重进行倒叙排列,从而得到最重要的T个但系,作为候选关键词
- 由步骤5得到的关键词,在原始文本中进行标记,若形成相邻词组则组合成多次关键词
基于TextRank的文本摘要
基于TextRank的文本摘要属于自动摘录,通过选取文本中重要度较高的句子形成文摘,其主要步骤如下:
- 预处理-将输入的文本或文本集的内容分割成句子得T=[S1,S2,S3····Sm],构件图G=(V,E)其中V为句子集,对句子进行分词,去除停止词,得到Si = [ti1,ti2,ti3,ti4,·····],其中tij是保留后得候选关键词
- 句子相似度计算,构建图G中的边集E, 基于句子间的内容覆盖率,给定两个句子Si,Sj,采用相似度计算公式进行计算
.
若相似度大于给定的阈值,就认为两个句子语义相关并将它们连接起来,即边的权值 - 句子权重计算:根据公式,迭代传播权重计算各句子的得分
- 抽取文摘句,将3得到的句子进行倒序排序,抽取重要度最高的T个句子作为候选文摘句
- 形成文本摘要:根据字数或句子数要求,从候选文摘句中抽取句子组成摘要
实验步骤:
实验目标:
1.导入依赖库
from gensim.summarization import summarize
2.加载数据
file = r'path'
with open(file,'r')as f:content = f.read()
3.文本截取
# 设置开始字符串和结束字符串
start_string = ''
end_string = ''
contents =
4.文本清理-使用正则表达式
# 空格 替换 n
5.输出文本摘要
# 调用Gensim TextRank 文本摘要算法,执行文本摘要
gensim.summarization.summarizer.summarize(text,ratio=0.2, word_count = None, split = False)
# text为输入文本
# 重要 : ratio 这是摘要中所要求的句子数与输入文本数句子的比值 (摘要比例设置为0.2。提取原文档20%的文档)
第二种文本处理 方式
6.加载数据
加载wiki.txt数据,以实际数据存储路径为准
7.文档清洗
8.输出文本摘要
文本分析
TextRank文本摘要算法相关推荐
- python文本摘要_TextRank 文本摘要算法Python 实现
TextRank 文本摘要算法Python 实现(TextRank for Text Summarization) import math import numpy as np "" ...
- 文本处理算法_关键词提取和文本摘要算法TextRank详解及实战
关键词提取和文本摘要算法TextRank详解及实战 写在前面 最近一直没有更新文章,实在惭愧.伴随着小老弟的职业方向由风控转向了NLP,后面的文章也会集中在NLP领域,希望大家能够继续支持~ 导读 本 ...
- 设计一个简单的[JS]文本摘要算法
引 网站cookie中有一段用户信息(包括微信用户信息,用户关联信息)的文本,使用entrance键存储,选择不同的条件后文本内容也不同,cookie上的值也会变化.本来的打算是通过将entrance ...
- 独家 | 基于TextRank算法的文本摘要(附Python代码)
作者:Prateek Joshi 翻译:王威力 校对:丁楠雅 本文约3300字,建议阅读10分钟. 本文介绍TextRank算法及其在多篇单领域文本数据中抽取句子组成摘要中的应用. TextRank ...
- 新手探索NLP(九)——文本摘要
转载自知乎https://zhuanlan.zhihu.com/p/67078700 文本摘要是一种从一个或多个信息源中抽取关键信息的方法,它帮助用户节省了大量时间,用户可以从摘要获取到文本的所有关键 ...
- 自动摘要生成(二):由PageRank转变而来的TextRank算法
一.瞎扯 这是我2019年写的第一篇博客,开篇说点题外话,翻了一下博客的记录,上一遍新闻自动摘要生成(一)的博客还是去年7月写的,这大半年的时间里,忙着秋招,忙着找工作,忙着实习,忙着完成毕业设计,以 ...
- 【自然语言处理基础技能(NLP)】jieba中文文本处理
1.基本分词函数与用法 # jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(un ...
- Bert超长文本分类、文本摘要
Bert大规模超长文本分类 长文本分类 文本摘要算法Textrank介绍 句子相似度计算 训练全部代码 分类结果 总结 长文本分类 文本分类是把文本打上对应的类别标签,在互联网中的应用场景很多,如评论 ...
- tfidf关键词提取_基于TextRank提取关键词、关键短语、摘要,文章排序
之前使用TFIDF做过行业关键词提取,TFIDF仅从词的统计信息出发,而没有充分考虑词之间的语义信息.TextRank考虑到了相邻词的语义关系,是一种基于图排序的关键词提取算法. TextRank的提 ...
最新文章
- win10用什么软件测试硬件,Win10系统下硬件设备检测工具的使用方法
- 2018-3-1 算法学习部分
- high severity error mysql_pg将运行日志导入表中的方法及时区问题解决
- Android之调用系统分享
- jit即时编译_热点中的即时编译器(JIT)
- [转]深入理解linux内核list_head
- JVM学习笔记-04-java历史-沙箱安全机制
- python金融数据怎么获取_class类怎样在python中获取金融数据?
- mysql8.0.19初始密码输入错误_MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子)...
- android用户界面之AlarmManager教程实例汇
- 马云自评英语水平;支付宝推刷脸支付;苹果研发基带芯片 | 极客头条
- Jenkins的Windows Slave的配置
- c语言文献,关于计算机C语言的外文文献
- 中鸣机器人走黑线_BOEBOT机器人走黑线任务处理过程以及反思
- pyScripter2.7 运行时提示远程解释器再初始化了
- 2022全新玖五社区系统源码V9.8版
- 基于Tablestore的Wifi设备监管系统架构实现 1
- HTML(超文本标记语言)——总结
- 三角法激光雷达测距原理
- 平移、旋转和缩放矩阵推导