【问题标题】:LUIS does not recognize names with spacesLUIS 无法识别带空格的名称
【发布时间】:2017-10-24 09:00:15
【问题描述】:
所以我得到了一个使用 Microsoft Bot Framework 构建的机器人,它使用 LUIS API 进行文本识别。使用这个机器人,我可以询问有关我在后端获得的不同设备的信息。他们有像 Desk、Desk 2 和 Phone Booth 4 这样的名称。第一个和第二个名称工作得很好,但是每当我发送一个包含 2 个或更多空格的名称时,LUIS 将无法识别它。我已将所有名称添加到 LUIS 上的功能列表中,但它似乎没有做任何事情。当我在机器人代码中执行该意图的方法时,只要我发送这种名称,实体就为空。知道我该如何解决这个问题吗?正如我所描述的,像 Desk 2 这样只有一个空格的名称就可以了。也许有一种方法可以在 LUIS 中将多个单词保存为一个实体?
在下图中,顶部的条目是“给我展示电话亭 4”,底部的条目是“给我展示桌子 2”。
【问题讨论】:
标签:
bots
azure-language-understanding
【解决方案1】:
这需要一些工作,但是您是否尝试过以编程方式更新您的模型?
在 LUIS API 参考中,您可以标记 individual utterances 或在 batches 中进行标记。这样做的好处是您可以根据索引位置选择应识别为实体的内容。
示例:
{
"text": "Book me a flight from Cairo to Redmond next Thursday",
"intentName": "BookFlight",
"entityLabels":
[
{
"entityName": "Location::From",
"startCharIndex": 22,
"endCharIndex": 26
},
{
"entityName": "Location::To",
"startCharIndex": 31,
"endCharIndex": 37
}
]
}
我承认我以前没有尝试过这样做,但我不知道以这种方式进行标记/训练会在逻辑上失败。
我确实注意到您的实体的一件事是它们由一个项目和一个数字组成。您可以将它们放入复合实体中;但在这种情况下,按照我上面提到的方式进行操作是完成您正在寻找的事情的好方法。
也就是说,如果您打算将 office-furniture-pieces(?) 用作单独意图的实体,例如 'PurchaseNewOfficePieces',则可能需要为 'Desk 2' 和 'Phone Booth 4' 创建使用复合实体.