• Stars
    star
    324
  • Rank 129,708 (Top 3 %)
  • Language
    Jupyter Notebook
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

中文聊天机器人,基于10万组对白训练而成,采用注意力机制,对一般问题都会生成一个有意义的答复。已上传模型,可直接运行。

Chinese-ChatBot/中文聊天机器人

  • 作者已经全面转到GNN图神经网络方向,不再跟进NLP方面,项目代码停止维护。遥想项目完成时,网上资源甚少,作者一时兴起初次接触NLP与Deep Learning,克服重重困难,终于写出这个Toy Model。因此,作者深知小白不易,所以即使项目不再维护,但issue或邮件([email protected])一定会及时答复,以帮助Deep Learning新人。
  • GNN方面暂时只改编整理了一套基准对比模型:GNNs-Baseline ,以方便快速验证idea,欢迎同好补充、交流、学习。

环境配置

程序 版本
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中,最后三块代码前两个是挂载谷歌云盘用的,最后一个是获取那些loss方便画图,不知道为什么回调函数里的tensorbord不好使,故出此下策;
  • 预测文件里倒数第二块代码只有文字输入没界面,最后一块代码是界面,根据需求两块跑其一即刻;
  • 代码中有很多中间输出,希望对你理解代码提供了些许帮助;
  • models里面有一个我训练好的模型,正常运行应该是没有问题的,你也可以自己训练
  • 作者能力有限,并未找到量化对话效果的指标,因此loss只能大致反映训练进度。