【发布时间】:2018-09-24 02:07:38
【问题描述】:
例如,我有如下课程的用户话语:
CS101
PHY101
CHE101
如何从中获取 2 个实体,例如:课程名称、课程编号?
所以在我的例子中:
Utterance: CS101
Entities:
Course Name: CS
Course Number: 101
【问题讨论】:
-
您可以添加用户话语的样本吗?
-
这正是我写的:CS101、PHY101 等
-
我一直在研究这个,但我无法让它工作,我认为你最好的选择是使用这个正则表达式
[a-z]{2,}[0-9]{3,}创建一个Regex Entity。这将匹配话语中至少有 2 个单词后跟至少 3 个数字的任何部分。在您的机器人代码中,您可以执行以下操作:var courseName = entity.Where(char.IsLetter); var courseNumber = entity.Where(char.IsNumber); -
这很不幸。不过,谢谢你调查它。
-
@Bill 我刚刚与一位 LUIS 开发人员直接交谈,并确认 Javier Capello 是正确的。使用 LUIS,我们知道它如何对内置话语中的单词进行标记,并且用户无法自定义标记化,这是您的课程(如 CS101 等)所需要的。LUIS 无法通过标记化方式将 CS 与 101 分开检测& 仅将其视为 1 个令牌。您可以按照 Javier 的建议在您的机器人代码中使用 RegEx 以进行适当的解析
标签: nlp azure-language-understanding