我想从一个意图中检测一个实体,这个实体可能以多种方式编写:
AB 123456
AB 123 456
AB123456
AB是封闭列表中的一个选项,其余的应该被检测为数字。只要是AB与数字之间的空格,就会检测/解析列表项和数字。
我发现了模式功能,并希望这可以帮助解析器。
不幸的是,该实体仍然无法被识别。我尝试以不同的方式编写模式,但没有成功。
^([A-Za-z] {1,2})([0-9] +)$
([a-z] {2})([\ d] +)
[a-z] {2} [\ d] +
有什么想法吗?
答案 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仅分析文本,并帮助您获取工作所需的端点和上下文。它不会执行编程活动,例如读取字符串的特定部分并分配给实体...至少还没有