LUIS无法识别带空格的名称

时间:2017-05-24 07:04:31

标签: bots luis

所以我得到了一个用Microsoft Bot Framework构建的机器人,它使用LUIS API进行文本识别。使用这个机器人,我可以询问有关我在后端获得的不同设备的信息。他们有像Desk,Desk 2和Phone Booth 4这样的名字。第一个和第二个名称工作正常,但每当我发送一个包含2个或更多空格的名字时,LUIS将无法识别它。我已将所有名称添加到LUIS上的功能列表中,但它似乎没有做任何事情。当我在机器人代码中执行该意图的方法时,只要我发送这种名称,实体就是null。知道怎么解决这个问题吗?正如我所描述的那样,像Desk 2这样只有一个空间的名称就可以了。也许有一种方法可以将多个单词保存为LUIS中的实体?

在下图中,顶部的条目是“给我看电话亭4”,最下面的一个是“给我看台2”。

enter image description here

1 个答案:

答案 0 :(得分:0)

这需要一点腿,但您是否尝试过以编程方式更新模型?

在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
        }
    ]
}

我承认我之前没有尝试过这样做,但我不知道这种方式的标签/培训在逻辑上是如何失败的。

我注意到你的实体有一件事是它们由一个项目和一个数字组成。你可以把它们扔进一个复合实体;但是在这种情况下,按照我上面提到的方式做这件事是做你正在寻找的好方法。

也就是说,如果您计划将办公室家具(?)用作单独意图的实体,例如'PurchaseNewOfficePieces',则可能需要为'Desk 2'创建使用复合实体和'Phone Booth 4'