gensim 实现 TF-IDF

目录

介绍

代码


介绍

TF-IDF(Term Frequency-Inverse Document Frequency)

含义:

  • TF (Term Frequency): 词频,是指一个词语在当前文档中出现的次数。它衡量的是词语在文档内部的重要性,直观上讲,一个词语在文档中出现越频繁,表明它对该文档内容描述的贡献越大。

  • IDF (Inverse Document Frequency): 逆文档频率,是一个词语在整个文档集合中的稀有度度量。IDF值由所有文档的数量除以包含该词语的文档数量,然后取对数得出。一个词语在越多的文档中出现,其IDF值就越小,反之,出现在少数文档中的词语IDF值较大,表示这个词具有更高的鉴别力。

TF-IDF计算公式:

TF-IDF = TF(t, d) * IDF(t)

其中,t是词语,d是文档。

优点:

  1. 突出重点:通过结合词频和逆文档频率,TF-IDF可以较好地突出文档中重要的、有代表性的词语,抑制常见但不具备独特意义的词语。

  2. 适应性强:适用于多种应用场景,如信息检索、文本分类、关键词提取等,能够在一定程度上消除文档长度差异对结果的影响。

  3. 计算简洁:基于简单的数学模型,易于理解和实现。

缺点:

  1. 忽视上下文:TF-IDF仅仅考虑了词语在文档内部和文档集合之间的相对重要性,但没有考虑词语间的关联性和语义关系,容易忽略词序和短语结构等信息。

代码

提取一段文本中的关键词,需要先分为对文本分割,一是怕文本太长,而是可能会影响结果;

再对每个句子分词,再开始词袋及下面模型;

这里没有踢掉停用词啥的

import jieba
from gensim import corpora, models# 文本预处理,将文档分为句子
text = '6月19日,《2012年度“中国爱心城市”公益活动新闻发布会》在京举行。' + \'中华社会救助基金会理事长许嘉璐到会讲话。基金会高级顾问朱发忠,全国老龄' + \'办副主任朱勇,民政部社会救助司助理巡视员周萍,中华社会救助基金会副理事长耿志远,' + \'重庆市民政局巡视员谭明政。晋江市人大常委会主任陈健倩,以及10余个省、市、自治区民政局' + \'领导及四十多家媒体参加了发布会。中华社会救助基金会秘书长时正新介绍本年度“中国爱心城' + \'市”公益活动将以“爱心城市宣传、孤老关爱救助项目及第二届中国爱心城市大会”为主要内容,重庆市' + \'、呼和浩特市、长沙市、太原市、蚌埠市、南昌市、汕头市、沧州市、晋江市及遵化市将会积极参加' + \'这一公益活动。中国雅虎副总编张银生和凤凰网城市频道总监赵耀分别以各自媒体优势介绍了活动' + \'的宣传方案。会上,中华社会救助基金会与“第二届中国爱心城市大会”承办方晋江市签约,许嘉璐理' + \'事长接受晋江市参与“百万孤老关爱行动”向国家重点扶贫地区捐赠的价值400万元的款物。晋江市人大' + \'常委会主任陈健倩介绍了大会的筹备情况。'
sentences = [sentence.strip() for sentence in text.split('。') if sentence.strip()]# 对每个句子进行分词
tokenized_sentences = [list(jieba.cut(sentence)) for sentence in sentences]# 创建词典并转化为词袋表示
dictionary = corpora.Dictionary(tokenized_sentences)
corpus = [dictionary.doc2bow(sentence) for sentence in tokenized_sentences]# 训练TF-IDF模型
tfidf = models.TfidfModel(corpus)# 计算TF-IDF值并提取关键词
keywords_freq = {}
for bow in tfidf[corpus]:for id, freq in bow:if dictionary[id] in keywords_freq:keywords_freq[dictionary[id]] = keywords_freq[dictionary[id]] + freqelse:keywords_freq[dictionary[id]] = freq# 结合词典信息,按TF-IDF值排序
keywords_tfidf = sorted(keywords_freq.items(), key=lambda x: x[1], reverse=True)# 提取前N个关键词
N = 10
print(keywords_tfidf[:N])

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

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

相关文章

用结构减法比较平面上4点结构的顺序

( A, B )---6*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有6个节点,AB训练集各由6张二值化的图片组成,A有4个点,B全是0.收敛误差7e-4,收敛199次,统计迭代次数平均值并排序。 如果行和列自由变换,迭代次数不…

区块链媒体:Web3.0突破7个爆款推广策略解析-华媒舍

Web3.0的概念代表着互联网的下一阶段发展,它将实现更加分散、安全、私密且能够实现无需中心化管理的网络生态系统。随着Web3.0的发展,推广策略也需要跟进并进行相应的创新。本文将为您介绍7个Web3.0时代的爆款推广策略,帮助你更好地了解和把握…

RM电控讲义【HAL库篇】(二)

8080并口模式是一种常见的计算机接口模式,主要用于LCD(液晶显示屏)模块。 在8080并口模式中,通信端口包括多种信号线,用于实现数据的读写和控制功能。主要的信号线包括: CS(片选信号&#xff…

NXP实战笔记(九):S32K3xx基于RTD-SDK在S32DS上配置 CRCIRQPower

目录 1、CRC概述 1.1、CRC配置 1.2、代码示例 2、INTCTRL 3、Power 1、CRC概述 硬件CRC产生16或者32bit的,S32K3提供了可编程多项式与其他参数需求。 CRC图示如下 1.1、CRC配置 暂时DMA不怎么会用,所以没有启用DMA CRC的选择 这点需要十分注意&…

完美解决ubuntu+windows双系统下时间不正确问题

在同一台电脑上安装ubuntuwindows双系统时,会出现某个系统的时间不正确的问题,而由于windows同步时间实在是太慢了,如果不去解决,windows上的时间大概率一直都是不对的。 原因分析 windows采用LocalTime机制设置时间&#xff0c…

【力扣白嫖日记】178.分数排名

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 178.分数排名 表:Scores 列名类型idintscoredecimal 在 SQL 中,id 是该表的主键。 …

stm32利用CubeMX实现外部中断触发数码管加减数

首先打开proteus绘制电路图,如下: 然后打开CubeMX,配置晶振和GPIO: 接下来就是生成keil工程文件,用keil打开。 新建一个desplay.h文件:下面是全部代码 #ifndef __DESPLAY_H #define __DESPLAY_H #endif#i…

索引大战:探秘InnoDB数据库中B树和Hash索引的优劣

欢迎来到我的博客,代码的世界里,每一行都是一个故事 索引大战:探秘InnoDB数据库中B树和Hash索引的优劣 前言B树索引的深度解析Hash索引的奥秘揭晓性能对比分析 前言 在当今软件开发的世界中,数据库扮演着至关重要的角色。而InnoD…

QYWX企业微信的公告信息限制保存pdf的破解

公司使用企业微信好几年,重大的消息使用公告信息这个模块。可重要的消息无法保存,只能在线收藏。这个玩意只考虑到了维护企业利益,无视员工利益。 后来发现可以利用windows的虚拟打印机,将公告打印成pdf。 用了一段时间&#xf…

[算法沉淀记录] 排序算法 —— 冒泡排序

排序算法 —— 冒泡排序 基本概念 冒泡排序是一种简单的排序算法。它重复地遍历要排序的列表,一次比较两个元素,并交换它们的位置,如果它们不是按照升序排列的。这步遍历是重复进行的,直到没有再需要交换,也就是说该…

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构 #知识点: 1、SQLMAP-常规猜解&字典配置 2、SQLMAP-权限操作&文件命令 3、SQLMAP-Tamper&使用&开发 4、SQLMAP-调试指纹&风险等级 #参考文章: https://w…

代码随想录刷题第41天

首先是01背包的基础理论,背包问题,即如何在有限数量的货物中选取使具有一定容量的背包中所装货物价值最大。使用动规五步曲进行分析,使用二维数组do[i][j]表示下标从0到i货物装在容量为j背包中的最大价值,dp[i][j]可由不放物品i&a…

wpf 数据绑定 数据转换

1.概要 数据绑定&#xff0c;有时候绑定的数据源和目标的数据类型不同&#xff0c;这时候就需要转换。 2.代码 2.1 xaml(eXtensible Application Markup Language) 可扩展应用程序标记语言 <Window x:Class"WpfApp6.MainWindow"xmlns"http://schemas.mi…

【设计模式】策略模式及函数式编程的替代

本文介绍策略模式以及使用函数式编程替代简单的策略模式。 策略模式 在策略模式&#xff08;Strategy Pattern&#xff09;中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式定义了一系列算法或策略&#xff0c;并将每个算法封装在独立…

《论文阅读》利用提取的情感原因提高共情对话生成的内容相关性 CCL 2022

《论文阅读》利用提取的情感原因提高共情对话生成的内容相关性 前言简介模型架构情绪识别情绪原因提取实验结果示例总结前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Using Extracted Emotion Caus…

Day04 嵌入式---基本定时器

定时器概述 1、软件定时原理 使⽤纯软件的⽅式实现定时功能。 存在的问题&#xff1a;定时不太精准。CPU死等。 1&#xff09;压栈出栈需要花费时间 2&#xff09;ARM流⽔线体系架构的原因 2、定时器定时原理 使用精准的时基&#xff0c;通过硬件方式&#xff0c;实现定…

3d Slicer软件一种新的体绘制方式

vtk Multi-Volumne试验性体绘制方式&#xff0c;细节更丰富&#xff0c;影像更清晰&#xff0c;值得学习使用

前端本地化部署

前言 现在成熟的前端团队里面都有自己的内部构建平台&#xff0c;我司云长便是我们 CI/CD 的提效利器。我先来简单介绍下我司的云长&#xff0c;此云长非彼云长&#xff0c;云长主要做的是&#xff1a;获取部署的项目&#xff0c;分支&#xff0c;环境基本信息后开始拉取代码&…

Java ExecutorService 线程池(IO密集型、CPU密集型建议)

注&#xff1a;这是我很久之前在博客里面看到的&#xff0c;忘记是哪一篇了&#xff0c;分享一下 测试响应耗时 private String test1() {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}return "test1";}private String test2() …

java基于redis实现分布式锁

文章目录 前言一、redis二、Redisson1.引入库2. 分布式锁3. 锁自动续期 总结 前言 上篇文章介绍了Java中锁的应用,在SpringBoot单体应用中完全够用,但是SpringCloud微服务集群中就力所不及了。 我的使用场景是某些微服务应用中使用spring注解的形式来完成定时任务的功能,服务集…