【发布时间】:2020-04-29 06:53:23
【问题描述】:
例如,以下句子:“嗨,下午好,你好吗”。这个笑话的意图是“打招呼”。当我请求“模型/解析”的 API 时,它将返回正确的意图和实体。但是当我在这句话前面加上特殊字符'/',比如:“/hi good horse you how are you doing”时,'model/parse'返回的意图是'/ hi good please how are you doing'而不是“问候”。我看了rasa的源码,如下:
特殊字符'/'怎么处理才能兼顾源码的RegexInterpreter,我举这个例子?最好不修改源码就解决。请帮助我,谢谢。
回答:
我想同时实现以下三个功能:
- 当 message.text = '/greet {"people": "tom"}':
‘model/parse’返回的实际结果如下:
{
"text": "/ greet {\" people \ ": \" tom \ "}",
"intent": {
"name": "greet",
"confidence": 1.0
},
"intent_ranking": [
{
"name": "greet",
"confidence": 1.0
}
],
"entities": [
{
"entity": "people",
"start": 6,
"end": 22,
"value": "tom"
}
]
}
2,当 message.text = '嗨,汤姆,下午好'
‘model/parse’返回的实际结果如下:
{
"text": "Hi Tom, good afternoon",
"intent": {
"name": "greet",
"confidence": 0.923
},
"intent_ranking": [
{
"name": "greet",
"confidence": 0.923
}
],
"entities": [
{
"entity": "people",
"start": 2,
"end": 5,
"value": "tom",
"confidence": 0.8433478958,
"extractor": "CRFEntityExtractor"
}
]
}
3,当 message.text = '/嗨汤姆,下午好'
‘model/parse’返回的实际结果如下(这不是我想要的):
{
"text": "/ Hi Tom, good afternoon",
"intent": {
"name": "Hi Tom, good afternoon",
"confidence": 1.0
},
"intent_ranking": [
{
"name": "Hi Tom, good afternoon",
"confidence": 1.0
}
],
"entities": []
}
但我期望的结果如下:
{
"text": "Hi Tom, good afternoon",
"intent": {
"name": "greet",
"confidence": 0.923
},
"intent_ranking": [
{
"name": "greet",
"confidence": 0.923
}
],
"entities": [
{
"entity": "people",
"start": 2,
"end": 5,
"value": "tom",
"confidence": 0.8433478958,
"extractor": "CRFEntityExtractor"
}
]
}
注意第三个和第二个区别是第三个message.text只是在开头加了'/'
那么,有没有一种方法可以很好的解决这个问题,同时满足以上三种情况呢?
【问题讨论】:
-
你想让用户无法直接使用
/触发意图吗?仅当/位于用户消息的开头时才会发生这种情况,而不是在消息的后面。 -
嗨,梅琳达。由于回复内容太长,我将回复内容添加到原问题中,您可以从'answer to'开始