LUIS提取数字的难度

时间:2018-06-13 13:42:00

标签: botframework bots luis

我有一个LUIS模型用于预订音频通话说" BookAcall"我有如下的话语" 我使用了预构建实体 Number 来从句子中提取任何数字实体。

为2个位置的5人预订音频通话

现在,从LUIS json我得到了两个实体作为数字。

  1. 5 ,其他 2 ,但在LUIS中无法理解 5 是否是人和 2 < / strong>不是位置
  2. 需要建议。 感谢

    以下是话语和实体的屏幕截图,我使用了List类型实体,用于No of users。 enter image description here

    {
      "query": "book a call tomorrow for 5 people for 2 location",
      "topScoringIntent": {
        "intent": "BookACall",
        "score": 0.9560004
      },
      "intents": [
        {
          "intent": "BookACall",
          "score": 0.9560004
        },
        {
          "intent": "CryptoTrading",
          "score": 0.0283502769
        },
        {
          "intent": "None",
          "score": 0.00855541
        }
      ],
      "entities": [
        {
          "entity": "tomorrow",
          "type": "builtin.datetimeV2.date",
          "startIndex": 12,
          "endIndex": 19,
          "resolution": {
            "values": [
              {
                "timex": "2018-06-15",
                "type": "date",
                "value": "2018-06-15"
              }
            ]
          }
        },
        {
          "entity": "location",
          "type": "NoOfLocation",
          "startIndex": 40,
          "endIndex": 47,
          "resolution": {
            "values": [
              "Location"
            ]
          }
        },
        {
          "entity": "people",
          "type": "NoOfUsers",
          "startIndex": 27,
          "endIndex": 32,
          "resolution": {
            "values": [
              "People"
            ]
          }
        },
        {
          "entity": "5",
          "type": "builtin.number",
          "startIndex": 25,
          "endIndex": 25,
          "resolution": {
            "value": "5"
          }
        },
        {
          "entity": "2",
          "type": "builtin.number",
          "startIndex": 38,
          "endIndex": 38,
          "resolution": {
            "value": "2"
          }
        }
      ]
    }
    

3 个答案:

答案 0 :(得分:2)

添加包含模式中数字的模式

答案 1 :(得分:1)

如DFBerry在此SO thread中所建议的那样,您可以创建一个composite entity并将用户的数字实体和列表类型实体作为子实体。然后,您可以从返回的响应中提取该复合实体中的用户数。

创建一个复合实体,如下所示:

enter image description here

从该复合实体中提取用户数量:

enter image description here

答案 2 :(得分:0)

  

为2个位置预订5人的音频通话

由于人和地点是实体。您可以通过选中实体的start index and end index来尝试跟踪与人和位置对应的数字。

场景可能是:

为2个位置预订5人的音频通话 为5人预订2个位置的音频电话

因此,如果您获得2个数字类型实体和一个位置类型,则人员类型检查首先发生的是哪个数字,然后检查首先发生人员或位置的实体。通过这种方式,您可以进行映射。