Adline125's Blog

NLP Engineer, Google Developers Expert

0%

Rasa NLU classifier解析

本文是对著名对话机器人开源框架Rasa NLU classifier架构的解析。Rasa是一套开源机器学习框架,用于构建基于上下文的AI小助手和聊天机器人。Rasa有两个主要模块:Rasa NLU 用于对用户消息内容的语义理解;Rasa Core 用于对话管理(Dialogue management)。本文主要针对Rasa NLU classifier 做总体上的说明。

本文更多关注算法,主要内容如下:

  • Rasa NLU Classifier架构
  • 主流技术支持情况

Rasa NLU Classifier架构

285

主流技术支持情况

主流技术 是否支持 支持模块 说明
Huggingface Transformer 部分 DIETClassifier 见2.1.3.2
Wide&Deep DIETClassifier 稀疏和稠密特征融合
transformer DIETClassifier transformer层数可配置
DNN DIETClassifier DNN层数固定不可配置
SVM SKLearnClassifier 支持网络搜索优化配置
其他传统机器学习模型 SKLearnClassifier SKLearn支持的所有模型
Mitie Linear SVM MitieClassifier 使用自有的稀疏线性核
字符串匹配 KeywordClassifier 不是关键词而是样例句完全匹配
CNN DIET只支持在预训练模型后添加transformer层,现有rasa无法搭建诸如textCNN, bert+bilsm+crf这类经典模型
单双向RNN ( LSTM, GRU )
GCN 图卷积神经网络

问题:pipeline中可以叠加使用多个classifier吗(除fallback)?如果被KeywordClassifier模块命中,可不可以直接跳过其他 classifier)

回答:单个pipeline中classifier可以叠加,例如KeywordIntentClassifier可以添加在主classifier后,这样Keyword的结果将覆盖classifier结果。参考资料