使用带有重叠单词的短语列表功能,使用LUIS训练模型

时间:2017-04-11 13:01:51

标签: nlp botframework luis

我有一个例如ABC SSS的单词。我需要将其视为一个实体。同时,这个ABC SSS短语在许多其他单词之前,需要被识别为一个不可互换的实体。例如ABC SSS word。我如何训练LUIS才能做到这一点。我尝试ABC SSS作为短语功能,但后来LUIS没有将ABC SSS word识别为实体。目前,我将ABC SSS标记为功能短语,将word标记为单独的功能短语。这不太理想。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您需要创建复合实体,而不是为此使用短语列表。

这是LUIS上实体创建页面的屏幕截图。我创建了三个简单的实体和一个复合实体,它接受了另外三个实体:

Entities

以下是我在查询中从LUIS获得的响应中的一些片段。第一位表示实际查询和匹配意图。

"query": "order large pepperoni pizza",
"topScoringIntent": {
    "intent": "OrderPizza",
    "score": 0.9999995
},

在实体列表下,您可以找到简单的复合实体,如下所示。

{
    "entity": "large",
    "type": "PizzaSize",
    "startIndex": 6,
    "endIndex": 10,
    "score": 0.9186653
},
{
    "entity": "large",
    "type": "Pizza", // This is the composite entity!
    "startIndex": 6,
    "endIndex": 10,
    "score": 0.940835536
}

以下是复合实体的列表:

"compositeEntities": [
    {
      "parentType": "Pizza",
      "value": "large",
      "children": [
        {
          "type": "PizzaSize",
          "value": "large"
        }
      ]
    },
    {
      "parentType": "Pizza",
      "value": "pepperoni",
      "children": [
        {
          "type": "PizzaTopping",
          "value": "pepperoni"
        }
      ]
    },
    {
      "parentType": "Pizza",
      "value": "pizza",
      "children": []
    }
]

答案 1 :(得分:0)

复合实体非常适合这种情况:

设置" ABC SSS"作为实体1,但随后标记" ABC SSS"加上复合实体中的其他单词2.这应该足以捕获" ABC SSS"在其他短语出现的情况下,作为实体1,整个句子作为实体2。

此外,如果您想在拍摄时捕捉它们,也可以将其他单词标记为实体。