LUIS模式功能未检测到我的实体

时间:2017-07-31 08:18:37

标签: bots botframework luis

我想从一个意图中检测一个实体,这个实体可能以多种方式编写:

AB 123456
AB 123 456
AB123456

AB是封闭列表中的一个选项,其余的应该被检测为数字。只要是AB与数字之间的空格,就会检测/解析列表项和数字。

我发现了模式功能,并希望这可以帮助解析器。

不幸的是,该实体仍然无法被识别。我尝试以不同的方式编写模式,但没有成功。

^([A-Za-z] {1,2})([0-9] +)$

([a-z] {2})([\ d] +)

[a-z] {2} [\ d] +

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

  

AB是封闭列表中的一个选项,其余的应该被检测为数字。只要是AB与数字之间的空格,就会检测/解析列表项和数字。

如果"AB"来自封闭列表实体,那么您应该为数字创建一个简单实体,并将复合实体保存在一起。这个简单的实体需要用一些话语进行训练,例如: "123456""123 789""456789""201731"然后模型(借助于模式功能的[\d]{6}的RegExp模式)应该能够处理剩下的事情。

您可以将列表实体和新创建的简单实体用作复合实体的子项。可能是“产品”之类的东西,或者更好的东西。

我想你可能会认为封闭的列表是机器学习的,但事实并非如此。它直接与话语匹配,因此如果您的列表实体具有以下内容:

canonicalForm: "ProductId"
synonyms: "AB", "BA", "AB 123456"

并且模型处理了话语 "BA 123456" ,LUIS模型会将"BA"识别为"ProductId"而无法识别"123456" at所有。通过扩展,整个话语将不会被识别为"ProductId"

答案 1 :(得分:0)

仅当没有空格时问题才存在。如果我用“ AB123456”训练,则不能仅标记“ AB”。我只能选择整个单词。

Luis仅分析文本,并帮助您获取工作所需的端点和上下文。它不会执行编程活动,例如读取字符串的特定部分并分配给实体...至少还没有