Bots 路易斯不认识带空格的名字

Bots 路易斯不认识带空格的名字,bots,azure-language-understanding,Bots,Azure Language Understanding,所以我有了一个用MicrosoftBot框架构建的机器人,它使用LuisAPI进行文本识别。有了这个机器人,我可以询问关于我在后端得到的不同设备的信息。他们的名字像书桌,书桌2和电话亭4。第一个和第二个名字都很好用,但每当我发送一个包含2个或更多空格的名字时,LUIS都无法识别它。我已经将所有的名字添加到了路易斯的一个功能列表中,但它似乎没有任何作用。当我在bot代码中执行该目的的方法时,每当我发送此类名称时,实体都是空的。你知道我该怎么解决这个问题吗?正如我所描述的,名字只有一个空间,比如2号

所以我有了一个用MicrosoftBot框架构建的机器人,它使用LuisAPI进行文本识别。有了这个机器人,我可以询问关于我在后端得到的不同设备的信息。他们的名字像书桌,书桌2和电话亭4。第一个和第二个名字都很好用,但每当我发送一个包含2个或更多空格的名字时,LUIS都无法识别它。我已经将所有的名字添加到了路易斯的一个功能列表中,但它似乎没有任何作用。当我在bot代码中执行该目的的方法时,每当我发送此类名称时,实体都是空的。你知道我该怎么解决这个问题吗?正如我所描述的,名字只有一个空间,比如2号办公桌就可以了。也许有一种方法可以在LUIS中将多个单词保存为一个实体

在下图中,顶部条目是“向我展示电话亭4”,底部条目是“向我展示办公桌2”


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

在LUIS API参考上,您可以在中标记或执行此操作。这样做的好处是,您可以根据索引位置选择应该识别为实体的内容

示例:

{
    "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”
,那么为
“2号办公桌”
“4号电话亭”
创建一个复合实体可能是值得的