Amazon web services 尽管输入了准确的话语,但AWS Lex符合错误的意图

Amazon web services 尽管输入了准确的话语,但AWS Lex符合错误的意图,amazon-web-services,artificial-intelligence,chatbot,amazon-lex,Amazon Web Services,Artificial Intelligence,Chatbot,Amazon Lex,我在很多不同的案例中都遇到过这个问题 我将分享一个例子 我有一些常见问题解答的意图。 一个答案是什么叫做实体识别 以下是它的话语: 告诉我有关命名实体识别的信息 跟我说说内尔 内尔是什么 您所说的命名实体识别是什么意思 什么是命名实体识别 另一个答案是什么是光学字符识别? 以下是它的话语: 光学字符识别 你说的光学字符识别是什么意思 你能告诉我OCR是什么吗 讲述OCR 什么是光学字符识别 什么是光学字符识别 当我进入时,什么是ocr?它按预期工作,并显示OCR的答案。 但当我在所有大写字母中输

我在很多不同的案例中都遇到过这个问题

我将分享一个例子

我有一些常见问题解答的意图。 一个答案是什么叫做实体识别 以下是它的话语:

告诉我有关命名实体识别的信息 跟我说说内尔 内尔是什么 您所说的命名实体识别是什么意思 什么是命名实体识别 另一个答案是什么是光学字符识别? 以下是它的话语:

光学字符识别 你说的光学字符识别是什么意思 你能告诉我OCR是什么吗 讲述OCR 什么是光学字符识别 什么是光学字符识别 当我进入时,什么是ocr?它按预期工作,并显示OCR的答案。 但当我在所有大写字母中输入OCR时,我的问题是什么是OCR?。它切换到NER意图,并向我展示了什么是NER的答案

有人能回答它为什么这样做吗?更重要的是,我该怎么做才能使它按预期工作

请记住,这只是一个例子。我在许多其他类似的场景中也遇到过这种情况

还有一种情况是,意图表达似乎根本不匹配。但它仍然转向了错误的意图。

根据Lex和Alexa,自定义槽类型中的首字母缩略词应在所有大写OCR中写成一个单词,或用句点和空格o分隔的小写字母。Cr、

沿着表格底部,您可以看到FireHD7、FireH的示例。d、 、Fire HD和Fire HD 7演示了这一点-两个有效选项将解析为相同的插槽值输出

假设话语是按照最佳实践设置的,如果您提供声音输入,那么需要注意的是,话语对声音的变化、词与词之间的步调/间距、重音等非常敏感


至于提高准确性的即时步骤,您可以尝试进一步分解您的意图,而不是有两个意图,您有一个用于自定义槽值NER、命名实体识别、OCR和光学字符识别的每个排列。人类很容易理解短语的第一个字母对应于首字母缩略词中的字母,但当要教聊天机器人理解这些短语是同义词时,这就有点难了。

最后我没有找到合适的解决方案,但使用了一些非常不雅观的变通方法,但只要它有效:D

我使用的变通方法是制定what意图、how意图等,保持句子结构完整:

例如:

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"}
这使得所需的意图数量大大减少,同时也消除了许多模糊性。所有有什么或类似格式的问题都直接指向这个目的


然后在我的代码钩子中,我看到哪个同义词是匹配的,并提供相应的答案。

你解决过这个问题吗?我遇到了相同的解决方案,而这个问题的唯一答案并不能解决问题。我的首字母缩略词是CAD,我的插槽中有CAD、CAD和c.a.d.,但仍然不起作用。不幸的是,我不得不使用一些非常不雅观的解决方法。即使在那之后,我还是不断遇到一些奇怪的不一致的结果。所以我们公司决定离开莱克斯。我将在下面回答我自己的问题