新公司新气象,独立部门重新开始。鉴于当前的业务范围和行业发展,部门开始准备自研客服机器人的计划。当然,对于NLP来说,我算是个门外汉,一切重新开始,总不算太晚
技术选型
- chatterbot
- rasa
开源的框架里面通过前期不断的实验推断,发现chatterbot这类型的框架还是太过于简单和死板。chatterbot只对会话进行简单的QA对处理和存储,对请求的会话进行相似度匹配从而返回最高置信度的回答; rasa框架官网上面宣传的是AI智能机器人框架,rasa主要包含三个模块:rasa core,rasa nlu,rasa sdk。 通过NLU对各个语义进行预理解训练,分词后进行实体提取和槽的识别记忆,提供自定义的处理 策略和动作,从而完成整个与机器会话的流程;技术挑战
- 分场景的NLU语聊输入和标记
- 不同策略的语义处理
- 多并发条件下rasa的支持
- rasa core中domain.yml文件的逻辑
- rasa的二次开发
技术实施
- mitie知识库的构建
- rasa nlu部分训练文本的手动标注
- 项目工程搭建与抽象,配置config.yml和domain.yml
- 自定义action类并在endpoints中加以注册
- rasa nlu训练并测试是否正常理解对话的关键词
- 编写story.yml定义出可能的会话路径和流程
- rasa core训练
- 启动core run来进行会话回答识别测试
- 返回2重新设计训练文本来消除差异值,依次进行下面的步骤
技术总结
- NLP是个复杂而又需要有耐心的领域
- Rasa的开源部门暂时发现只满足简单的功能,如果要高度自定义化,需要重写源代码
- NLU训练数据标注部分是个重头戏,体力活
- 尽可能的对想要应用的场景所能经过的路径加以描述进story中
- 当前的成果是自定义出了两个场景:查快递和查火车票(均已完成简单的功能)
- 坑多请坚持
友好而减轻工作量的工具
- chatito
- rasa-nlu-trainer
事实上,项目才刚刚开始,你还等什么呢?