0

我有用户输入"What is the hostname of serial GX0211229342?"。序列号可以是数字或字母数字组合(例如 7842344 或 H52WBD1 等)。

如何从句子中提取 GX0211229342 并将其设置到 Watson 助手(Watson Conversation)中的上下文中?

4

3 回答 3

0

如果序列号可以由 1 或 2、任意数量的正则表达式定义,那么您可以选择基于这些正则表达式创建序列号实体。

对话服务将能够根据实体模式匹配来识别序列号。

于 2018-05-04T10:22:37.567 回答
0

您的情况很棘手,因为如果 ID 只是字母,它可能是句子的任何部分。使用$,您已经告诉正则表达式处理器在句子末尾查找模式。因此,它仅适用于这些情况。

您可以做的是利用RE2 语法提供的非捕获组。在 SO 上有一些非捕获组的示例。基本上,搜索类似以下内容(未测试):

(?:serial)(?:number)?[0-9a-zA-Z]+

第一个(“串行”)将被检测并忽略,“数字”是可选的并且将被忽略,然后是字母数字。

于 2018-05-04T10:02:28.130 回答
0

我想通了,使用 Watson 实体模式,正则表达式应该是这样的: ([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[ 0-9a-zA-Z]* 它将用于从输入中提取字母数字。还有一种模式是 [0-9]+,它用于提取数字。谢谢大家的帮助。

于 2018-05-07T09:25:20.450 回答