💖 利用有趣的中文语料库 qingyun,由 @Doragd 同学编写的中文聊天机器人⛄️
尽管她不是那么完善💪,不是那么出色🐾
但她是由我自己 coding 出来的💖 ,所以
希望大家能够多多 star 支持 ⭐️ 这个 NLP 初学者🏃和他的朋友🍀 小智
项目地址: https://github.com/Doragd/Chinese-Chatbot-PyTorch-Implementation
深刻体会:
- 这次实践的过程实际是跟着 PyTorch Tutorial 先过了一遍 Chatbot 部分,跑通以后,再更换语料库,处理语料库,再按照类的风格去重构了代码,然后就是无尽的 Debug 过程。虽然模型最后的结果不是很好,但是我觉得有很大收获,因为踩了很多很多坑,都是以后的教训!!
- 最深刻的体会就是“深度学习知识的了解和理解之间差了 N 个编程实现”。虽然理论大家都很清楚,但是真正到编程实现时,总会出这样,那样的问题:从数据集的处理,到许多公式的编程实现,到参数的调节,GPU 配置等等各种问题
- 在做这个项目时,为了方便自己理解,所以模型部分的注释写的都很清楚!所以我觉得非常适合我们这些 NLP 小白!!!尤其是第一次使用 PyTorch 的!希望大家一定多多支持!!😭
🌟 测试效果
- 不使用知识库进行回答
- 使用知识库进行回答
🌈背景
这个项目实际是软件工程课程设计的子模块。我们的目标是开发一个智能客服工单处理系统。
智能客服工单系统实际的工作流程是:当人向系统发出提问时,系统首先去知识库中查找是否存在相关问题,如果有,则返回问题的答案,此时如何人不满意,则可以直接提交工单。如果知识库中不存在,则调用这个聊天机器人进行自动回复。
该系统服务的场景类似腾讯云的客服系统,客户多是来咨询相关问题的(云服务器,域名等),所以知识库也是有关云服务器,域名等的咨询,故障处理的 (问题,答案) 集合。
系统的前端界面和前后端消息交互由另一个同学完成,主要采用 React+Django 方式。
我负责的是知识库的获取和聊天机器人的编写,训练,测试
🌸技术实现
语料库:qingyun 语料,10w 条, 收集自某聊天机器人交流群
Seq2Seq
- Encoder:两层双向 GRU
- Decoder:双层单向 GRU
Attention
- Global attention,采用 dot 计算分数
- Ref. https://arxiv.org/abs/1508.04025