为什么我在创建LUIS模型时使用复合实体?

时间:2016-10-21 17:50:12

标签: botframework luis

我从使用Bot Framework和LUIS的机器人开始。现在我在理解为什么要使用复合实体方面有点麻烦。到目前为止,我从LUIS文档得到的是,复合实体用于对#34;类别"下的常规实体进行分组。

如果我的机器人允许用户订购比萨饼,我需要例如三个实体:比萨饼​​的数量,比萨饼的大小和名称。我知道我可以将这些实体分组在一个名为OrderInformation的复合实体下。但是从做这样的事情我会得到什么? LUIS方面的表现如何?更好的学习?

我问这个,因为这是LUIS返回的JSON。我仍然得到所有常规实体,就像我需要它们一样。

{
  "query": "I want to order 3 big pepperoni pizzas",
  "intents": [
    {
      "intent": "OrderFood",
      "score": 0.999999046
    },
    {
      "intent": "None",
      "score": 0.13833718
    },
    {
      "intent": "FindNews",
      "score": 0.0120750656
    }
  ],
  "entities": [
    {
      "entity": "3",
      "type": "Number",
      "startIndex": 16,
      "endIndex": 16,
      "score": 0.925765157
    },
    {
      "entity": "big",
      "type": "Size",
      "startIndex": 18,
      "endIndex": 20,
      "score": 0.926587939
    },
    {
      "entity": "pepperoni pizzas",
      "type": "Food",
      "startIndex": 22,
      "endIndex": 37,
      "score": 0.8726012
    },
    {
      "entity": "3 big pepperoni pizzas",
      "type": "Order",
      "startIndex": 16,
      "endIndex": 37,
      "score": 0.8385274
    }
  ],
  "compositeEntities": [
    {
      "parentType": "Order",
      "value": "3 big pepperoni pizzas",
      "children": [
        {
          "type": "Number",
          "value": "3"
        },
        {
          "type": "Food",
          "value": "pepperoni pizzas"
        },
        {
          "type": "Size",
          "value": "big"
        }
      ]
    }
  ]
}

复合实体如何让我的机器人生活更轻松?

1 个答案:

答案 0 :(得分:1)

复制实体在捕捉“两张巴黎成人票”等内容时非常有用;你捕获“两个”和“巴黎”是单独的实体,而“成人票”是一个复合实体,它不仅定义“门票”而且定义子类型“成人”。

“成人”本身不需要是实体,而是作为复合实体的一部分存在。