我在很多不同的情况下都有这个问题。
我将分享一个例子。
我有一些常见问题的意图。一个答案是“什么是命名实体识别”--这是它的话语:
另一个回答是“什么是光学字符识别?”这是它的话语:
当我进入时,“ocr是什么?”它按照预期工作,并给出了OCR的答案。但是当我在所有大写中输入OCR时,都会问同样的问题(OCR是什么?)它切换到了NER的意图,并告诉我“什么是NER?”
有一个人能回答它为什么这样做吗?更重要的是,我该怎么做才能使它像预期的那样运作呢?
请记住,这只是一个例子。我在其他许多类似的场景中也遇到过这种情况。
还有一种情况是,意图的话语似乎根本不匹配。但它还是转向了错误的意图。
发布于 2019-09-29 09:46:33
最后,我没有找到合适的解决方案,而是使用了一些非常不雅的解决办法,但是只要它有效,就好了:D
我使用的解决方法是做一个“什么”意图,一个“如何”意图等等。保持句子结构完整:
例如:
IntentName => "Bot_HowTo"
Utterances =>
"What is {slotName}"
"What are {slotName}"
"Meaning of {slotName}"
Slots =>
name : "slotName"
values (using synonyms) :
{OCR => "ocr", Optical Character recognition"}
{NER=> "ner", Named Entity Recognition"}
这使得所需的意图少得多,也消除了许多歧义。所有有“什么”或类似格式的问题都直接符合这个意图。
然后,在我的代码钩子中,我看到了哪个同义词是匹配的,并提供了相应的答案。
发布于 2019-03-22 17:41:06
根据Lex和Alexa 文档,自定义插槽类型中的缩略语应该写成所有大写字母中的单个单词或小写字母,以句号和空格分隔(o.c.r.)。
沿着表的底部,您可以看到Fire HD7
、Fire h. d.
、Fire HD
和Fire HD 7
的示例,它们演示了这一点--这两个有效选项都将解析为相同的槽值输出。
假设话语是按照最佳实践设置的,如果你提供语音输入,那么重要的是要注意,话语对诸如声音的变化、词与口音之间的节奏/间隔等事物都很敏感。
至于提高精度的直接步骤,您可以尝试进一步拆分您的意图,而不是有两个意图,而不是每个自定义插槽值的排列(NER、命名实体识别、OCR和光学字符识别)。对于人类来说,很容易理解一个短语的第一个字母映射到一个缩略词中的字母,但是当谈到教聊天机器人理解这些短语是同义词时,这就有点难了。
https://stackoverflow.com/questions/55294779
复制相似问题