Victor You know, I see

NLP智能机器人的尝试

2018-10-12
Victor

新公司新气象,独立部门重新开始。鉴于当前的业务范围和行业发展,部门开始准备自研客服机器人的计划。当然,对于NLP来说,我算是个门外汉,一切重新开始,总不算太晚

技术选型

  • chatterbot
  • rasa
    开源的框架里面通过前期不断的实验推断,发现chatterbot这类型的框架还是太过于简单和死板。chatterbot只对会话进行简单的QA对处理和存储,对请求的会话进行相似度匹配从而返回最高置信度的回答; rasa框架官网上面宣传的是AI智能机器人框架,rasa主要包含三个模块:rasa core,rasa nlu,rasa sdk。 通过NLU对各个语义进行预理解训练,分词后进行实体提取和槽的识别记忆,提供自定义的处理 策略和动作,从而完成整个与机器会话的流程;

    技术挑战

  • 分场景的NLU语聊输入和标记
  • 不同策略的语义处理
  • 多并发条件下rasa的支持
  • rasa core中domain.yml文件的逻辑
  • rasa的二次开发

技术实施

  1. mitie知识库的构建
  2. rasa nlu部分训练文本的手动标注
  3. 项目工程搭建与抽象,配置config.yml和domain.yml
  4. 自定义action类并在endpoints中加以注册
  5. rasa nlu训练并测试是否正常理解对话的关键词
  6. 编写story.yml定义出可能的会话路径和流程
  7. rasa core训练
  8. 启动core run来进行会话回答识别测试
  9. 返回2重新设计训练文本来消除差异值,依次进行下面的步骤

技术总结

  • NLP是个复杂而又需要有耐心的领域
  • Rasa的开源部门暂时发现只满足简单的功能,如果要高度自定义化,需要重写源代码
  • NLU训练数据标注部分是个重头戏,体力活
  • 尽可能的对想要应用的场景所能经过的路径加以描述进story中
  • 当前的成果是自定义出了两个场景:查快递和查火车票(均已完成简单的功能)
  • 坑多请坚持

友好而减轻工作量的工具

  • chatito
  • rasa-nlu-trainer

事实上,项目才刚刚开始,你还等什么呢?


下一篇 最近有点闲

Comments

Content