Ibm cloud 如何从Watson助手(对话)中提取特殊信息?

Ibm cloud 如何从Watson助手(对话)中提取特殊信息?,ibm-cloud,watson-conversation,watson-assistant,Ibm Cloud,Watson Conversation,Watson Assistant,我有用户输入“串行GX0211229342的主机名是什么?”。序列号可以是数字或字母数字组合(例如7842344或H52WBD1等) 如何从句子中提取GX0211229342,并将其设置到Watson assistant(Watson对话)中的上下文中?您的案例很棘手,因为如果ID仅为字母,它可能是句子的任何部分。使用$,您已经告诉正则表达式处理器在句子末尾查找模式。因此,它只适用于这些情况 你能做的就是利用一个。有一些。基本上,搜索以下内容(未测试): 第一个(“序列号”)将被检测并忽略,“数

我有用户输入
“串行GX0211229342的主机名是什么?”
。序列号可以是数字或字母数字组合(例如7842344或H52WBD1等)


如何从句子中提取GX0211229342,并将其设置到Watson assistant(Watson对话)中的上下文中?

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

你能做的就是利用一个。有一些。基本上,搜索以下内容(未测试):


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

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


会话服务将能够基于实体模式匹配来识别序列号。

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

该id前面总是有“序列号”这个词,还是可以在任何地方?序列号也可以是序列号,我试图用它来提取“”,但它只有在序列号XXXX之后没有更多的词时才起作用。当我问“序列号XXXX是否有效?”?如果序列号或序列号总是在该id前面,您有什么解决方案吗?谢谢谢谢chughts,我尝试了Entry模式,但正则表达式似乎不起作用,我尝试使用^[a-zA-Z0-9]*$,但它无法识别序列号,如SFOX2148PKJK、0050600或5VHGCF1?正则表达式与其他正则表达式不同吗?
(?:serial)(?:number)?[0-9a-zA-Z]+