我在各种不同的情况下都遇到了这个问题。
我将举一个例子。
我有一些常见问题解答意图。 一个回答“什么是命名实体识别” 这些就是话语:
和其他答案“什么是光学字符识别?” 这些就是话语:
当我输入“什么是OCR?”时,它可以按预期工作,并显示OCR的答案。 但是,当我改为在所有大写字母中输入OCR时,出现相同的确切问题(什么是OCR?)。它切换到NER目的,并向我显示“什么是NER?”的答案。
有人可以回答为什么这样做吗?更重要的是,我该怎么做才能使其按预期工作。
请记住,这只是一个示例。我在其他许多类似的场景中也遇到过这种情况。
在某些情况下,意图言语似乎并没有遥不可及。但是它仍然切换到错误的意图。
答案 0 :(得分:3)
根据Lex和Alexa documentation,自定义广告位类型的首字母缩写应在所有大写字母(OCR)中写为单个单词,或用句点和空格分隔(小写字母c。r。)。
在表格的底部,您可以看到Fire HD7
,Fire h. d.
,Fire HD
和Fire HD 7
的示例,它们都证明了这一点-这两个有效选项将解析为相同的广告位值输出。
假设语音是按照最佳做法设置的,那么如果您要提供语音输入,请务必注意,语音对诸如声音的变化,单词之间的步调/间隔,重音等敏感。
关于立即采取的提高准确性的步骤,您始终可以尝试进一步分解意图,在这种情况下,自定义广告位值(NER,命名实体识别,OCR和光学字符)的每个排列都有两个意图,而不是两个意图承认)。对于人类来说,很容易理解短语的首字母映射为首字母缩写词,但是当要教一个聊天机器人理解这些短语是同义词时,这会有点困难。
答案 1 :(得分:0)
最后,我没有找到合适的解决方案,但使用了一些非常微不足道的解决方法,但是只要它可以:H
我使用的解决方法是提出“什么”意图,“如何”意图等。使句子结构保持完整:
例如:
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"}
这使所需的意图量大大减少,并且消除了很多歧义。具有“什么”或类似格式的所有问题均直接符合该意图。
然后在我的代码钩中,看到匹配的同义词并提供相应的答案。