原标题:利用Python实现摘要自动提取,完美瘦身只需一行代码

今天给大家推荐一个也可以用于关键字提取的算法TextRank,但主要实现的功能是快速从长篇新闻中抽取精准摘要。

前言介绍

TextRank是一个基于图排序的、用于文本处理的算法,通常使用PageRank作为其底层的图排序模型,当然其他的图排序模型也可以与其结合。

使用TextRank算法,不需要有深入的语言学和专业领域知识,因为它是一个无监督的算法。在文本中使用基于图的排序算法需要构建一张关系图来表达文本、词语以及其他实体。

在中文里面,词语、短语、整个句子等都可以作为图中的顶点,在这些顶点之间建立联系,如:词序关系、语义关系、内容相似度等,就能够构建一张合适的关系图。

目前,TextRank在中文文本中的应用主要有三个方向,分别是:

1)关键词提取;

2)关键短语提取;

3)自动摘要。

Python中有一个名为 textrank4zh 的包实现了这三个功能,其源码地址为:

https://github.com/letiantian/TextRank4ZH , 实现了不错的文本处理效果。

效果预览

最近,Tushare Pro 发布了近10年的CCTV新闻联播数据,对数据进行了清洗和规范。

但是,每天的新闻联播内容共有上万字,完全的读下来也是比较费劲。如果使用自动摘要技术把这上万字的内容浓缩成10个句子,阅读负担一下子就减轻了不少。而自动摘要正是 TextRank 的用武之地。

在实现功能之前,我们先来看看从新闻中提取的摘要效果。

得益于Tushare提供的新闻联播规范文本,TextRank自动摘要效果看起来非常不错。

为什么TextRank能有这么好的效果呢?这主要是因为图排序模型是基于全局信息来计算每个顶点的重要性,而不是仅仅使用局部信息。下面简单介绍一下TextRank应用于自动摘要的基本原理。

基本原理

前面已经说到,使用TextRank分析文本,首先需要在文本上构建一张图。

对于文本自动摘要任务,我们使用句子作为图的顶点,句子与句子之间的相互关系作为图的边。这里不能简单的用句子在文本中的前后关系来构建图的边,我们需要评估句子与句子之间的相似度,每个句子仅与它最相似的几个句子之间构成连接,并使用相似度作为边的权重。

事实上,两个句子相似,可以认为这两个句子之间存在一种“推荐”关系,即:读者读完这个句子后,这个句子推荐读者去读跟它相似的句子。

评估两个句子相似度的方法有很多,比如:余弦相似度、编辑距离等,在TextRank算法中使用的是最基本方法,通过计算两个句子中相同词语的数量来计算相似度,此外,可以加语法过滤器对词语进行过滤。

确定了图的顶点和边是什么,以及边的权重,一张加权图(weighted graph)就已经得到了,这个加权图的形状如图1所示。接下来就可以使用PageRank去迭代计算每个顶点(句子)的重要性。最后,将最重要的N个句子作为整个文本的摘要,这就是TextRank的自动摘要结果。

代码实现

由于textrank4zh已经实现了TextRank的功能,我们拿过来直接使用就可以,而且用法极其简单。

责任编辑:

python实现英文新闻摘要自动提取_利用Python实现摘要自动提取,完美瘦身只需一行代码...相关推荐

  1. 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...

    数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...

  2. python单词软件哪个好_利用Python分析背单词软件的惊人真相

    摘要:利用python分析背单词软件,揭秘你不知道的惊人真相 0×00 前言 你想知道背单词软件有大概多少人注册第一天都没有背完嘛 你想知道背单词软件这么火,这么多人在使用,真的有多少人真的在背诵嘛 ...

  3. python怎么去掉视频字幕_利用Python实现字幕挂载(把字幕文件与视频合并)思路详解...

    其实超简单超简单!python好现成的库,一下子省略了好多步骤! 本文在Windows环境下!linux只是不需要手动输入imagicmagick的位置! 需要用到的环境 python(基本上只要不是 ...

  4. python制作心形照片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  5. python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  6. python用渐变色画圆_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  7. python爬去百度文库_利用Python语言轻松爬取数据[精品文档]

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  8. python beautifulsoup抓取网页内容_利用Python和Beautiful Soup抓取网页内容

    利用Python和Beautiful Soup抓取网页内容 Posted on 2012-08-09 00:08 SamWei 阅读(381) 评论(1) 编辑 收藏 Python 3中提供了url打 ...

  9. python获取指定端口流量_利用python获取nginx服务的ip以及流量统计信息

    #!/usr/bin/python #coding=utf8 log_file = "/usr/local/nginx/logs/access.log" with open(log ...

最新文章

  1. 基础知识——测试代码(七)
  2. 深入理解RocketMQ:Consumer消费消息原理
  3. 糖尿病(消渴)的中药简见简方(转载)
  4. 微信小程序开发之路(一)
  5. C/C++:Windows编程—创建进程、终止进程、枚举进程、枚举线程、枚举DLL
  6. js获取一个月份最大天数和获取月的最后一天
  7. [代码]Delphi实现双击左CTRL键调用记事本
  8. .net 发送电子邮件
  9. 【皇甫】☀PPT里的小玩意
  10. 系统可用性量表评估问卷
  11. Abaqus Ncode振动疲劳分析教程
  12. 无法听到计算机发出的声音怎么办,为什么视频对方听不到我说话_电脑视频对方听不到声音的解决方法...
  13. 开源免费的C/C++网络库 c/c++ sockets library 七剑下天山
  14. Unity 特效:Particle System(粒子系统)
  15. NANK南卡降噪耳机和OPPO蓝牙耳机哪个更好呢?哪款更能打?
  16. 20230225在WIN10下安装PR2023失败的解决
  17. JavaEE:网络编程套接字
  18. Go语言为什么值得学习?
  19. linux装百度网盘不能运行,在Deepin系统中安装百度网盘的两种方法
  20. 解密红杉资本加密局,一个女人选择 ALL IN

热门文章

  1. Django实现微信小程序九宫格切图后端(第九周学习记录)
  2. 抱明月而长终;知不可乎骤得
  3. 微信二维码扫一扫打开手机外部浏览器打开指定HTML网页
  4. QNX系列:一、进程和线程
  5. mysql断开连接_MYSQL,使用什么命令可以断开所有用户的表连接?
  6. linux给文件夹加密码,如何使用linux命令给文件上锁?linux命令文件加密方法
  7. pacs通讯测试软件,全院级PACS系统模拟测试报告
  8. NOKIA 手机旺旺 nokia 5230手机旺旺 手机旺旺软件下载
  9. miui11稳定版获取完整root_MIUI11系统怎么样刷入开发版获得Root超级权限
  10. 漫威商业逆袭成功秘诀