【零基础入门AI:83%的文本推荐系统都在用的算法 TF-IDF】

什么是推荐系统?

在如今这个信息爆炸的时代,推荐系统是根据用户的信息或者行为,向用户推荐用户可能会感兴趣的内容。其中基于文本的推荐系统,比如搜索引擎,头条、微信这类资讯类应用的搜索功能,就是在一个文本库中,挖掘和提取每一条文本的特征,然后再计算出文本之间的相似度,从而推荐给用户。

在这类文本推荐算法中,非常重要且实用的算法之一就是本文的主题:TF-IDF。根据一份2015年的调查统计,83%的文本推荐系统都有采用TF-IDF。(实在没有找到更新的调查数据了…)

什么是TF-IDF?

TF-IDF(term frequency–inverse document frequency,词频-逆文档频率)是一种统计方法,用来评估一个关键字对于语料库中某一个文档的重要程度。

TF(Term Frequency)

TF(Term Frequency):词频表示某个关键字在某个文档中出现的频率。这个指标是对出现次数的归一化,以避免指标偏向长文档。频率越高,则这个关键字在该文档中的重要程度越高。

不过一些通用的词汇在所有的文档中出现的频率都很高,却并不能代表每个文档的特征,这就需要用IDF来度量并修正。

IDF(Inverse Document Frequency)

IDF(Inverse Document Frequency):逆文档频率指数表示关键字在整个语料库中的普遍程度。如果包含某个关键字的文档数量越少,则这个关键字的IDF越大,表示这个关键字对文档有很好的区分能力。

TF-IDF = TF * IDF

将每个关键字的TF值乘以IDF值,就是这个关键字的TF-IDF权重值。对语料库中的每个关键字都需要计算出对应的TF-IDF值,就得到了语料库的TF-IDF特征矩阵。某个关键字在某个文档中的高词频,以及该关键字在整个语料库的低文件频率,就会得出高权重的TF-IDF。

代码实现

在Python中,有一些现成的轮子可以用来计算语料库中的 TF-IDF,比如 NLTK、gensim 和 sklearn,我会比较推荐使用 sklearn,以下使用 sklearn 来举例说明计算 TF-IDF 的代码实现方式。

sklearn 中提供了三个关键的类来将文本转换为TF-IDF的特征矩阵:

  • CountVectorizer:将语料库转换为词频向量矩阵;
  • TfidfTransformer:将词频向量矩阵转换为TF-IDF的特征矩阵;
  • TfidfVectorizer:结合了CountVectorizer和TfidfTransformer的功能,首先计算词频,然后计算TF-IDF权重。

所以,如果从零开始处理文本数据,可以直接使用TfidfVectorizer,示例如下:

1  from sklearn.feature_extraction.text import TfidfVectorizer
2
3  # 语料库
4  corpus = [
5      'This is the first document',
6      'This is the second document',
7      'This is the third one',
8      'Is this the first document',
9  ]
10
11  # 创建TF-IDF向量化实例
12  vectorizer = TfidfVectorizer()
13
14  # 拟合并转换文本数据
15  tfidf_matrix = vectorizer.fit_transform(corpus)
16
17  # 打印TF-IDF特征名称
18  print("Feature names:", vectorizer.get_feature_names_out())
19
20  # 打印TF-IDF矩阵
21  print("TF-IDF matrix:\n", tfidf_matrix.toarray())

输出

1  Feature names: 
2   ['document' 'first' 'is' 'one' 'second' 'the' 'third' 'this']
3  TF-IDF matrix:
4   [[0.46979139 0.58028582 0.38408524 0.         0.         0.38408524  0.         0.38408524]
5   [0.42796959 0.         0.34989318 0.         0.67049706 0.34989318  0.         0.34989318]
6   [0.         0.         0.31091996 0.59581303 0.         0.31091996  0.59581303 0.31091996]
7   [0.46979139 0.58028582 0.38408524 0.         0.         0.38408524  0.         0.38408524]]

将其转换为更直观的表格来显示每个文档的特征关键字及权重如下:

文档关键字权重
This is the first documentfirst 0.58, document 0.47, this 0.38, the 0.38, is 0.38, third 0.00, second 0.00, one 0.00,
This is the second documentsecond 0.67, document 0.43, this 0.35, the 0.35, is 0.35, third 0.00, one 0.00, first 0.00,
This is the third onethird 0.60, one 0.60, this 0.31, the 0.31, is 0.31, second 0.00, first 0.00, document 0.00,
Is this the first documentfirst 0.58, document 0.47, this 0.38, the 0.38, is 0.38, third 0.00, second 0.00, one 0.00,

从结果中可以看出,“this”、“is” 和 “the” 这种在每个文档中都出现的通用词汇,权重都很低,而“first”、“second” 和 “third”这种可以很好区分文档的特征就被赋予了较高的权重。

TF-IDF 算法的缺陷

TF-IDF希望对大众化的、热门的词汇进行“惩罚”,强调物以稀为贵,从而实现更加个性化的推荐。但由于其结构简单粗暴,虽然易于实现,但也由此存在一些缺陷。

  • TF-IDF 是一种词袋模型,丢失了词汇的位置信息,比如一般出现在标题、首句、尾句的词汇应该会更重要一些,但TF-IDF丢失了这部分信息;
  • TF-IDF 没有考虑词汇的语义信息,每个词汇都是独立的计算词频和逆文档频率,无法处理一词多义或者一义多词的情况;
  • TF-IDF 受语料库的影响大,如果语料库中的关键字分布特征与待处理文档的关键字分布特征不同,那么TF-IDF算法的效果可能会很差。

最后如果您也对AI大模型感兴趣想学习却苦于没有方向👀
小编给自己收藏整理好的学习资料分享出来给大家💖
👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码关注免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉如何学习AI大模型?👈

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
在这里插入图片描述

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

图表示学习中的Transformer:Graphormer的突破

人工智能咨询培训老师叶梓 转载标明出处 在自然语言处理和计算机视觉等领域,Transformer架构已经成为主导选择。然而,在图级别的预测任务中,它的表现并不如主流的图神经网络(GNN)变体。这一现象引发了一个思考&#x…

轻松重置 MySQL 8.0 Root 密码的简便方法!

在Windows环境下安装MySQL数据后,如果忘记了 MySQL 8.0 的 root 密码,不必担心!通过 --skip-grant-tables 和 named-pipe 模式登录后,只需几步简单的 SQL 命令即可重置密码:刷新权限表、修改密码、再刷新权限&#xff…

SpringBoot | Maven快速上手

文章目录 一、Maven1.1 Maven 简介:1.2 Maven 的核心功能:1.2.1 项目构建:1.2.2 依赖管理: 1.3 Maven 仓库:1.3.1 本地仓库:1.3.2 中央仓库:1.3.3 私服: 二、第一个 SpringBoot 程序…

数据处理与统计分析篇-day09-数据透视表与日期时间处理

一. 数据透视表 概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。 所进行的计算与数据跟数据透视表中的排列有关。之所以称为数据透视表,是因为可以动态地改变它们的版面布置&#…

智慧水利采砂船在线监控平台:构建高效、智能的河道采砂监管体系

随着科技的不断发展,水利行业的智慧化转型也日益受到重视。智慧水利采砂船在线监控平台便是这一转型的重要成果之一。该平台主要服务于水政执法人员,针对取得河道采砂许可证的采砂公司及采砂船,实施在线自动监控,旨在提高监管效率…

OSError: [Errno 16] Device or resource busy: ‘.nfs*‘报错解决办法

目录 1 项目场景&问题描述:2 原因分析:2.1 问题背景: 3 解决方案:3.1 创建存放临时文件的目录3.2 使用该目录3.2.1 设置环境变量 TMPDIR3.2.2 运行时设置(推荐)3.2.3 代码中设置 4 总结 1 项目场景&…

瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法

本文适用于触觉智能所有支持Android11系统的开发板修改第三方输入法为默认输入法。本次使用的是触觉智能的Purple Pi OH鸿蒙开源主板,搭载了瑞芯微RK3566芯片,类树莓派设计,是Laval官方社区主荐的一款鸿蒙开发主板。 一、安装输入法并查看输入…

CSS05-Emment语法

Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度,Vscode内部已经集成该语法。 作用: 1.快速生成HTML结构语法 2.快速生成CSS样式语法

linux 安装 tomcat9、java环境

一、安装 Java环境 1. 下载文件 https://repo.huaweicloud.com/java/jdk/ 或者网盘:通过网盘分享的文件:jdk-8u192-linux-x64.tar.gz 链接: https://pan.baidu.com/s/1V3pQWzgSLJxdrUdmmKueRA 提取码: qspw 2. 查看Linux系统是否有自带的jdk&#xf…

【TabBar嵌套Navigation案例-产品推荐-CollectionView的layout设置 Objective-C语言】

一、我们接着来做这个产品推荐页面啊 1.我们之前,把这个产品推荐页面做出来了,就是长的丑了点儿,所以呢,我们需要去给它设置一下itemSize啦,等等一些东西, 好,首先呢,在这个里边,我们找到我们的layout这块儿, 然后呢,这个layout里边,我们一个一个来设置, 首先呢…

Excel DATE函数怎么用,DATE函数的使用方法来了

大家好,这里是效率办公指南! 📅 在处理Excel中的日期数据时,我们经常需要创建特定的日期或从多个单元格中合并日期。DATE 函数是Excel中一个非常实用的工具,它可以帮助我们从年、月、日的单独信息中创建一个正确的日期…

Kylinsec操作系统

外网源 发布地址:http://mirrorlist.kylinsec.com.cn:8888/publicrepo/

Git(5):分支合并merge和rebase

git merge 假设有两个分支:master 分支和 feature 分支,现在需要将 feature 分支合并到 master 分支。 git checkout mastergit merge feature在合并分支时,git 提供了不同的合并策略,用于处理不同的合并场景。 Fast-forward 如…

《百家姓》中排名第八却是中国人口第一大姓-王姓

王姓在《百家姓》中虽然排名第八,但根据近年来的统计数据和实际人口分布,王姓已成为中国第一大姓。以下是对王姓作为“百家姓之首”的详细解析: 一、人口数量与分布 人口数量:截至当前时间(2024年)&#x…

Jmeter 配置元件-计数器时间变量

计数器 在 JMeter 中,计数器是一个非常有用的配置元件,可以帮助你在每次请求时生成递增的数字。 在线程组下新增计数器 配置计数器 开始值(Starting value):给定计数器的起始值、初始值,第一次迭代时&…

我们离生成式 AI 应用全面爆发还有多远?2024 全球产品经理大会透露了这些关键信号

GenAI 应用爆发何时到来、生成式 AI 应用到底该怎么做……大模型浪潮已经有将近两年的时间,去年狂卷模型,今年业内则一致认为是应用落地元年,但其间困惑诸多,产品人与创业者们该何去何从,答案尽在 2024 全球产品经理大…

Linux 常用命令(待更新)

1、pwd命令 2、cd命令 3、ls命令 4、locate命令 5、clear命令 6、cat命令 7、head命令 8、tail命令 9、grep命令 10、chmod命令 11、cp命令 12、mv命令 13、mkdir命令 14、rm命令 15、文件压缩和有关归档的命令 16、文件系统的命令 17、与系统管理相关的命令 …

七种修复错误:由于找不到msvcr110.dll 无法继续执行的方法

当你在运行某些程序时遇到“找不到msvcr110.dll”的错误提示,这通常意味着你的系统缺少了Microsoft Visual C 2012 Redistributable包中的一个重要文件。这个DLL文件是Microsoft Visual C Redistributable的一部分,用于支持许多使用Visual C编写的软件和…

Linux:文件描述符详解

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Linux中的所有进程,都拥有自己的文件描述符(File Descriptor, FD),它是操作系统在管理进程和文件时的一种抽象概念。每个文件描述符由一个非负整…

链接器查找其他动态库的过程

export LD_DEBUGall 2./your_program 这将输出所有的调试信息,包括搜索路径、库的加载、符号解析等详细信息。 关闭用unset LD_DEBUG 常用的 LD_DEBUG 选项包括: all: 输出所有调试信息。paths: 显示搜索路径信息。files: 显示文件打开和关闭的信息。…