2017-05-24 138 views
0

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

在下图中,顶部条目是“show me phone booth 4”,底部是“show me desk 2”。

enter image description here

回答

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

我承认我没有尝试之前,要做到这一点,但我不明白如何标记/培训这种方式将逻辑上失败。


有一两件事我注意到你的实体是,他们组成一个项目,也有一些的。你可以把它们扔到一个复合实体中;但在这种情况下,按照我上面提到的方式进行操作是一种很好的方法来执行您要查找的内容。也就是说,如果您打算将办公家具件(?)用作单独意图的实体,例如'PurchaseNewOfficePieces',则可能需要支付使用复合实体'Desk 2''Phone Booth 4'

相关问题