python 全文搜索 句子_python新玩法:用python进行文章摘要拿取,只需要一行代码

b7cad2fd36f06f301cf3b233e108ea3d.png

前言

今天为大家介绍一个python算法TextRank,实现从长篇中快速抽取精准摘要。

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

TextRank算法不需要深入的语言和专业知识,因为它是一种无监督算法。在文本中使用基于图形的排序算法,需要构造一个图形来表达文本、单词和其他实体。

在汉语中,单词、短语、句子等可以作为图中的顶点。通过建立这些顶点之间的关系,如词序关系、语义关系、内容相似性等,可以构造出一个合适的图。

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

1)关键词提取;

2)关键短语提取;

3)自动摘要。

Python中有一个名为textrank4zh的包,它实现了这三个函数。其源地址为:

实现了良好的文本处理效果。

效果预览

近日,Tushare Pro发布了近10年来央视新闻播出数据,对数据进行了清理和规范。

然而,每天新闻广播中有成千上万的单词,很难完全读懂。如果我们使用自动摘要技术将成千上万的单词浓缩成10个句子,阅读的负担就会减轻。自动汇总是TextRank的切入点。

在实现这个功能之前,让我们先来看看从新闻中提取的抽象效果。

38db0b02d5ebd4c1689acb393a2c5a65.png

32cf7ad6c39dc87aba164ac54c89287b.png
扣扣 :13465+25417

多亏了Tushare的新闻广播标准文本,TextRank的自动摘要看起来非常好。

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

基本原理

如前所述,使用TextRank分析文本首先需要在文本上构建一个图表。

对于文本自动摘要的任务,我们使用句子作为图的顶点,句子之间的关系作为图的边。我们需要评估句子之间的相似性。每个句子只与最相似的句子连接,并使用相似度作为边的权重。

事实上,这两句话是相似的,所以可以认为这两句话之间有一种“推荐”关系,也就是说,在读者阅读了这句话之后,这句话推荐读者阅读与之相似的句子。

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

通过确定图的顶点和边以及边的权值,得到了一个加权图,加权图的形状如图1所示。接下来,可以使用PageRank迭代计算每个顶点(句子)的重要性。最后,将最重要的N个句子作为全文的总结,这是TextRank的自动总结结果。

b646c745d835a6081cafdb9830b8b6ce.png

代码实现

因为textrank4zh已经实现了TextRank的功能,我们可以直接使用它,而且使用非常简单。

a1746194363ad35da6ef44bee43817e2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ajax 赋值 获取,ajax得到的数据赋值给js中的全局变量

在JS函数里面用了AJAX,然后就发现怎么里面都赋值不了给全局变量,原来是异步的问题,如下:我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢?原因其实很简…

Django小项目简单BBS论坛

开发一个简单的BBS论坛项目需求:1 整体参考“抽屉新热榜” + “虎嗅网” 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数、点赞数展示 5 在线用户展示 6 允许登录用户发贴、评论、点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论知识必备&#x…

时间转年月日_编程中常见的时间格式

时间格式前端和后端时经常会遇到各种各样的时间格式,这些格式在编写程序的时候都需要去使用不同的处理方式,这里集中写一下。先说一下各种不同的时间格式。类型名格式说明ISO 8601一般:2020-12-05T05:33:19Z 东八区:2004-05-03T17…

外星人台式机无盘服务器,可以拎走的“台式机” Alienware Area-51m评测

Alienware外星人这个品牌曾经一度是游戏笔记本领域的执牛耳者,自从1996年创立以来,品牌宗旨就是提供最强的PC性能,最有个性的设计和最好的服务。凭借着强悍的配置、创新的黑科技和酷炫的灯效,其一度是业内高端和高品质的代名词。但…

法流程图_世界五大学习方法之西蒙学习法

世界五大学习方法之西蒙学习法摘要:西蒙学习法为6个月可以掌握任何一门学问,它的本质是广义动量定理。广义动量定理通过调整力量、方向、作用点和时间来增加成果。西蒙学习法使用了降低问题难度方法中的一种:拆分。本节分为四个部分&#xff…

git 工具

https://www.kernel.org/pub/software/scm/git/ wget https://www.kernel.org/pub/software/scm/git/git-2.8.4.tar.xz https://git-scm.com/downloads/guis转载于:https://www.cnblogs.com/zengkefu/p/5573634.html

生成word_Word如何生成目录?3个步骤轻松掌握!

在使用Word编写长篇文档时,我们经常会给内容生成一个目录,有了目录,无论是阅读还是查找内容,都非常方便。Word生成目录是一项核心功能,这是每个使用Word的人,必须要掌握的一项技巧。如果你还不会这项技巧&a…

extern C的用法解析

http://www.cnblogs.com/xulei/archive/2006/11/12/558139.html转载于:https://www.cnblogs.com/xunbu7/p/5578681.html

启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明

内网穿透工具 FRP 公网服务端、内网客户端 frps.ini 、frpc.ini 配置文件常用设置展示及说明公网服务端 frps.ini 配置文件常用设置公网服务端配置文件:frps.ini[common]bind_port 7000# vhost_http_port 参数来设置 HTTP 访问端口,此处示例&#xff1a…

进程、线程相关知识点整理

什么是进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。 进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它…

设置dns_2019让你的网速飞起来,你需要……设置正确DNS服务篇

有时候上网明明网络连接正常,但网页访问却很慢?平时会不会经常听到一些老司机说,网络很慢啊可以修改一下DNS啊!什么是DNS?又为什么会对网速产生影响呢?跟着小编的教程一起来学习一下吧~PART 1 什么是DNS&am…

c/c++多线程编程中最好不要加volatile

来自https://www.zhihu.com/question/31459750 答主解释说:不能指望volatile能解决多线程竞争问题,除非所用的环境系统不可靠才会为了保险加上volatile, 或者从极限效率考虑来实现很底层的接口,这要求编写者对逻辑走向很清楚&…

5 随窗口改变大小_C4D默认界面两个关于坐标轴的窗口有什么区别

前言在一开始学习C4D的时候,就有这个疑问,为什么明明物体的属性都有了一个坐标属性的窗口了,还要有一个和坐标相关的窗口在默认的界面呢,后边在使用的过程中才慢慢理解了额外的坐标管理器窗口的作用,这一篇文章我们来看…

iOS  Emoji表情编码/解码

之前做弹幕的时候 遇到的表情编码解码问题 表情编码一般是使用unicode编码 ,编码之后的格式 \ud83d\ude18\ud83d\ude18world\u4e16\u754chaha\ud83d\ude17 //编码NSString *uniStr [NSString stringWithUTF8String:[_barrageText.text UTF8String]];NSData *uniDat…

时间单位的档案

时间单位的档案 2011-09-14 10:33:20分类: C/C 编辑: 李瑛 撰文/David Labrader [崔琳琳/译 曾少立/校]时间的单位可以从极小到极大,下面的描述是想传达一种超大时间跨度的感受。一渺秒(十亿分之一秒的十亿分之一)科学…

MySQL数据查询新人须知

MySQL 是一个开放源码的小型关系型数据库管理系统。 针对不同的用户,MySQL 一共分为两个不同的版本: MySQL Community Server(社区版服务器)。 MySQL Enterprise Server(企业版服务器)。 目前 Internet …

combobox异步加载 easyui_如何解决多条数据加载easyui-combobox样式反应慢的问题

问题描述总共一百条数据,数据中加入combobox样式,打开页面出现卡顿情况问题出现的环境背景及自己尝试过哪些方法一条数据,有三处地方用到combobox样式,如果有100条数据是,打开页面编辑这100条数据就会出现页面卡顿情况…

板邓:wordpress中add_action()和do_action()关系

学习wordpress插件开发的都知道很熟悉这两个函数&#xff0c;也是必须要掌握的&#xff01; 我们来看一下一段代码&#xff1a; <? add_action("wp_footer","hc_copyright_install");function hc_copyright_install() {echo"板邓wordpress开发&q…

(硬 核)Navicat for MySQL 介 绍( 入 门 须 知 )

Navicat for MySQL 是一款流行的 MySQL 图形化管理工具以下是 Navicat for MySQL 工作界面使用 Navicat for MySQL 连接 MySQL 服务器鼠标左键单击“连接”按钮&#xff0c;出现“新建连接”窗口。分别输入连接名、MySQL 服务器主机地址、服务 端口号、用户名和密码&#xff0c…

ubuntupython损坏_修复损坏的Python3.2安装(Ubuntu)

我愚蠢地从/usr/lib/python3.2中删除subprocess.py模块所以我试图通过执行以下命令来解决这个问题&#xff1a;sudo apt-get install python3但我刚刚犯了个错误&#xff1a;Traceback (most recent call last): File "/usr/bin/py3compile", line 33, infrom subpro…