Rasa NLU:如何使用具有相同值的多个分类槽?
Rasa NLU: How to use multiple categorical slots with same values?
我刚开始使用 Rasa NLU,我在理解具有相同值的分类槽的用法时遇到了一些问题。我有 3 种不同类型的风险,每一种都有一个具有值的分类槽:low
、medium
和 high
.
鉴于每个风险的意图相同,机器人如何区分这三种风险并了解要填充哪个插槽。
还是我需要为每个使用不同的意图?
现在我看到的是(我删除了不相关的日志):
How tired are you?
1: low (low)
2: medium (medium)
3: high (high)
medium
DEBUG: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: None
How stressed are you?
1: low (low)
2: medium (medium)
3: high (high)
low
DEBUG: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" 类型,带有文本值(即低、中、高)。
四个插槽:第一个是"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
我刚开始使用 Rasa NLU,我在理解具有相同值的分类槽的用法时遇到了一些问题。我有 3 种不同类型的风险,每一种都有一个具有值的分类槽:low
、medium
和 high
.
鉴于每个风险的意图相同,机器人如何区分这三种风险并了解要填充哪个插槽。 还是我需要为每个使用不同的意图?
现在我看到的是(我删除了不相关的日志):
How tired are you?
1: low (low)
2: medium (medium)
3: high (high)
medium
DEBUG: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: None
How stressed are you?
1: low (low)
2: medium (medium)
3: high (high)
low
DEBUG: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" 类型,带有文本值(即低、中、高)。
四个插槽:第一个是"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