python麻辣香锅菜品推荐

1.推荐算法概述

        推荐算法出现得很早,最早的推荐系统是卡耐基·梅隆大学推出的Web Watcher浏览器导航系统,可以根据当的搜索目标和用户信息,突出显示对用户有用的超链接。斯坦福大学则推出了个性化推荐系统LIRA.AT&T实验室于1997年提出基于协作过滤的个性化推荐系统,通过了解用户的喜好和需求,能更精确地呈现相关内容。
        在Facebook自2006年开始引领互联网社交新潮流之后,推荐系统真正与互联网产品相结合。加之亚马逊、淘宝等主营电商的互联网产品改变了网民的社交生活方式,推荐算法在社交、电商等产品中被运用得风生水起。
        根据亚马逊网站的数据统计,在已购买的网站用户中,原本就有明确购买意向的仅占6%。如果商家能够把满足客户模糊需求的商品主动推荐给客户,就有可能将客户的潜在需求转化为实际购买需求。因此,根据用户的兴趣、爱好、购买行为等特征进行商品推荐的推荐系统应运而生,并被广泛使用。
        目前,大型电子商务网站(如Amazon、淘宝)、音乐播放软件(如网易云音乐、虾米音乐)以及大型视频网站等都有内置的推荐系统。在购物网站上,当用户浏览或购买了某些物品后,经常会弹出新的物品供选择。如图7.2所示,一位客户刚在Amazon上浏览了乐高积木,马上看到系统推荐给他相关产品。顾客在淘宝网站收藏了一张实木书桌,平台会推荐一系列相关的设备。为什么电子商务平台那么了解你?你总是很容易看到感兴趣的新闻,听到符合自己风格的音乐呢?
        这背后就是推荐系统平台在工作。推荐系统首先收集、处理客户的数据,通过分析客户的特征,为客户推荐最合适的商品。
        推荐系统的核心工作是使用特定的信息分析技术,将项目推荐给可能感兴趣的用户。了解用户的兴趣爱好是推荐系统最重要的一个环节。如何把用户的行为进行量化,得到每个用户的特征偏好,也是一个难题。各商业模式下,用户偏好都是一个比较复杂的指我不同的企业有自己统计用户偏好的方法,计算也各不相同。

2.问题描述

小明经常到一家店去吃麻辣香锅,如图7.6所示。最近,这家店的老板开发了一个菜品推荐程序。老板先整理出店里各种菜的口味特点,如脆的、甜的、辣的等记
推荐他可能喜欢的其他菜品。    录到数据文件中,在小明点菜时,程序分析小明的历史评价得知小明喜欢的菜品,许据此推荐他可能喜欢的其他菜谱

3.问题分析

推荐算法使用的是各个菜品的口味特征(taste),为文本类型。可以考虑构建 taste特征的tidf矩阵,对文本信息向量化处理。然后使用距离度量方法,计算相似度,进行推荐。 

 4.python代码实现

import pandas as pd 
from numpy import *
from sklearn.feature_extraction.text import TfidfVectorizer
#1.读取数据
print('Stepl: read data...')
food=pd.read_csv('hot-spicy pot.csv') 
food.head(10)
#2.将菜品的描述构造成TF-IDF向量 print('Step2:make TD-IDF...')
tfidf=TfidfVectorizer(stop_words='english') 
tfidf_matrix=tfidf.fit_transform(food['taste']) 
tfidf_matrix.shape
#3.计算两个菜品的余弦相似度
print('Step3:compute similarity...')
from sklearn.metrics.pairwise import pairwise_distances
cosine_sim=pairwise_distances(tfidf_matrix,metric="cosine")
#推荐函数,输出与其最相似的10个菜品
def content_based_recommendation (name,consine_sim=cosine_sim):idx=indices[name]sim_scores=list(enumerate(cosine_sim[idx]))sim_scores=sorted(sim_scores,key=lambda x:x[1]) sim_scores=sim_scores[1:11]food_indices=[i[0] for i in sim_scores]return food['name'].iloc[food_indices]
#4.根据菜名及特点进行推荐
print('step4:recommend by name...')
#5.建立索引,方便使用菜名进行数据访问
indices=pd.Series(food.index, index=food['name']).drop_duplicates()
result=content_based_recommendation("celery")
result

运行结果

可以看出,对于小明评分较高的“芹菜”,系统能够推荐出相似度较高的菜品。

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

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

相关文章

Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普

引言: 今天我们聊聊Android生态中最“硬核”的话题:通用内核镜像(GKI)与内核模块接口(KMI)。这是内核碎片化终结者的秘密武器,解决了内核和供应商模块之间无尽的兼容性问题。为什么重要&#x…

UE 像素流Pixel Streaming笔记

参考 UE 像素流Pixel Streaming基本介绍和使用方法 UE4-PixelStreaming(虚幻引擎4-像素流)笔记 UE 像素流常用回调 UE 像素流通信 这链接能学到不少像素流的东西 使用 1.像素流连接成功(On New Connection) 必须使用GetPixe…

Java 资源管理教程:掌握 close 方法、Cleaner 类与 Runtime.addShutdownHook

在 Java 编程中,高效地管理资源是至关重要的,特别是当你处理文件、数据库连接、网络连接等有限资源时。为了确保这些资源得到正确释放,Java 提供了多种机制。本教程将深入探讨 close 方法、Cleaner类以及 Runtime.addShutdownHook 方法&#…

ASP.NET Blazor部署方式有哪些?

今天我们来说说Blazor的三种部署方式,如果大家还不了解Blazor,那么我先简单介绍下Blazor Blazor 是一种 .NET 前端 Web 框架,在单个编程模型中同时支持服务器端呈现和客户端交互性: ● 使用 C# 创建丰富的交互式 UI。 ● 共享使用…

微信小程序使用上拉加载onReachBottom。页面拖不动。一直无法触发上拉的事件。

1,可能是原因是你使用了scroll-view的标签,用onReachBottom触发加载事件。这两个是有冲突的。没办法一起使用。如果页面的样式是滚动的是无法去触发页面的onReachBottom的函数的。因此,你使用overflow:auto.来使用页面的某些元素滚动&#xf…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证9)

测试数据库中只有之前记录温湿度及烟雾值的表中数据较多,在该数据库中增加AppUser表,用于登录用户身份查询,数据库表如下所示:   项目中安装SqlSugarCore包,然后修改控制器类的登录函数及分页查询数据函数&#xff…

【人工智能】:搭建本地AI服务——Ollama、LobeChat和Go语言的全方位实践指南

前言 随着自然语言处理(NLP)技术的快速发展,越来越多的企业和个人开发者寻求在本地环境中运行大型语言模型(LLM),以确保数据隐私和提高响应速度。Ollama 作为一个强大的本地运行框架,支持多种先…

Flutter:carousel_slider 横向轮播图、垂直轮播公告栏实现

安装依赖 carousel_slider: ^5.0.01、垂直滚动公告栏 import package:carousel_slider/carousel_options.dart;// 垂直滚动公告栏Widget _buildNotice() {return <Widget>[<Widget>[TDImage(assetUrl: "assets/img/home11.png",width: 60.w,height: 60.w…

图像去雾数据集的下载和预处理操作

前言 目前&#xff0c;因为要做对比实验&#xff0c;收集了一下去雾数据集&#xff0c;并且建立了一个数据集的预处理工程。 这是以前我写的一个小仓库&#xff0c;我决定还是把它用起来&#xff0c;下面将展示下载的路径和数据处理的方法。 下面的代码均可以在此找到。Auo…

C++ 面向对象(继承)

三、继承 3.1 继承的概念 基于一个已有的类 去重新定义一个新的类&#xff0c;这种方式我们叫做继承 关于继承的称呼 一个类B 继承来自 类 A 我们一般称呼 A类&#xff1a;父类 基类 B类: 子类 派生类 B继承自A A 派生了B 示例图的语法 class vehicle // 车类 {}class …

若依报错:无法访问com.ruoyi.common.annotation

无法访问com.ruoyi.common.annotation 若依的父工程的pom文件中设置了jdk为1.8&#xff0c;将idea的jdk也改为1.8即可。

< OS 有关 > 阿里云:轻量应用服务器 的使用 安装 Tailscale 后DNS 出错, 修复并替换 apt 数据源

VPS 配置 主机&#xff1a;vCPU x2, 512MB, 20GB位置&#xff1a;阿里云&#xff0c;日本.东京OS&#xff1a; ubuntu24.20 原因&#xff1a; 这篇是操作过程的记录文章。 2 个月前&#xff0c; 在阿里云买了台 vps 。当时本想放到韩国&#xff0c;因为它离北京近。 但最便…

小企业品牌塑造之困-中小企实战运营和营销工作室博客

小企业品牌塑造之困-中小企实战运营和营销工作室博客 在商业的广袤天地中&#xff0c;小企业如点点繁星&#xff0c;怀揣着成长为璀璨星辰的梦想。品牌塑造&#xff0c;无疑是它们迈向成功的关键路径。然而&#xff0c;现实却布满荆棘&#xff0c;众多小企业在品牌塑造的征程中…

HTML5 Canvas和JavaScript的3D粒子星系效果

HTML部分 基本结构包括<html>, <head>, 和 <body>标签。<title>标签设置了页面标题为“优化版3D粒子星系”。<style>块定义了一些基本样式&#xff1a; body&#xff1a;无边距&#xff0c;隐藏滚动条&#xff0c;黑色背景&#xff0c;禁用触摸…

65,【5】buuctf web [SUCTF 2019]Upload Labs 2

进入靶场 1,源代码 点击题目时有个就有个admin.php <?php // 引入配置文件 include config.php;class Ad{public $cmd;public $clazz;public $func1;public $func2;public $func3;public $instance;public $arg1;public $arg2;public $arg3;// 构造函数&#xff0c;用于初…

BLE透传方案,IoT短距无线通信的“中坚力量”

在物联网&#xff08;IoT&#xff09;短距无线通信生态系统中&#xff0c;低功耗蓝牙&#xff08;BLE&#xff09;数据透传是一种无需任何网络或基础设施即可完成双向通信的技术。其主要通过简单操作串口的方式进行无线数据传输&#xff0c;最高能满足2Mbps的数据传输速率&…

12_PlayerPrefs存储登录窗口逻辑_回调函数优化Lamd表达式

创建 登录窗口LoginWnd.cs 绑定 登录窗口LoginWnd.cs 编写 登录窗口LoginWnd.cs using UnityEngine; using UnityEngine.UI; //输入文本 命名空间 //功能 : 登录注册窗口 public class LoginWnd : MonoBehaviour{public InputField iptAcct;public InputField iptPass;public …

西门子【Library of General Functions (LGF) for SIMATIC S7-1200 / S7-1500】

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 通用函数库 (LGF) 扩展了 TIA Portal 中用于 PLC 编程的 STEP 7 指令&#xff08;数学函数、时间、计数器 等&#xff09;。该库可以不受限制地使用&#xff0c;并包含 FIFO 、搜索功能、矩阵计算、 astro 计…

每日一刷——1.20——准备蓝桥杯

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目一 请统计某个给定范围[L, R]的所有整数中&#xff0c;数字2出现的次数。 比如给定范围[2, 22]&#xff0c;数字2在数2中出现了1次&#xff0c;在数12中出现1次&#xff0c;在数20中出现1次&a…

会议签到系统的架构和实现

会议签到系统的架构和实现 摘要:通过定制安卓会议机开机APP呈现签到界面&#xff0c;并且通过W/B结构采集管理签到信息&#xff0c;实现会议签到的功能。为达到此目标本文将探讨使用Redis提供后台数据支持&#xff1b;使用SocketIo处理适时消息&#xff1b;使用Flask进行原型开…