# 即插即用的 Python 协同过滤推荐系统+MYSQL处理 **Repository Path**: q981160455/NLP ## Basic Information - **Project Name**: 即插即用的 Python 协同过滤推荐系统+MYSQL处理 - **Description**: 这是一个用python写的协同过滤推荐系统,它可以处理几十万上百万用户量级的基于物品的推荐。你可以决定它读取哪个mysql数据库的表格数据,也可以指定推荐结果将保存在哪个数据表格中!简单更改配置文件即可使用! - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 1 - **Created**: 2023-03-10 - **Last Updated**: 2025-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 即插即用的 Python 协同过滤推荐系统+MYSQL处理 #### 介绍 这是一个用python写的协同过滤推荐系统,它可以处理几十万上百万用户量级的基于物品的推荐。你可以决定它读取哪个mysql数据库的表格数据,也可以指定推荐结果将保存在哪个数据表格中!简单更改配置文件即可使用! #### 软件架构 软件架构说明 首先说明一下这个系统能做什么事情。 假设你有一张这个样子的表:(当然你的表应该在数据库里面,我只是方便展示截了个图) ![输入图片说明](picturesimage.png) 可以看到,proj_name 也就是项目名称,我这里的项目是采购交易,那么你的数据可以是一次电影评分项目,或者菜品评分项目,或者一次商品的交易项目。 call_unit 是采购方名称,你的数据可以是买家(也可以是卖家,也可以是物品)的名称或者ID。 region字段代表这个项目在哪个地区发生,如果没有这个字段则可以忽略 actual_price字段表示交易额,在你的数据里可以是评分等等数据 agent_unit_name 字段表示代理结构名称,在你的数据里可以是第二列买家、或者物品等等,如果没有则置空 provide_unit 代表的是供应商名称,在你的数据里可以是另一个实体的名称或者ID(卖家、物品等等) 我举个例子,如果你只有三列数据(也就是两个实体和一个评分),“买家”、“物品”、“评分”,你在表里的数据就把proj_name换成递增的自然数、call_unit设置为买家、region不 管、actual_price设置为评分,agent_unit_name设置为物品、provide_unit设置为空字符串即可。这样就可以实现买家和物品的相互推荐。 如果你跟我一样,一个项目里面会有三个实体产生关系,那么你就对应将call_unit、agent_unit_name、provide_unit这三列置为你的数据即可了 #### 使用教程 1. 首先,你得把你的表放到mysql数据库里面,这样比较接地气,你那个读excel表不切实际,数据一旦大了现在都没这么用的。如果你不了解mysql数据库建议搜索引擎搜一下然后简单安装一个navicat数据库查看软件。安装完毕之后,链接上你自己(公司)的数据库,上传前面提到的那个“项目表”,如果公司数据库原本就有这种类似的表,就比较方便了。 程序的起点就是读取这个表,请确保你的表大概像以下这样存放,字段的名称无所谓,可以不一样,缺失的数据一律置为空字符串。 ![输入图片说明](picturesimage2.png) 除此之外,需要你提前在数据库中建立好用于存放结果的表,它必须一定肯定不得不长这个样子: ![输入图片说明](pircturesimage4.png) 2. 然后打开我上传的 Controller.config 文件,记事本打开,或者任何文本编辑器打开都可。你会看到: ![输入图片说明](pircturesimage3.png) 填写的时候,不要改变冒号前面的字符,文件末尾不要有任何多余的字符 填写完毕之后,下载CollaborativeFiltering_WithConfig 文件(centos系统下载该文件,如果是windows则下载.py版本) 将Controller.config和下载的文件放在同一个目录下。 3. 在命令行中使用:./CollaborativeFiltering_WithConfig运行程序,windows端则使用python CollaborativeFiltering_WithConfig.py命令运行,也可以在pycharm等编译器中直接运行和更改代码。 4.然后需要你等待,大概每分钟可以处理5~15万条数据,结果会放到你在Controller.config 文件中指定的数据库结果表中: ![输入图片说明](picturesimage5.png) 其中recommend_object_JSON字段存放的是实体推荐的结果,你可以单独取出来看看: ![输入图片说明](picturesimage6.png) 那么你的推荐结果可能就是给买家推荐的物品及其综合分,给物品推荐的买家及其综合分 centos系统下的CollaborativeFiltering_WithConfig文件(超过文件大小限制了,传网盘,如果你是window系统直接用仓库里的.py就行,linux系统用这个): 链接: https://pan.baidu.com/s/17oBoZ8LtJLJyGBPOOlMPDQ 提取码: 55hy 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v3的分享 #### Contact me 有问题可以发邮件108547205@qq.com