位置: IT常识 - 正文

使用 TF-IDF 算法将文本向量化(tf-idf计算)

发布时间:2024-01-17
使用 TF-IDF 算法将文本向量化

推荐整理分享使用 TF-IDF 算法将文本向量化(tf-idf计算),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:tfidf算法改进,tf-idf方法,tf-idf计算,tfidf算法优点,tfidf算法原理,tf-idf例题,tf-idf例题,在tf-idf算法中,tf指,内容如对您有帮助,希望把文章链接给更多的朋友!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

TF-IDF 算法前言一、TF-IDF 是什么?含义理解:二、算法步骤1.统计每一篇文档中词的出现次数2.计算词频(TF)3.计算逆文档频率(IDF)4.计算TF-IDF总结前言

提示:这里可以添加本文要记录的大概内容:

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。

提示:以下是本篇文章正文内容,下面案例可供参考

一、TF-IDF 是什么?

TF-IDF 全称为 term frequency–inverse document frequency 算法分为两部分: 词频(TF) 和 逆文档频率(IDF)

1词频(TF) = 某个词在文章中的出现次数 / 文章总词数 2逆文档频率(IDF) = log( 文章总数 / (包含该词的文章数+1))

使用 TF-IDF 算法将文本向量化(tf-idf计算)

分成两部分理解的话就是,一个词的词频越高说明它越重要,逆文档频率越高说明它越普遍,越普遍则代表性越差。所以,词频与最终的权重呈正比,逆文档频率与最终的权重呈反比。

在使用 TF-IDF 算法之前,需要先对文本进行预处理,如分词、去除停用词。在运算之前,需要先统计每篇文章中的每个词语出现的次数。

含义理解:

就将下面三张图,用代码表示出来

二、算法步骤1.统计每一篇文档中词的出现次数

docList 是一个列表,包含整份数据(包含多篇文章)的信息;其中,列表的元素是字典类型,即列表包含多个字典元素,其中字典的结构为 词语:出现次数 ,所以,每个列表储存着一篇文章中词语出现次数的信息

def countWord(doc): 2 ''' 3 依次对所有文章进行统计,统计每篇文章中每个词的出现次数 4 doc: list 列表中一个元素为一篇文章的文本数据,str类型,空格间隔,含换行符 5 ''' 6 docList = [] 7 for item in doc: 8 wordDic = {} 9 wordList = item.strip().split() #将字符串转换成列表,一个元素一个词10 for word in wordList:11 wordDic[word] = wordDic.setdefault(word, 0)+112 docList.append(wordDic)13 return docList2.计算词频(TF)

词频(TF) = 某个词在文章中的出现次数 / 文章总词数

1例如: 2文章一:‘图书’: 34, ‘评论’: 12, ‘重视’: 2 3文章二:‘评论’: 7, ‘活动’: 4, ‘出版’: 5 4文章三:‘导致’: 2, ‘图书’: 12, ‘评论’: 9 5 6则 词频(TF) 为: 7文章一:‘图书’: 34/(34+12+2), ‘评论’: 12/(34+12+2), ‘重视’: 2/(34+12+2) 8文章二:‘评论’: 7/(7+4+5), ‘活动’: 4/(7+4+5), ‘出版’: 5/(7+4+5) 9文章三:‘导致’: 2/(2+12+9), ‘图书’: 12/(2+12+9), ‘评论’: 9/(2+12+9)

1def computeTF(wordDic): 2 ''' 3 计算一篇文章中每个词的词频 4 wordDic: dict 为 docList 的元素 5 ''' 6 #计算 total 7 total = sum(wordDic.values()) 8 #计算词频 9 tfDic = {}10 for word, value in wordDic.items():11 tfDic[word] = value / total1213 return tfDic14 TF = [] #所有文章的词频15 for wordDic in docList:TF.append(computeTF(wordDic))3.计算逆文档频率(IDF)

计算逆文档频率(IDF)

例如: 2文章一:‘图书’: 34, ‘评论’: 12, ‘重视’: 2 3文章二:‘评论’: 7, ‘活动’: 4, ‘出版’: 5 4文章三:‘导致’: 2, ‘图书’: 12, ‘评论’: 9 5 6则 逆文档频率(IDF) 为: 7’图书’: log(3/(2+1)), ‘评论’: log(3/(3+1)), ‘重视’: log(3/(1+1)), ‘活动’: log(3/(1+1)), ‘出版’: log(3/(1+1)), ‘导致’: log(3/(1+1)) 8 9针对 ‘评论’: log(3/(3+1)) 这个数据: 10分子 3 是一共有三篇文章;分母 3 是其中有三篇文章包含了词语 ‘评论’;分母 1 是防止分母为 0 的一种做法,如果能保证分母不为 0,此处不加一也无妨。

def computeIDF(docList): 2 ''' 3 计算每个词的逆文档频率 4 docList: list 5 ''' 6 #计算 total 7 total = len(docList) 8 #计算逆文档频率 9 idfDic = {}10 for wordDic in docList:11 for word, value in wordDic.items():12 if value > 0:13 idfDic[word] = idfDic.setdefault(word, 0)+114 for word, value in idfDic.items():15 idfDic[word] = math.log(total/value+1) #要先引入 math 库1617 return idfDic4.计算TF-IDF

TF-IDF = 词频(TF) * 逆文档频率(IDF)

对于每篇文章,将文章中的每个词对应的词频和逆文档频率相乘,结果就是 TF-IDF 的值

TF_IDF = []for i in TF: s = [] for j in i.keys(): if j in IDF.keys(): s.append({j:i[j]*IDF[j]}) TF_IDF.append(s)TF_IDF总结

相关参考链接: TF-IDF算法介绍及实现 TF-IDF算法详解 百度百科——tf-idf

本文链接地址:https://www.jiuchutong.com/zhishi/300332.html 转载请保留说明!

上一篇:如何在vscode里面快速运行html代码(包含如何在vscode里面编写html代码)(vscode nasm)

下一篇:最全面试题CSS(含答案)(css面试题及答案)

  • 华为荣耀9xpro可以换外屏吗(华为荣耀九xpro)

    华为荣耀9xpro可以换外屏吗(华为荣耀九xpro)

  • 华为nova5pro能无线充电吗(华为nova5pro能无线投屏吗)

    华为nova5pro能无线充电吗(华为nova5pro能无线投屏吗)

  • 小米盒子下载什么软件看电视直播(小米盒子下载什么可以看直播)

    小米盒子下载什么软件看电视直播(小米盒子下载什么可以看直播)

  • 苹果钱包添加卡无效(苹果钱包添加卡片无法连接applepay)

    苹果钱包添加卡无效(苹果钱包添加卡片无法连接applepay)

  • n3450相当于什么处理器(n3450什么水平)

    n3450相当于什么处理器(n3450什么水平)

  • ascii码是一种什么编码方式(ascii码是一种什么位码)

    ascii码是一种什么编码方式(ascii码是一种什么位码)

  • 4800u和4800h区别(4800u和4800uh)

    4800u和4800h区别(4800u和4800uh)

  • 网络攻击可分为被动攻击和什么(网络攻击可分为哪四种)

    网络攻击可分为被动攻击和什么(网络攻击可分为哪四种)

  • 商品已经下单没发货怎么办(已经下单了 但是没有货)

    商品已经下单没发货怎么办(已经下单了 但是没有货)

  • 抖音点过赞的怎么找(抖音点过赞的怎么取消点赞记录)

    抖音点过赞的怎么找(抖音点过赞的怎么取消点赞记录)

  • 数字签名和电子签名的区别(数字签名和电子签字)

    数字签名和电子签名的区别(数字签名和电子签字)

  • 买家旺旺号被降权能恢复吗(买家旺旺号被降权)

    买家旺旺号被降权能恢复吗(买家旺旺号被降权)

  • 微信公众号长时间不用冻结了怎么办(微信公众号长时间不用被冻结)

    微信公众号长时间不用冻结了怎么办(微信公众号长时间不用被冻结)

  • 华为spnal00是什么意思(spnal00是华为什么型号手机)

    华为spnal00是什么意思(spnal00是华为什么型号手机)

  • 抽象类和接口有什么异同(抽象类和接口有哪些)

    抽象类和接口有什么异同(抽象类和接口有哪些)

  • 华为手环能接电话吗(华为手环能接电话回微信吗)

    华为手环能接电话吗(华为手环能接电话回微信吗)

  • 触宝电话怎么用(触宝电话怎么使用)

    触宝电话怎么用(触宝电话怎么使用)

  • 图虫的视频怎么设置隐私(图虫的视频怎么导出)

    图虫的视频怎么设置隐私(图虫的视频怎么导出)

  • 在哪里查看手机的通用设置(在哪里查看手机出厂日期)

    在哪里查看手机的通用设置(在哪里查看手机出厂日期)

  • 微信可以发送多大的视频(微信可以发送多少字的内容)

    微信可以发送多大的视频(微信可以发送多少字的内容)

  • 快手怎么领猫粮(快手领猫粮怎么把验证取消)

    快手怎么领猫粮(快手领猫粮怎么把验证取消)

  • 手机型号不在鸿蒙首批升级名单怎么升级体验鸿蒙系统?(手机型号不在鸿蒙系统里)

    手机型号不在鸿蒙首批升级名单怎么升级体验鸿蒙系统?(手机型号不在鸿蒙系统里)

  • Linux系统中安装使用Bzip2来压缩文件的方法讲解(linux系统中安装web服务)

    Linux系统中安装使用Bzip2来压缩文件的方法讲解(linux系统中安装web服务)

  • 计入税金及附加的税种口诀
  • 如何查询外经证缴了多少税
  • 建筑公司增值税税率9%
  • 发票专用章盖在收据上有法律效益
  • 冲红发票怎么填写信息
  • 合伙企业应纳税所得额公式是什么
  • 车辆抵押贷款怎么做
  • 充值给予的优惠怎么用
  • 员工借款从工资扣除如何个税
  • 出售无形资产属于让渡资产使用权吗
  • 关于住宿费增值税专发票抵扣问题
  • 公司注销过了公示期不去有问题
  • 没有认证的进项发票怎么入账
  • 股票现金分红
  • 没有税率的发票怎么开
  • 增值税发票系统报税盘怎么用
  • 个体工商户开9%的税需要什么
  • 汽车的增值税可以退税吗
  • 企业所得税法的主要内容
  • 副调基金的会计分录怎么做?
  • 上月发生的费用本月报销记账
  • 设备固定资产原值
  • linux killall
  • 销售折让怎么开票
  • Olehelp.exe - Olehelp是什么进程 有什么用
  • 制造业成本核算明细表
  • php删除语句
  • 完美解决索尼电视arc无声音
  • 出租包装物和出售包装物有什么区别
  • 资产负债表应交税费计算公式
  • php sha1加密 解密
  • 个体工商户使用个人二维码收款违法吗
  • linux symbolic link
  • 帝国cms手机端点击加载不动怎么弄
  • 单项履约成本是什么意思
  • 收到银行结息收据3
  • mysql表设计原则
  • 劳务费合同模版
  • 博客首页设计
  • 织梦程序
  • 关于进项票少的解决方案
  • 收到税控系统技术维护费分录
  • db2 798
  • 兼职人员的个税怎么计算
  • 工伤保险退费了是什么意思
  • 单位购买的化妆品怎么用
  • 电话布线使用网络
  • 小微企业应纳税所得额100万到300万怎么计算
  • 开出银行承兑汇票一张,面值30000元,用于抵付
  • 增值税专用发票电子版
  • 员工加班打车费报销
  • 住宿补贴需要交个税吗
  • 固定资产折旧方法不考虑净残值
  • 怎么查对方是一般还是小规模
  • 备份数据还原不了怎么办
  • 数据库mysql索引
  • win7怎么设置桌面位置
  • ubuntu 挂载iso文件
  • linux系统 虚拟机
  • mac截图后怎么编辑
  • calctool
  • 要使用windows
  • xp系统怎么卸载驱动程序
  • windows xp.exe
  • msedge.exe是什么
  • win8windows设置在哪里
  • win7 windows检测到ip地址冲突怎么解决
  • win10未检测到任何网络硬件
  • win8电脑路由器网络受限怎么办
  • node一次执行多个文件
  • unity3d的
  • nodejs接入微信支付
  • NGUI之UILocalize
  • jquery网页设计作业
  • javascript有哪些常用的属性和方法
  • android 图形引擎
  • 汽车购置税网上缴纳流程
  • 残疾人交房产税有什么优惠
  • 江苏地税局官网网站
  • 电子专票在哪里接收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号