吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 27393|回复: 115
上一主题 下一主题
收起左侧

[Python 转载] 自己训练的聊天机器人

    [复制链接]
跳转到指定楼层
楼主
ConstantinChiae 发表于 2019-5-25 22:14 回帖奖励
本帖最后由 ConstantinChiae 于 2020-4-4 18:56 编辑

最新动态:一直没什么时间,版本稍有完善,连带一个模型都在github上,跑不通我直播吃键盘(前提你自己把环境都弄好)。

欢迎交流学习!

完全开源:
github: https://github.com/jiayiwang5/Chinese-ChatBot (直接在这里下载就好)

这是什么?
答 : 一个聊天机器人。 它好像自认为是女生,所以你大可调戏她,或是闲得无聊时候找它唠两句。

它”智能“么?
答:个人能力有限,我找不到百万级及以上高质量的对话数据,也没有足够的算力资源支撑,暂且不能做到 ”智能“。实际对话中,仍会存在大量的无意义回复,请见谅。

什么原理呢?
答: 严谨的说叫 ”基于深度学习的开放域生成对话模型“,框架为Keras(Tensorflow的高层包装),方案为主流的RNN(循环神经网络)的变种LSTM(长短期记忆网络)+seq2seq(序列到序列模型),外加算法Attention Mechanism(注意力机制),分词工具为jieba,UI为Tkinter,基于”青云“语料(10万+闲聊对话)训练。

”必要“是什么意思?
答:程序分为数据清洗,模型训练与模型预测三个部分,以及大量固化的二进制文件等。但你运行它只需要其中一小部分,包括预测程序、部分二进制文件和一个训练好的模型。

我该怎么运行它?
答: 没配置环境的先安装环境,我写了bat脚本,双击START.bat安装就好。因为没有打包exe,所以你直接运行main.py就好了。 python .\main.py

自己训练的话需要多久?
答:首先建议你有一张性能好的显卡。我在Google Colaboratory用GPU + 12GRAM(中途会爆内存1~2次)训练大概200个epoch,单次350s(不采用注意力机制的话为500s),中途大概两次降低学习率。

需要联网么?
答: 可以在联网状态下查某地天气,不过比较无脑(调用别人的api),所以我就去掉了。现在纯单机即可运行。

需要的运行环境是什么?
答:python3.6以上,Tensorflow(上面提到我用的keras了),pandas,numpy,jieba。

我会python,这个好写么?
答:模型预测程序main.py运行时控制台会显示模型参数表,接触过深度学习的人自然一眼看明白,完全可以自己写出模型的训练部分;不懂深度学习的人请知道这不仅仅是python那么简单,即使给出全部代码你也无法凭借以往的编程经验看懂,你需要不排斥繁杂的数学推倒,且系统的接触传统机器学习和深度学习,特别是RNN(循环神经网络)。

想入门深度学习,有没有推荐的学习资料?
答:入门条件:对高等数学(尤指微积分),线性代数,概率论有较深入了解;有python编程基础;有一定英文水平,能实时看懂英文字幕,能大致看懂英文论文、期刊。满足入门条件后,可以在Coursera上跟着吴恩达(Andrew Ng)老师入门,他的课有课后作业和编程作业,教学视频大部分只有英文字幕。

后续还更新么?
答:看大家反馈喽。另有几个算法我暂时还没有实现,我也听说通过强化学习令情感奖励最大化或许能让模型具有感情色彩,这都是未来可以改进的方向。

补充:
@陌路无人  是的,这是单论对话模型。
@qrp127  听上去很简单,但我没接触过qq机器人这块,有空我会尝试的。

热心的朋友们送萌新我进影视区看看啊,蛮好奇的,谢谢


TIM图片20190527171052.png (23.5 KB, 下载次数: 26)

弹窗

弹窗

TIM图片20190525220602.png (46.66 KB, 下载次数: 19)

聊天界面

聊天界面

TIM图片20190527172102.png (46.67 KB, 下载次数: 19)

压缩包内容

压缩包内容

免费评分

参与人数 29吾爱币 +31 热心值 +27 收起 理由
sharokku4869 + 1 谢谢@Thanks!
一人之下123456 + 1 谢谢@Thanks!
qianxue + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lk311 + 1 + 1 学习了
空白的悲伤 + 1 + 1 我很赞同!
公子语凉 + 1 + 1 我很赞同!
-松叶萧- + 1 + 1 谢谢@Thanks!
且随疾风前行 + 1 + 1 热心回复!
考拉熊 + 1 + 1 热心回复!
mikeee + 1 + 1 谢谢@Thanks!
mark1001 + 1 + 1 我很赞同!
咚鼕鼕 + 1 + 1 热心回复!
小白的哥哥 + 1 用心讨论,共获提升!
魔影W + 1 我很赞同!
caeloncc + 1 + 1 我很赞同!
邓大侠 + 1 + 1 我很赞同!
troy919 + 1 + 1 虽然我看不懂,但是我觉得很厉害
xiaohei11 + 1 + 1 热心回复!
mengmeng + 1 + 1 谢谢@Thanks!
Tsing_52 + 1 我很赞同!
44018723 + 2 + 1 膜拜!最近也在学着做,搞不懂,头疼!
时空之外 + 1 + 1 吾爱果然卧虎藏龙~
苏紫方璇 + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ft7882886 + 1 + 1 谢谢@Thanks!
lendone + 1 谢谢@Thanks!
qrp127 + 1 + 1 可否调用qq的接口 当成qq机器人一样的聊天呀
锋逸520 + 1 + 1 用心讨论,共获提升!
陌路无人 + 2 + 1 应该没有上下文联系吧
拔剑不知谁为雄 + 1 + 1 这也太棒了吧。。

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
vcbeaut 发表于 2019-8-22 22:30
作者这里数据处理,索引全部加一了,有人知道作用吗?
[Python] 纯文本查看 复制代码
for i, j in word_to_index.items():
word_to_index[i] = j + 1

index_to_word = {}
for key, value in word_to_index.items():
index_to_word[value] = key
pad_question = question
pad_answer_a = answer_a
pad_answer_b = answer_b

for pos, i in enumerate(pad_question):
for pos_, j in enumerate(i):
i[pos_] = j + 1
if(len(i) > answer_maxLen):
pad_question[pos] = i[:answer_maxLen]
推荐
 楼主| ConstantinChiae 发表于 2019-6-11 22:40 |楼主
c0ld 发表于 2019-6-11 22:16
pyinstaller没办法打包jieba这类模块的原因是因为jieba这类模块在加载停用词表等文件的时候使用了绝对路 ...

你好,谢谢你的建议。打包操作有些时日了,我记得好像jieba没有报什么错误,也打包成功了,执行exe的时候会找不到一些东西,具体是什么我忘记了。总之我会尝试你的提议。
此外,这个帖子我之前是发在软件区的,后来被移到这里了,要不要exe也无所谓了
欢迎交流学习
沙发
空余梦 发表于 2019-5-25 22:25
3#
红牛 发表于 2019-5-25 22:32
不错不错,味道好极了,机器人不错
4#
rmao189 发表于 2019-5-25 22:32
虽然不懂,不过如此高大上的东西必须支持
5#
很迷茫 发表于 2019-5-25 22:33
lihailewodege
6#
非笑 发表于 2019-5-25 22:35
厉害,膜拜............
7#
dddzzzhhh 发表于 2019-5-25 22:38
可以 人设 一下这个机器人么?
8#
 楼主| ConstantinChiae 发表于 2019-5-25 22:39 |楼主
dddzzzhhh 发表于 2019-5-25 22:38
可以 人设 一下这个机器人么?

可以的,需要人工干预训练语料,然后再训练
9#
466162659 发表于 2019-5-25 22:44
这不就是小爱吗?
10#
dddzzzhhh 发表于 2019-5-25 22:48
ConstantinChiae 发表于 2019-5-25 22:39
可以的,需要人工干预训练语料,然后再训练

那是不是也就可以  人设崩塌了?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表