当前位置:   article > 正文

NLP聊天机器人的搭建(chatbot)(一)_simple-nlp-chatbot

simple-nlp-chatbot

        最近在学习研发QA系统,本人单纯想记录一下。项目源码和思路主要参考知乎专栏:

PyTorch搭建聊天机器人(一)词表与数据加载器 - 知乎

PyTorch搭建聊天机器人(二)定义seq2seq网络前向逻辑 - 知乎

PyTorch搭建聊天机器人(三)训练与评估 - 知乎

 

        知乎大佬的思路还是很清晰的。词表和数据加载器使用的数据集本人改用json格式的sogou和web的数据集,这个数据还需要自己处理一下,有些问题没有答案,但是有问答的相关信息(这个文本太长了),为了方便训练,而筛除没有答案的问题,然后做好标签。

 

 json数据获取

  1. #读取json文件内容
  2. sogou_data = json.load(open("qa_datasets/SogouQA.json", 'r', encoding='utf-8'))
  3. web_data = json.load(open("qa_datasets/WebQA.json", 'r', encoding='utf-8'))
  4. question_list = []
  5. answer_list = []
  6. #获取json字段的相应内容
  7. for i in range(len(sogou_data)):
  8. if sogou_data[i]['passages'][0]['answer'] != "":
  9. question_str = ""
  10. answer_str = ""
  11. for j in range(len(sogou_data[i]['question'])):
  12. question_str += sogou_data[i]['question'][j] + " "
  13. question_list.append(question_str)
  14. for j in range(len(sogou_data[i]['passages'][0]['answer'])):
  15. answer_str += sogou_data[i]['passages'][0]['answer'][j] + " "
  16. answer_list.append(answer_str)
  17. for i in range(len(web_data)):
  18. if web_data[i]['passages'][0]['answer'] != "":
  19. question_str = ""
  20. answer_str = ""
  21. for j in range(len(web_data[i]['question'])):
  22. question_str += web_data[i]['question'][j] + " "
  23. question_list.append(question_str)
  24. for j in range(len(web_data[i]['passages'][0]['answer'])):
  25. answer_str += web_data[i]['passages'][0]['answer'][j] + " "
  26. answer_list.append(answer_str)
  27. for i in range(len(question_list)):
  28. self.addSentence(question_list[i].strip())
  29. self.addSentence(answer_list[i].strip())
  30. pairs.append([question_list[i], answer_list[i]])

词表和数据加载器和参考知乎大佬的源代码!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/349029
推荐阅读
相关标签
  

闽ICP备14008679号