# Chinese-ChatBot
**Repository Path**: jayeew/Chinese-ChatBot
## Basic Information
- **Project Name**: Chinese-ChatBot
- **Description**: 中文聊天机器人,基于10万组对白训练而成,采用注意力机制,对一般问题都会生成一个有意义的答复。已上传模型,可直接运行,跑不起来直播吃键盘。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2020-10-09
- **Last Updated**: 2021-04-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Chinese-ChatBot/中文聊天机器人
## 环境配置
| 程序 | 版本 |
| ---------- | ------- |
| python | 3.68 |
| tensorflow | 1.13.1 |
| Keras | 2.2.4 |
| windows10 | |
| jupyter | |
## 主要参考资料
* 论文[《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE(**点击标题下载**)》](https://arxiv.org/pdf/1409.0473.pdf)
* 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只能大致反映训练进度。
* 未完待续。