itchat微信助手,kaggle 电影数据集分析,基于内容的电影推荐

news/2025/3/15 22:19:42/

项目的github地址:https://github.com/qihe777/itchatApplication

1.项目运行

配置完成环境后:(关于调用的服务接口所需要的秘钥我都没有修改,但为了你程序能一直运行最好自己申请相应的服务

运行项目:运行WeixinChat文件中的main方法
需要打开chrome浏览器,以及数据库处于运行状态。
打开时间大约为1分钟,因为需要先运行电影数据集分析。
打开完成后,需要扫描二维码进行登录,之后找其他人和你聊天完成测试。

出现问题请留言反馈。

2.项目成果演示:

1.操作说明:                                                                 2.对话功能                                 3.藏头诗功能:

                  

                      4.定时任务                                                         5.小冰颜值测试                                         6.小冰作诗

                

          7.电影排行榜                                   8.基于内容的电影推荐                                9.搜索电影详细信息

                     

2.环境和准备工作:

1.建立数据库:

a:定时消息数据库构建:
id:时间戳int(11)
给谁发消息,usrname varchar(256)
什么时候发 sendtime int(11)
发送什么 message text
CREATE table send(
id int(11) PRIMARY KEY,
usrname varchar(256),
sendtime int(11),
message text
)

b:电影排行榜表
电影id
电影名称

CREATE TABLE `movierank` (
 `id` int(11) PRIMARY KEY,
 `title` varchar(256) DEFAULT NULL,
)

2.申请阿里云产品:

智能语音交互,(来实现wav格式的语音转化为汉字):修改AccessToken文件中:init方法中的access_key_id ,access_key_secret以及change方法中的appKey。

3.申请图灵机器人权限

(完成图灵机器人和小冰对话功能):修改WeixinChat文件,gettuling方法中的apiKey。

4.配置ffmpeg环境

(用来将mp3格式语音转化为wav格式):参考https://blog.csdn.net/zhangpeterx/article/details/88581437

5.选取合适的chromedriver,并修改moviename文件中的spider类的init方法中的路径。

(用来使用selenium):参考https://blog.csdn.net/qq_26200629/article/details/86141131

6.python3.6环境。

3.可以做的优化:

1.当前只支持同时和一个人对话,因为偷懒只保存了单个状态变量,应该修改为使用字典存储临时变量。
2.增加定时提醒任务格式,且改为定时从数据库查询任务。
3.对某些耗时任务比如生成藏头诗等最好新建线程来完成。
4.模块重新整理,不太纯粹。
5.增加日志系统

4项目模块讲解:

因为有源码,所以自己去github上下载源码对照着看吧,我就不贴代码了

因为项目很简单,直接看代码就能看懂,我也不多bb,只介绍一下模块功能。

data文件为项目的数据集和rnn藏头诗的训练模型和chrome的启动程序。

代码一共7个文件,不同模块不同文件,6个文件中都为类,在WeixinChat脚本中调用这6个类。

1.itchat微信聊天模块:位于WeixinChat文件中。

可以参考官方文档,也可以参考这个总结:python实现微信接口(itchat)。

基本的回复逻辑在此文件的process方法中,通过全局的状态变量来确定当前进行到了哪一步。

2.语音转化文字模块:见AccessToken文件中VoiceChange类的change方法。

itchat下载语音:msg['Text'](msg['FileName'])保存的为mp3格式,需要使用ffmpeg来转化成wav格式,转换之后调用阿里云提供的功能接口进行转化。

参考:python 将MP3格式转换为WAV格式(ffmpeg安装,使用pycharm安装包)
AccessToken文件中的其他方法的原理请访问阿里云智能语音交互官方文档。

3.机器人聊天模块:见整个xiaobing文件和WeixinChat文件中的gettuling和bingreplay方法

图灵机器人请参考官方文档,小冰这个部分时我舍友直接从网上找的代码,忘记是谁的了。

xiaobing文件包括图片颜值测试和图片作诗功能。

4.定时任务模块:见WeixinChat文件send方法和process方法某一部分。

参考:Python 定时任务的实现方式,关于sched参考:python定时任务-sched模块

刚开始通过sched实现,发现会阻塞线程,然后又通过timer来完成的。

当前我只实现了一种格式:n分钟后提醒我xxxxx,直接通过正则匹配获取数据然后使用threading.Timer开启定时任务。虽然将信息保存到了数据库,但是数据库并没有参与定时任务的生成,只用来记录定时任务信息。

但是这样只支持短时间的任务生成。如果是长时间则需要开启线程来定时查询数据库,这样也更合适一些。

5.藏头诗模块:见rccpoem文件。

我们之前实验给的源码,我反正看不懂。

6.电影推荐模块:见movie文件。

参考文档:
1.TMDb 5000部电影数据的分析
2.Kaggle入门 - TMDB 5000 电影推荐数据分析
3.Movies Recommender System

第三篇文章写得非常不错,强烈推荐。

这三篇文章都有讲解,我的代码也有注释,我就不写讲解了,都是最基本的调接口。

github中有一个电影数据分析的notebook,可以参考。

7.电影详细信息模块:见moviename文件的search方法。

参考:[爬虫]使用selenium爬取豆瓣电影搜索结果,并存入MongoDB数据库中

因为电影推荐数据集是英文,所以我们需要将推荐出来的英文名字转化成中文。如何转化呢:通过豆瓣电影搜索,默认搜索出来的第一个电影就是我们要找的电影。豆瓣搜索:https://movie.douban.com/subject_search?search_text=avatar&cat=1002

我以为只是简单的路径截取就好,没想到数据是通过ajax加载的,找了半天也没找到json数据的url,所以只能通过selenium来模拟浏览器操作然后进行爬取了。

但是在测试的时候我发现了一个干扰项:搜索出来的第一个是个小组,不是电影,所以注意一下自己写的xpath语法。


http://www.ppmy.cn/news/865290.html

相关文章

中国首个虚拟学生入学清华大学!双商在线、颜值出众,你想跟她做同学吗?

点击上方“视学算法”,选择加"星标"或“置顶” 重磅干货,第一时间送达 来源:学校共青团、中国新闻网、新浪财经、科技日报、江苏共青团等 6月1日,清华大学迎来一位特殊的学生,名为华智冰,她是一位…

小冰公司CEO李笛:AI不会江郎才尽,创造力只会持续向上攀升丨MEET2022

编辑部 整理自 MEET 2022量子位 报道 | 公众号 QbitAI 从GPT-3到DALLE,AI在创作这件事上的进步速度,远超我们想象。 但有不少观点认为,相比围棋、电子游戏等知识领域,AI在创作上不仅比不过人类,甚至不具备真正的创造力…

【UE4 塔防游戏系列】01-前期准备

UE版本:4.24.3 课程视频链接:【虚幻4】UE4初学者进阶进阶教程(合集)-制作一个塔防游戏 1-8P(全)游戏单机游戏 步骤 1. 新建一个空白模板工程 2. 下载游戏资源 百度网盘 请输入提取码 提取码&#xf…

清华大学迎来中国首个原创虚拟学生华智冰:智商、情商双高,颜值出众

2021 年 6 月 1 日,清华大学计算机系知识工程实验室迎来了中国首个原创虚拟学生 — 华智冰,清华大学为她办理了学生证和邮箱。 报道称,华智冰智商和情商双高,可以作诗、作画、创作剧本杀,还具有一定的推理和情感交互的…

unity 通过 dll 传递字符串给python,实现小冰颜值鉴定

传入一个路径字符串(C#): public void PassXiaoIce() {try{string img_path "D:\XLS_AI_PRO\FaceTest\photo\11.jpg";Debug.Log(img_path.Length);string str GetIceJson(img_path,img_path.Length);Debug.Log("result_str…

php 颜值测试源码,微软小冰颜值测试PHP最新代码

/** * 微软小冰颜值测试 */ class IceFace { // 颜值测试首页 protected $page http://kan.msxiaobing.com/ImageGame/Portal?taskyanzhi; // 颜值测试接口 protected $api http://kan.msxiaobing.com/Api/ImageAnalyze/Process?serviceyanzhi; // 上传图片接口 protected …

小冰 · 颜值鉴定

标题 请求地址请求方式请求参数请求示例返回说明①.响应数据②.响应示例 请求地址 http://www.dreamling.xyz/API/QQ/facevalue_identification/api.php 请求方式 get/post 请求参数 参数说明必填可能的值imgurl图片链接truetype输出格式/text/json 请求示例 http://www.drea…

C++ 删除文件夹下所有内容

介绍一种删除文件夹下所有内容的实现方式(包括删除该文件夹)。 注:该文件夹下面,无论嵌套多少层文件夹或文件数据,都可以删掉 直接上代码: Tip: ①以*.*方式查找所有类型文件 ①do while方式进行…