使用 IBM Watson 对话从用户输入中获取用户信息
Get user information from user input using IBM Watson conversation
我想知道如何在标准聊天中使用 IBM Watson Conversation 提取用户名:
例如:
bot: What is your name?
User respond: my name is Mike
bot: ok good morning Mike. -> i want this
如何存储用户在聊天中输入的名字?所以机器人可以回答给定的名字?
编辑: WCS 中有一项新功能,可以提取基于模式的实体——换句话说,用户能够基于正则表达式定义实体。 DOC 中的更多信息:
https://console.bluemix.net/docs/services/conversation/entities.html#creating-entities [2017 年 11 月 30 日]
您可以通过编写 <? input.text ?>
来访问用户输入文本,那么 WCS 支持的两种方法可能会有用:
<?input.text.matches('regexp')?>
return 如果输入与输入正则表达式匹配则为真。
和
<?input.text.extract('regexp', 0)?>
(第二个参数是正则表达式组号)。提取正则表达式和组指定的部分输入字符串。
例如对话节点上下文中的这个表达式:
"lastword" : "<?input.text.extract('\w+$', 0)?>"
将从用户提供的输入文本中提取最后一个词。
请注意,对于您的用例来说,这不是一个完美的解决方案,因此添加一个对话框流来确认解析的字符串是否真的是用户名可能是个好主意...
我想知道如何在标准聊天中使用 IBM Watson Conversation 提取用户名:
例如:
bot: What is your name?
User respond: my name is Mike
bot: ok good morning Mike. -> i want this
如何存储用户在聊天中输入的名字?所以机器人可以回答给定的名字?
编辑: WCS 中有一项新功能,可以提取基于模式的实体——换句话说,用户能够基于正则表达式定义实体。 DOC 中的更多信息:
https://console.bluemix.net/docs/services/conversation/entities.html#creating-entities [2017 年 11 月 30 日]
您可以通过编写 <? input.text ?>
来访问用户输入文本,那么 WCS 支持的两种方法可能会有用:
<?input.text.matches('regexp')?>
return 如果输入与输入正则表达式匹配则为真。
和
<?input.text.extract('regexp', 0)?>
(第二个参数是正则表达式组号)。提取正则表达式和组指定的部分输入字符串。
例如对话节点上下文中的这个表达式:
"lastword" : "<?input.text.extract('\w+$', 0)?>"
将从用户提供的输入文本中提取最后一个词。
请注意,对于您的用例来说,这不是一个完美的解决方案,因此添加一个对话框流来确认解析的字符串是否真的是用户名可能是个好主意...