Skip to main content
QUICK REVIEW

[论文解读] Rasa: Open Source Language Understanding and Dialogue Management

Tom Bocklisch, Joey Faulkner|arXiv (Cornell University)|Dec 14, 2017
Topic Modeling参考文献 14被引用 139
一句话总结

Rasa 介绍用于语言理解和对话管理的开源 Python 工具 NLU 和 Core,面向非专业开发者,组件解耦并带有机器教学工作流。

ABSTRACT

We introduce a pair of tools, Rasa NLU and Rasa Core, which are open source python libraries for building conversational software. Their purpose is to make machine-learning based dialogue management and language understanding accessible to non-specialist software developers. In terms of design philosophy, we aim for ease of use, and bootstrapping from minimal (or no) initial training data. Both packages are extensively documented and ship with a comprehensive suite of tests. The code is available at https://github.com/RasaHQ/

研究动机与目标

  • 使基于机器学习的对话管理和语言理解对非专业开发者可访问。
  • 从最小化或无初始训练数据开始引导,以构建对话系统。
  • 提供模块化、解耦的架构,支持跨语言复用和便捷部署。
  • 提供全面的文档、测试以及生产就绪的部署工作流。

提出的方法

  • 具有用于会话状态跟踪的跟踪器和用于选择下一个动作的策略的模块化架构。
  • NLU 流程,结合 spaCy 的分词/词性标注、GloVe 向量,以及 scikit-learn 分类器;实体可选使用 CRF。
  • 预定义的管道(如 spacy_sklearn),可替换组件和可配置后端。
  • 训练数据格式:NLU 的 intents/entities 使用 JSON/Markdown;对话故事使用 Markdown。
  • 机器教学工作流,通过迭代纠正系统动作并扩展训练数据。
  • 对话图可视化,用于解释训练数据和策略行为。
  • 基于 Docker 的部署,建立可重复的生产环境。

实验结果

研究问题

  • RQ1Rasa NLU 和 Core 能否灵活地独立使用并且仍然高效互操作?
  • RQ2系统在最小或增量训练数据下的表现如何,以及如何处理非线性对话?
  • RQ3在实践中机器教学对改进对话策略的有效性如何?
  • RQ4如何简化生产部署并在不同环境中实现可重复性?

主要发现

  • 架构完全解耦,实现跨语言重用已训练模型以及简化的生产部署。
  • Rasa NLU 使用包含 spaCy、GloVe 和多类别分类器的健壮管道;实体通过 CRF 组件检测。
  • Rasa Core 将对话管理视为对预定义动作的分类问题,使用基于特征的策略。
  • max_history 参数(默认通常为 3–6)塑造序列模型的对话状态特征化。
  • 机器教学提供了通过纠正预测动作并对策略进行部分训练来生成训练数据的实际工作流。
  • 对故事图的可视化有助于解释和调试训练数据及策略决策。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。