当前位置: 首页 > news >正文

TextRank 算法

第1关:Jieba 在关键词提取中的应用

任务描述

本关任务:根据本关所学有关使用 Jieba 库进行关键词提取的知识,编写使用 Jieba 模块进行关键词提取的程序,并通过所有测试用例。

相关知识

为了完成本关任务,你需要掌握:

  1. Jieba 模块的使用;

  2. Jieba 提取关键词的方法。

Jieba 关键词提取

jieba 库是一款优秀的 Python 第三方自然语言处理库,在我们的实际开发过程中,jieba 库是我们的好帮手,本实训将介绍 jieba 在关键词提取方面的应用。再利用 jieba 进行关键词提取时,有两种方式,一种是基于 TF-IDF 算法,一种是基于 TextRank 算法。接下来我们具体介绍这两种方式。

基于 TF-IDF 算法的关键词抽取

TF-IDF 算法是一种统计方法,用以评估一个词语对于一个文件集或一个语料库中的一份文件的重要程度,即一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章。

示例:使用 jieba 中的 TF-IDF

 
  1. import jieba.analyse
  2. jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

函数中各个参数的具体含义为:

  • sentence 为待提取的文本;

  • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为20;

  • withWeight 为是否一并返回关键词权重值,默认值为 False ;

  • allowPOS 仅包括指定词性的词,默认值为空,即不筛选。

在使用 jieba 的 TF-IDF 算法时,需要注意的是,idf 的值是通过语料库统计得到的,所以,实际使用时,可能需要依据使用环境,替换为对应的语料库统计所得 idf 值;需要从分词结果中去除停用词;如果指定了仅提取指定词性的关键词,则词性分割非常重要,词性分割中准确程度,影响关键字的提取。

基于 TextRank 算法的关键词抽取

TextRank 采用图的思想,将文档中的词表示成一张无向有权图,词为图的节点,词之间的联系紧密程度体现为图的边的权值;计算词的权重等价于计算图中节点的权重;提取关键字,等价于找出图中权重排名 TopK 的节点。

示例:使用 jieba 中的 TextRank

 
  1. jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=("ns","n","vn","v")) # 直接使用,接口相同,注意默认过滤词性。
  2. jieba.analyse.TextRank() # 新建自定义 TextRank 实例

函数中各个参数的具体含义为:

  • sentence 为待提取的文本;

  • topK 为返回几个 TextRank 权重最大的关键词,默认值为20;

  • withWeight 为是否一并返回关键词权重值,默认值为 False ;

  • allowPOS 仅包括指定词性的词,默认值非空。

其基本思想为:将待抽取关键词的文本进行分词;以固定窗口大小(默认为5,通过 span 属性调整)、词之间的共现关系构建图;计算图中节点的 PageRank ,注意是无向带权图。

编程要求

在右侧编辑器中的 Begin-End 之间补充 Python 代码,使用 jieba 模块对所输入文本进行关键词提取,并输出前三个关键词。其中文本内容通过 input 从后台获取。

测试说明

测试输入: 以上信息提示,武汉疫情快速上升态势得到控制,湖北除武汉外,局部爆发的态势也得到控制,湖北以外省份疫情形势积极向好。下一步要从统筹推进疫情防控和经济社会发展出发,紧紧围绕社区防控和医疗救治两个重点,由全面防控向群专结合,精准防控转变。

预期输出:

 
  1. Building prefix dict from the default dictionary ...
  2. Dumping model to file cache /tmp/jieba.cache
  3. Loading model cost 1.309 seconds.
  4. Prefix dict has been built successfully. # 接口调用附加信息
  5. 疫情 武汉 湖北
import jieba.analyse
import warnings
warnings.filterwarnings("ignore")
sentence = input()# 任务:基于jieba中的TF-IDF算法完成对sentence的关键词提取,提取前三个关键词并以一行输出
# ********** Begin *********#kw = jieba.analyse.extract_tags(sentence,topK=3,withWeight=False,allowPOS=())
ans = ''
for w in kw:ans += w + ' 'print(ans)
# ********** End **********#

第2关:TextRank 算法

任务描述

本关任务:根据所学有关 TextRank 算法的知识,完成 TextRank 算法程序的编写并通过所有测试用例。

相关知识

为了完成本关任务,你需要掌握:

  1. PageRank 算法的思想;

  2. TextRank 算法的步骤与特点。

PageRank 算法

TextRank 算法的基本思想来源于 Google 的 PageRank 算法。因此在介绍TextRank 算法之前,我们先了解一下 PageRank 算法。PageRank 算法主要用于对在线搜索结果中的网页进行排序。让我们通过一个例子快速理解这个算法的基础。

图1

假设我们有4个网页——w1​,w2​,w3​,w4​。这些页面包含指向彼此的链接。有些页面可能没有链接,这些页面被称为悬空页面。

webpagelinks
w1[w4,w2]
w2[w3,w1]
w3[ ]
w4[w1]

如上表所示,各个网页之间的关系有:

  • w1​ 有指向 w2​、w4​ 的链接;

  • w2​ 有指向 w3​ 和 w1​ 的链接;

  • w4​ 仅指向 w1​ ;

  • w3​ 没有指向的链接,因此为悬空页面。

为了对这些页面进行排名,我们必须计算一个称为 PageRank 的分数。这个分数是用户访问该页面的概率。

为了获得用户从一个页面跳转到另一个页面的概率,我们将创建一个正方形矩阵 M,如图2所示,它有 n 行和 n 列,其中 n 是网页的数量。

图 2 正方形矩阵

矩阵中的每个元素表示从一个页面链接进另一个页面的可能性。如图3所示,高亮的方格包含的是从 w1​跳转到 w2​ 的概率。

图 3 概率正方形矩阵

如下是概率初始化的步骤:

  1. 从页面 i 连接到页面 j 的概率,也就是 M[i][j] ,初始化为1/页面i的出链接总数wi

  2. 如果页面 i 没有到页面 j 的链接,那么 M[i][j] 初始化为 0 ;

  3. 如果一个页面是悬空页面,那么假设它链接到其他页面的概率为等可能的,因此 M[i][j] 初始化为1/页面总数

因此在本例中,矩阵 M 初始化后如图4所示:

图 4 初始化后的矩阵

最后,这个矩阵中的值将以迭代的方式更新,以获得网页排名。

TextRank 算法

掌握了 PageRank 算法后,让我们理解 TextRank 算法。两种算法的相似之处列举如下:

  • 用句子代替网页;

  • 任意两个句子的相似性等价于网页转换概率;

  • 相似性得分存储在一个方形矩阵中,类似于 PageRank 的矩阵 M 。

图 5 TextRank 算法

TextRank 算法是一种抽取式的无监督的文本摘要方法。其步骤如下:

  1. 把所有文章整合成文本数据;

  2. 把文本分割成单个句子;

  3. 为每个句子找到向量表示(词向量);

  4. 计算句子向量间的相似性并存放在矩阵中;

  5. 将相似矩阵转换为以句子为节点、相似性得分为边的图结构,用于句子 TextRank 计算;

  6. 一定数量的排名最高的句子构成最后的摘要。

编程要求

在右侧编辑器中的 Begin-End 之间补充 Python 代码,实现 TextRank 算法,完成对所输入文本的关键词提取,输出前三个关键词。其中文本内容通过 input 从后台获取。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

测试输入: 在抗击新型冠状病毒的特殊时期,有这样一群人,面对疫情,他们逆向而行,穿梭在辖区的街头巷尾。一只口罩、一双手套,简单的防护措施,就是他们为自己武装的勇气。作为抗击疫情战场上不可或缺的组成部分,社区工作者们用爱筑起了疫情防控的第一道防线。

预期输出:

 
  1. Building prefix dict from the default dictionary ...
  2. Dumping model to file cache /tmp/jieba.cache
  3. Loading model cost 1.259 seconds.
  4. Prefix dict has been built successfully.# 接口调用的附加信息
  5. 疫情 防护 手套
from jieba import analyse
text = input() # 原始文本
# 任务:使用jieba模块中有关TextRank算法的模块完成对text中前三个关键字的提取并输出
# ********** Begin *********#kws = analyse.textrank(text)
ans = ''
i = 0 
for w in kws:ans+=w+' 'i+=1if i > 2:breakprint(ans)

相关文章:

TextRank 算法

第1关:Jieba 在关键词提取中的应用 任务描述 本关任务:根据本关所学有关使用 Jieba 库进行关键词提取的知识,编写使用 Jieba 模块进行关键词提取的程序,并通过所有测试用例。 相关知识 为了完成本关任务,你需要掌握…...

压缩wsl的磁盘占用空间

本文说的是wsl 2。 1. 关闭wsl,在cmd窗口中输入如下命令: wsl --shutdown 2. 接着输入:diskpart 这个命令会弹出新的窗口 3. 在新的窗口中输入: select vdisk file"d:\vos\unbutu\ext4.vhdx" 其中的 d:\vos\unbut…...

打破生态「孤岛」,Catizen将开启Telegram小游戏2.0时代?

Catizen:引领Telegram x TON生态的顶级猫咪链游 在区块链游戏领域,吸引玩家的首要因素往往是游戏的趣味性。然而,仅靠趣味性无法评估一个项目的长期价值和发展潜力。真正能在区块链游戏市场中取得长久成功的项目,无一例外都依靠扎…...

C++基础语法:类构造函数

前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 类是实现面向对象思想的主要方法.前面提到:类是函数的变种,类可以通过调用静态方法或者成员函数来实现逻辑.多数情况下使用成员函数.构造函数是生成类对象成员的必须条件,对此做一些构造函数的归纳 构造函数的目…...

Node.js单点登录SSO详解:Session、JWT、CORS让登录更简单

文章目录 一、SSO介绍1、使用SSO的好处 二、中间件介绍1、Express安装导入使用 2、cors安装导入配置 3、express-session安装导入配置使用 4、jsonwebtoken安装导入使用 5、jwt和session对比 三、SSO实现方案1、安装依赖2、结构3、实现原理 三、示例代码1、nodejs端 server/ind…...

提高Java应用稳定性的部署实践

提高Java应用稳定性的部署实践 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在实际的Java开发过程中,应用的稳定性是一个至关重要的问题。无论是…...

简过网:考公务员报班和不报班的区别大吗?

备考公务员,究竟是报班还是不报班呢?一篇文章让你看看两者之间的区别! 报不报班,其实这是很多考生都会纠结的地方,其实小编还是建议报个班的,这不仅仅是因为我是做这个行业的,更是因为这么长时…...

文化财经盘立方通达信期货通支撑压力自动画线多空转折指标公式源码

文化财经盘立方通达信期货通支撑压力自动画线多空转折指标公式源码: N:26; M:2; D:5; TR1:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:MA(TR1,N); MEDIANN:(HIGH LOW)/2; UP:MEDIANNATR*M; DN:MEDIANN-ATR*M; A:BARSLAST(C…...

重生之我要学后端11--数据库基础概念(持续更新)

数据库 前言一、关系型数据库二、非关系型数据库三、应用场景关系型数据库(RDBMS)非关系型数据库(NoSQL)综合因素 前言 后端开发者应该熟悉数据库管理系统(DBMS),包括关系型数据库(…...

配置 Cmder 到鼠标右键

win Q 快捷键搜索 cmd,以管理员身份运行 在命令行输入 cmder.exe /REGISTER ALL...

kali下安装使用蚁剑(AntSword)

目录 0x00 介绍0x01 安装0x02 使用1. 设置代理2. 请求头配置3. 编码器 0x00 介绍 蚁剑(AntSword)是一个webshell管理工具。 官方文档:https://www.yuque.com/antswordproject/antsword 0x01 安装 在kali中安装蚁剑,分为两部分&am…...

GIT-LFS使用

0.前言 目前git仓库有很多很大的文件需要管理,但是直接上传,每次clone的文件太大,所有准备使用git-lfs解决。 1、下载和安装 Git LFS 1.1、直接下载二进制包: Releases git-lfs/git-lfs GitHub 安装 Git LFS sudo rpm -ivh…...

免费分享一套SpringBoot+Vue在线水果(销售)商城管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue在线水果(销售)商城管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue在线水果(销售)商城管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue在线水果(销售)商…...

推荐两款电脑文件处理工具,强大到你不舍得卸载

EasyFileCount EasyFileCount是一款基于Java开发的多功能文件管理工具,旨在帮助用户更轻松地管理和优化他们的文件存储。以下是EasyFileCount的主要功能和特点: 查看文件夹大小:用户可以快速统计和查看文件夹的总大小,实时显示各…...

Python 高级实战:基于自然语言处理的情感分析系统

前言 在大数据和人工智能迅猛发展的今天,自然语言处理(NLP)作为人工智能的重要分支,已经深入到我们的日常生活和工作中。情感分析作为NLP中的一个重要应用,广泛应用于市场分析、舆情监控和客户反馈等领域。本文将讲述…...

ruby面试题

ruby 基础 1、each、map、collect的区别 each: 仅遍历数组,并做相应操作,数组本身不发生改变。 map:遍历数组,并做相应操作后,返回新数组(处理),原数组不变。 collect: 跟map作用一样。 collect! map!: 多了一个作…...

Android U Settings 应用中 APN 菜单实现的代码逻辑

功能简介 MobileNetwork移动网络设置页面下有【接入点设置】(APN)。 问题:为什么Controller初始化找不到pref,然后报错。 Note:什么时候切换成Controller的呢?在Android T&U 上还没有更新成kt实现 ,但是已经有Controller的方案。 流程逻辑 1、界面“telephony_a…...

java时间处理工具类

效果 最近7天:2024年6月21日-2024年6月27日过去一周、最近一周:2024年6月16日-2024年6月22日过去三个月:2024年3月-2024年6月近半年、过去半年:2023年12月-2024年6月去年:2023年1月-2023年12月过去3年:202…...

Android高级面试_2_IPC相关

Android 高级面试-3:语言相关 1、Java 相关 1.1 缓存相关 问题:LruCache 的原理? 问题:DiskLruCache 的原理? LruCache 用来实现基于内存的缓存,LRU 就是最近最少使用的意思,LruCache 基于L…...

docker封禁对外端口映射

docker比linux防火墙规则优先级要高,一旦在docker里面配置了对外服务端口的话在iptable里面封不掉,需要通过下面的方法进行封禁: 这里我的宿主机IP地址是10.5.1.244,docker 内部网络ip段是默认的172.17段的,以下为命令&#xff1…...

【leetcode系列】567.字符串的排列(滑动窗口)

题目 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 示例 示例 1: 输入:s1 “ab” s2…...

情感分析方法与实践

第1关:情感分析的基本方法 情感分析简介 情感分析,又称意见挖掘、倾向性分析等。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。在日常生活中,情感分析的应用非常普遍,下面列举几种常见的…...

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载(1)to_img 函数(2)数据加载(3)图像转换 3.随机读取图像进行预处理(1)函数参数(2)数据路径(3)读取文…...

【软件测试】对于测试中的bug,我们真正了解了吗?

目录 1.软件测试的生命周期 1.1.软件测试阶段流程 1.2.各流程的任务 2.什么是bug 2.1.bug的概念 2.2.怎么描述bug 2.3.bug的级别 2.4.bug的生命周期 1.软件测试的生命周期 在学习bug前,我们先来学习一下软件测试的生命周期,也就是测试人员进行测…...

Packer-Fuzzer一款好用的前端高效安全扫描工具

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、Packer Fuzzer介绍 Packer Fuzzer是一款针对Webpack…...

解决卸载TabX explorer软件后导致系统文件资源管理器无法正常使用问题

最近安装了最新版本的鲁大师,安装过程中不小心同时安装了捆绑软件TabX explorer。这个软件和系统自带的文件资源管理器很像,最后弹出会员到期才发现,这个不是系统文件资源管理器,是第三方的文件资源管理器,就按正常流程…...

qt for android 使用打包sqlite数据库文件方法

1.在使用sqlite数据库时,先将数据库文件打包,放置在assets中如下图: 将文件放置下android中的assets下的所有文件都会打包在APK中,可以用7zip查看apk文件 2.在qt代码读取数据文件,注意在assets下的文件都是Read-Only,需…...

MYBATIS大于等于、小于等于的写法

mybatis使用的是xml格式的文件。使用>和<号的时候&#xff0c;会存在与xml的标签的规范冲突。需要写成如下形式&#xff0c;否则会报错。 第一种写法 原符号 替换符号 < < < <> > > >& &amp; &…...

基于堆叠长短期记忆网络 Stacked LSTM 预测A股股票价格走势

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…...

SpringCloud Alibaba Sentinel基础入门与安装

GitHub地址&#xff1a;https://github.com/alibaba/Sentinel 中文文档&#xff1a;https://sentinelguard.io/zh-cn/docs/introduction.html 下载地址&#xff1a;https://github.com/alibaba/Sentinel/releases Spring Cloud Alibaba 官方说明文档&#xff1a;Spring Clou…...

华为云建站和阿里云建站区别/seo关键词词库

伴随着中国消费金融市场快速发展&#xff0c;欺诈问题已经逐渐显现。大数据是防治欺诈和老赖的最好手段&#xff0c;但在中国现阶段&#xff0c;大数据本身仍存在数据不全面问题&#xff0c;且大数据非常烧钱&#xff0c;目前还只是行业内巨头才能玩得起的奢侈品。应对欺诈和老…...

广州网匠营销型网站建设公司/b站推广形式

每晚10点&#xff0c;捕获技术思考和创业资源洞察​文|洪生鹏 编辑|静子01刚毕业时&#xff0c;到广州一家创业公司应聘软件开发岗位&#xff0c;公司规模不大&#xff0c;加上老板只有6个人&#xff0c;主要做教育平台&#xff0c;那时候的待遇&#xff0c;1500元&#xff0c;…...

招全国代理经销/台州seo网站排名优化

第一类&#xff1a;属性值为true可falseandroid:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:la…...

抖音电商/seo查询是什么

# 开始绘图 fig, ax1 plt.subplots() fig.set_size_inches(12, 6) plt.set_cmap(RdBu) # multiple line plot x np.arange(featureValuedf.shape[1]) # x坐标的范围 lw 4 # 控制线条的粗细 a, ax1.plot(x, featureValuedf.loc[Back].to_numpy(),linewidthlw, labelBack, ma…...

石家庄市官方网站/广告投放网站平台

首页 > 新闻中心发布时间&#xff1a;2020-11-13 21:29:55 导读&#xff1a;山东领旗环保科技为您提供嘉祥叠螺式污泥脱水机的相关知识与详情&#xff1a;山东领旗环保科技有限公司lq92xl主要生产&#xff1a;叠螺机,叠螺式污泥脱水机,车载式污泥脱水机等多款产品&#xff0…...

眉山网站建设/设计网站的软件

这是本系列第19篇文章&#xff0c;至此&#xff0c;Lightroom Classic的面板栏已经讲完了&#xff0c;今天来讲讲直方图与面板栏之间这一小条&#xff1a;工具栏。虽然这里有6个工具 &#xff0c;但我都放在一篇文章里讲&#xff0c;大家可以快速了解这些工具。这些工具很多与C…...