中文聊天机器人
-
作者已全面转向
GNN图神经网络方向C++开发,不再跟进NLP方面,项目代码停止维护。回想项目完成时,网上资源甚少,作者初次接触NLP与深度学习,克服重重困难,最终写出这个玩具模型。因此,作者深知新手不易,即使项目不再维护,但仍会及时回复issue或邮件(jayeew@qq.com),以帮助深度学习新人。(我使用的Tensorflow版本太旧,新版本直接运行肯定会出现各种错误,如果遇到困难也不要费力去安装旧版环境,建议用Pytorch参照我的处理逻辑重构一遍,我懒得写了) -
GNN方面:
- 改编整理了一套基准对比模型:GNNs-Baseline,以便快速验证想法。
- 本人的论文ACMMM 2023 (CCF-A) 开源代码在这里LSTGM。
- 本人的论文ICDM 2023 (CCF-B) 开源代码正在整理中。。。GRN
- 欢迎同好补充、交流、学习。
环境配置
程序 | 版本 |
---|---|
python | 3.68 |
tensorflow | 1.13.1 |
Keras | 2.2.4 |
windows10 | |
jupyter |
主要参考资料
关键点
- 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中,最后三块代码前两个用于挂载Google云盘,最后一个用于获取loss以便绘图,因为不知为何回调函数中的TensorBoard不好用,故采用此下策;
- 预测文件中倒数第二块代码仅有文字输入无界面,最后一块代码是界面,根据需求运行其中之一即可;
- 代码中有许多中间输出,希望能帮助你理解代码;
- models文件夹中有一个我训练好的模型,正常运行应该没有问题,你也可以自己训练;
- 由于作者能力有限,未找到量化对话效果的指标,因此loss只能大致反映训练进度。