LUIS:在一个话语中识别多个相同的复合实体

时间:2018-04-06 14:20:54

标签: json botframework luis

我是LUIS的新手,我还在努力解决问题,我似乎无法弄清楚的一件事就是如何让我的LUIS应用识别哪些实体属于同一个当一个话语中有多个实例时,复合实体。我知道这令人困惑,让我试着更好地解释一下:

我的测试应用程序是关于订购的东西。

我有这句话:

  

为我买2个红辣椒辣椒和一个惊人的蜘蛛侠形象

返回的JSON是:

{
  "query": "purchase for me 2 red hot chilli pepper albuns and an amazing spiderman figure please",
  "topScoringIntent": {
    "intent": "Order",
    "score": 0.9981847
  },
  "intents": [
    {
      "intent": "Order",
      "score": 0.9981847
    },
    {
      "intent": "Read",
      "score": 0.0023417694
    },
    {
      "intent": "None",
      "score": 0.00118408469
    }
  ],
  "entities": [
    {
      "entity": "red hot chilli pepper albuns",
      "type": "Item.Description",
      "startIndex": 18,
      "endIndex": 45,
      "score": 0.8821352
    },
    {
      "entity": "amazing spiderman figure",
      "type": "Item.Description",
      "startIndex": 54,
      "endIndex": 77,
      "score": 0.9167113
    },
    {
      "entity": "2",
      "type": "Item.Quantity",
      "startIndex": 16,
      "endIndex": 16,
      "score": 0.9843564
    },
    {
      "entity": "an",
      "type": "Item.Quantity",
      "startIndex": 51,
      "endIndex": 52,
      "score": 0.948889554
    }
  ]
}

它正确识别实体,但它不知道" 2"对应于红辣椒辣椒"红辣椒辣椒"和" an"对应于#34;惊人的蜘蛛侠形象"

我的实体是:

Item.Quantity - simple entity
Item.Description - simple entity 
Item.Number - simple entity
Item - composite entity with the above as children

这甚至可以吗?

1 个答案:

答案 0 :(得分:1)

是的,完全有可能。而且您正在使用复合实体的正确轨道,只需要更改复合实体的培训。首先,对于复合实体,应添加和训练子实体(您已完成)。

接下来是标记复合实体。转到订单意图,任何话语都可以说:

  

为我购买2个红辣椒辣椒albns

选择 Item.Quantity 实体,然后从列表中选择 Wrap in composite entity 。将出现一个绿线,现在将光标向右移动直到红辣椒辣椒(或直到你要包装的任何实体),你会发现绿线跟随指示复合实体。从显示的列表中选择合成名称 Item

对于同一话语中的多个复合实体,例如

  

为我买2个红辣椒辣椒和一个惊人的蜘蛛侠形象

重复相同的过程,除了第一个复合实体将被包装并训练为2 red hot chilli pepper albuns,下一个复合实体将被包裹并训练为an amazing spiderman figure

不要忘记训练和发布LUIS应用程序。

要更深入地了解复合实体,请查看Luis tutorial - composite entity