如何从Watson Assistant(对话)中提取特殊信息?

时间:2018-05-04 08:15:05

标签: ibm-cloud watson-conversation watson-assistant

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

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

3 个答案:

答案 0 :(得分:0)

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

您可以做的是使用non-capturing group provided by the RE2 syntax。有一些examples of non-capturing group here on SO。基本上,搜索以下内容(未测试):

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

第一个("序列号")将被检测并被忽略,"数字"是可选的,将被忽略,然后是字母数字。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我弄清楚,使用Watson实体模式,正则表达式应为:([0-9] + [a-zA-Z] + | [a-zA-Z] + [0-9] +)[0-9A-ZA-Z] * 它将用于从输入中提取字母数字。 还有一个模式是[0-9] +它用于提取数字。 谢谢大家的帮助。