本文共 2300 字,大约阅读时间需要 7 分钟。
项目的github地址:
配置完成环境后:(关于调用的服务接口所需要的秘钥我都没有修改,但为了你程序能一直运行最好自己申请相应的服务)
运行项目:运行WeixinChat文件中的main方法。
需要打开chrome浏览器,以及数据库处于运行状态。 打开时间大约为1分钟,因为需要先运行电影数据集分析。 打开完成后,需要扫描二维码进行登录,之后找其他人和你聊天完成测试。出现问题请留言反馈。
1.操作说明: 2.对话功能 3.藏头诗功能:
4.定时任务 5.小冰颜值测试 6.小冰作诗
7.电影排行榜 8.基于内容的电影推荐 9.搜索电影详细信息
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, )智能语音交互,(来实现wav格式的语音转化为汉字):修改AccessToken文件中:init方法中的access_key_id ,access_key_secret以及change方法中的appKey。
(完成图灵机器人和小冰对话功能):修改WeixinChat文件,gettuling方法中的apiKey。
(用来将mp3格式语音转化为wav格式):参考
(用来使用selenium):参考
1.当前只支持同时和一个人对话,因为偷懒只保存了单个状态变量,应该修改为使用字典存储临时变量。
2.增加定时提醒任务格式,且改为定时从数据库查询任务。 3.对某些耗时任务比如生成藏头诗等最好新建线程来完成。 4.模块重新整理,不太纯粹。 5.增加日志系统因为有源码,所以自己去github上下载源码对照着看吧,我就不贴代码了
因为项目很简单,直接看代码就能看懂,我也不多bb,只介绍一下模块功能。
data文件为项目的数据集和rnn藏头诗的训练模型和chrome的启动程序。
代码一共7个文件,不同模块不同文件,6个文件中都为类,在WeixinChat脚本中调用这6个类。
可以参考官方文档,也可以参考这个总结:。
基本的回复逻辑在此文件的process方法中,通过全局的状态变量来确定当前进行到了哪一步。
itchat下载语音:msg['Text'](msg['FileName'])保存的为mp3格式,需要使用ffmpeg来转化成wav格式,转换之后调用阿里云提供的功能接口进行转化。
参考:
AccessToken文件中的其他方法的原理请访问阿里云智能语音交互官方文档。图灵机器人请参考官方文档,小冰这个部分时我舍友直接从网上找的代码,忘记是谁的了。
xiaobing文件包括图片颜值测试和图片作诗功能。
参考:,关于sched参考:
刚开始通过sched实现,发现会阻塞线程,然后又通过timer来完成的。
当前我只实现了一种格式:n分钟后提醒我xxxxx,直接通过正则匹配获取数据然后使用threading.Timer开启定时任务。虽然将信息保存到了数据库,但是数据库并没有参与定时任务的生成,只用来记录定时任务信息。
但是这样只支持短时间的任务生成。如果是长时间则需要开启线程来定时查询数据库,这样也更合适一些。
我们之前实验给的源码,我反正看不懂。
参考文档:
1. 2. 3.第三篇文章写得非常不错,强烈推荐。
这三篇文章都有讲解,我的代码也有注释,我就不写讲解了,都是最基本的调接口。
github中有一个电影数据分析的notebook,可以参考。
参考:
因为电影推荐数据集是英文,所以我们需要将推荐出来的英文名字转化成中文。如何转化呢:通过豆瓣电影搜索,默认搜索出来的第一个电影就是我们要找的电影。豆瓣搜索:
我以为只是简单的路径截取就好,没想到数据是通过ajax加载的,找了半天也没找到json数据的url,所以只能通过selenium来模拟浏览器操作然后进行爬取了。
但是在测试的时候我发现了一个干扰项:搜索出来的第一个是个小组,不是电影,所以注意一下自己写的xpath语法。
转载地址:http://pfihn.baihongyu.com/