Skip to content

Villsition/MyProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

电影推荐系统 基于MovieLens数据集的电影推荐Web应用,使用余弦相似度算法实现基于内容的电影推荐。

功能特点 电影搜索:实现搜索电影名称 智能推荐:基于电影类型相似度,返回Top-N相似电影 评分展示:显示电影平均评分,辅助用户决策 Web界面:简洁易用的网页交互界面 RESTful API:提供JSON格式的API接口

技术栈 后端框架:Python + Flask 数据处理:Pandas、NumPy、scikit-learn 数据存储:CSV文件(MovieLens数据集) 前端:HTML + CSS(简单样式)

项目结构 movie-recommendation/ ├── app.py # Flask主程序 ├── requirements.txt # 项目依赖 ├── README.md # 项目文档 ├── templates/ # HTML模板 │ ├── index.html # 搜索页面 │ └── results.html # 结果展示页面 └── ml-latest-small/ # 数据集文件夹(需自行下载) ├── movies.csv # 电影数据 └── ratings.csv # 评分数据

快速开始

环境要求 Python 3.8+ pip包管理工具

安装步骤 1.克隆项目 git clone https://github.com/Villsition/MyProject.git cd MyProject

2.安装依赖 pip install -r requirements.txt

3.下载数据集 从 MovieLens 下载 ml-latest-small 数据集 将解压后的 ml-latest-small 文件夹放到项目根目录 最终目录结构如上所示

4.运行应用 python app.py

5.访问应用 打开浏览器访问 http://127.0.0.1:5000

使用指南 Web界面使用 在输入框输入电影名称(如 "Toy Story") 选择推荐数量(默认为5) 点击"推荐"按钮 查看推荐结果

API调用

GET请求示例

curl "http://127.0.0.1:5000/api/recommend?movie=Toy%20Story&top_n=5"

返回JSON示例

{ "query": "Toy Story", "results": [ { "title": "Toy Story 2 (1999)", "genres": "Adventure|Animation|Children|Comedy|Fantasy", "avg_rating": 3.8 }, ... ] }

核心算法 基于内容的推荐 特征提取:将电影类型字段(如"Adventure|Animation")转换为独热编码向量 相似度计算:使用余弦相似度衡量电影之间的类型相似度 计算平均分:融合电影平均评分,使大众能够在搜索相似电影的同时看到相关电影的评分

相似度计算示例

from sklearn.metrics.pairwise import cosine_similarity similarity_matrix = cosine_similarity(feature_matrix)

性能优化 预计算相似度矩阵,启动后常驻内存 平均响应时间 <100ms

数据集说明 使用 MovieLens Latest Small 数据集: 电影数量:9,742部 评分数量:100,836条 用户数量:610位 时间范围:1995-2018年

待优化方向 集成Redis缓存,提升重复查询性能 增加更多特征(导演、演员、年份) 支持用户注册和个性化推荐 部署到云服务器,提供在线Demo 添加单元测试

联系方式 邮箱:3066959840@qq,com 个人主页:https://github.com/Villsition

致谢 MovieLens 提供的数据集 Flask 轻量级Web框架 scikit-learn 机器学习库

小贴士 如果遇到任何问题,请检查: Python版本是否3.8+ 依赖是否安装完整 CSV文件是否放在正确位置 端口5000是否被占用

如果这个项目对你有帮助,欢迎给个Star⭐!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors