Chinese-ChatBot/中文聊天机器人
- 作者已经全面转到
GNN图神经网络方向C++开发,不再跟进NLP方面,项目代码停止维护。遥想项目完成时,网上资源甚少,作者一时兴起初次接触NLP与Deep Learning,克服重重困难,终于写出这个Toy Model。因此,作者深知小白不易,所以即使项目不再维护,但issue或邮件([email protected])一定会及时答复,以帮助Deep Learning新人。(Tensorflow我用的版本太老了,新的版本直接运行肯定各种报错,如果你遇到困难也别可以费劲去装老版的环境了,建议用Pytorch参照我的处理逻辑重构一遍,我懒得写了)
- GNN方面:
- 改编整理了一套基准对比模型:GNNs-Baseline ,以方便快速验证idea。
- 本人的论文ACMMM 2023 (CCF-A) 开源代码在这LSTGM。
- 本人的论文ICDM 2023 (CCF-B) 开源代码还在整理中。。。GRN
环境配置
程序 |
版本 |
python |
3.68 |
tensorflow |
1.13.1 |
Keras |
2.2.4 |
windows10 |
|
jupyter |
|
主要参考资料
- 论文《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE(点击标题下载)》
- Attention结构图
关键点
- LSTM
- seq2seq
- attention 实验表明加入attention机制后训练速度快,收敛快,效果更好。
语料及训练环境
青云语料库10万组对话,在google colaboratory训练。
运行
方式一:完整过程
- 数据预处理
get_data
- 模型训练
chatbot_train
(此为挂载到google colab版本,本地跑对路径等需略加修改)
- 模型预测
chatbot_inference_Attention
方式二:加载现有模型
- 运行
chatbot_inference_Attention
- 加载
models/W--184-0.5949-.h5
界面(Tkinter)
Attention权重可视化
其他
- 训练文件chat_bot中,最后三块代码前两个是挂载谷歌云盘用的,最后一个是获取那些loss方便画图,不知道为什么回调函数里的tensorbord不好使,故出此下策;
- 预测文件里倒数第二块代码只有文字输入没界面,最后一块代码是界面,根据需求两块跑其一即刻;
- 代码中有很多中间输出,希望对你理解代码提供了些许帮助;
- models里面有一个我训练好的模型,正常运行应该是没有问题的,你也可以自己训练
- 作者能力有限,并未找到量化对话效果的指标,因此loss只能大致反映训练进度。