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