Rasa NLU: 如何使用具有相同值的多个分类槽?

我刚开始使用Rasa NLU,并且在理解具有相同值的分类槽的使用上遇到了一些问题。我有三种不同类型的风险,每种都是一个分类槽,值分别为:lowmediumhigh

在意图相同的情况下,机器人如何区分这三种风险,并理解应该填充哪个槽?或者我是否需要为每种风险使用不同的意图?

目前我看到的情况是(我删除了不相关的日志):

How tired are you?1: low (low)2: medium (medium)3: high (high)mediumDEBUG:rasa_core.processor:Received user message 'medium' with intent '{'name': 'inform', 'confidence': 0.88372623999657118}' and entities  '[{'start': 0, 'end': 6, 'value': 'medium', 'entity': 'fatigue', 'extractor': 'ner_crf'}]'DEBUG:rasa_core.processor:Current slot values:     fatigue: medium    injury: None    stress: NoneHow stressed are you?1: low (low)2: medium (medium)3: high (high)lowDEBUG:rasa_core.processor:Received user message 'low' with intent '{'name': 'inform', 'confidence': 0.88762049990079372}' and entities  '[{'start': 0, 'end': 3, 'value': 'low', 'entity': 'fatigue', 'extractor': 'ner_crf'}]'DEBUG:rasa_core.processor:Current slot values:     fatigue: low    injury: None    stress: None

所有用户回复的意图都是inform。一个示例故事是:

* _greet[] - utter_ask_fatigue* _inform[fatigue=low] - utter_ask_injury* _inform[injury=medium] - utter_ask_stress* _inform[stress=low] - utter_on_it - action_reply

回答:

你可以使用一个实体和四个槽来实现这一点

实体可以定义为类型”info”,其文本值为(即low、medium、high)。

四个槽:第一个是”info”,它将自动填充由之前定义的实体”info”识别出的值。其余三个槽分别是”fatigue”、”stress”和”injury”,可以通过机器人动作如action_fill_fatigue、action_fill_stress和action_fill_injury来填充。

一个示例故事可以使这一点更加清晰:

* _greet[]
 – utter_ask_fatigue
* _inform[info=low]
 – action_fill_fatigue
 – utter_ask_injury
* _inform[info=medium]
 – action_fill_injury
 – utter_ask_stress
* _inform[info=low]
 – action_fill_stress
 – utter_on_it
 – action_reply

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注