如何从 Watson Assistant (Conversation) 中提取特殊信息?
How to extract special information from Watson Assistant (Conversation)?
我有用户输入 "What is the hostname of serial GX0211229342?"
。序列号可以是数字或字母数字的组合(例如 7842344 或 H52WBD1 等)。
如何从句子中提取 GX0211229342 并将其设置到 Watson 助手 (Watson Conversation) 的上下文中?
你的情况很棘手,因为如果 ID 只是字母,它可能是句子的任何部分。使用 $
,您已告诉正则表达式处理器在句子末尾查找模式。因此,它只适用于这些情况。
你可以做的是使用 non-capturing group provided by the RE2 syntax. There are some examples of non-capturing group here on SO。基本上,搜索如下内容(未测试):
(?:serial)(?:number)?[0-9a-zA-Z]+
第一个 ("serial") 将被检测并忽略,"number" 是可选的并且将被忽略,然后是字母数字。
如果序列号可以由 1 或 2 任意数量的正则表达式定义,那么您可以选择基于这些正则表达式创建序列号实体。
会话服务将能够根据实体模式匹配识别序列号。
我弄明白了,使用 Watson 实体模式,正则表达式应该是这样的:([0-9]+[a-zA-Z]+|[a-zA-Z]+[0- 9]+)[0-9a-zA-Z]*
它将用于从输入中提取字母数字。
还有一个模式是 [0-9]+ 它被用来提取数字。
谢谢大家的帮助。
我有用户输入 "What is the hostname of serial GX0211229342?"
。序列号可以是数字或字母数字的组合(例如 7842344 或 H52WBD1 等)。
如何从句子中提取 GX0211229342 并将其设置到 Watson 助手 (Watson Conversation) 的上下文中?
你的情况很棘手,因为如果 ID 只是字母,它可能是句子的任何部分。使用 $
,您已告诉正则表达式处理器在句子末尾查找模式。因此,它只适用于这些情况。
你可以做的是使用 non-capturing group provided by the RE2 syntax. There are some examples of non-capturing group here on SO。基本上,搜索如下内容(未测试):
(?:serial)(?:number)?[0-9a-zA-Z]+
第一个 ("serial") 将被检测并忽略,"number" 是可选的并且将被忽略,然后是字母数字。
如果序列号可以由 1 或 2 任意数量的正则表达式定义,那么您可以选择基于这些正则表达式创建序列号实体。
会话服务将能够根据实体模式匹配识别序列号。
我弄明白了,使用 Watson 实体模式,正则表达式应该是这样的:([0-9]+[a-zA-Z]+|[a-zA-Z]+[0- 9]+)[0-9a-zA-Z]* 它将用于从输入中提取字母数字。 还有一个模式是 [0-9]+ 它被用来提取数字。 谢谢大家的帮助。