使用IBM Watson为股票市场创建一个聊天机器人

时间:2017-04-14 09:22:45

标签: ibm-cloud node-red watson-conversation watson

我想创建一个可以进行基本对话并在谈话中给我股票价格的股票机器人。

为了获得股票价格我正在使用雅虎财务api。

基本对话我正在使用

  

IBM watson conversation api

我也用过

  

IBM NLU(自然语言理解)Api

以不同的方式验证不同的公司名称,但我没有得到预期的结果。

例如,如果我搜索

  

“INFY的价格是多少?”

那么它应该给我正确的答案并且应该过滤掉,因为我的行动应该是通过yahoo finance api中的dmart。如果我改变问题的格式,这也应该有效。

下面是我在bluemix(IBM)的node-red面板上进行的流程图设置。

enter image description here

你能帮我找出确切的api和流程,这可以帮助我实现目标。

1 个答案:

答案 0 :(得分:2)

这是一个非常大的问题,但至少有一些第一印象评论......

Watson Conversation Service已经与NLU组件集成 - 意图和实体TAB。可以使用实体和实体同义词从输入文本中提取公司名称。这里的缺点是用户需要列出公司名称的所有可能变体,但另一方面,实体规范可以通过csv文件导入到Conversation中。

一般来说,Watson Conversation服务和一些第三方服务的集成需要在Conversation服务之外完成 - 就像现在一样 - 并不明确支持调用第三方API,所以这里的node.js解决方案似乎是声音一个。您需要指定的是WCS和第三方服务的集成方式。一般管道可能如下所示:

  • 用户输入文本到系统
  • 文字转到Watson Conversation Service
  • 意图和公司名称在WCS中提取
  • WCS发送文本输出+在节点output字段中设置一个特殊变量,例如"stocks" : "Google",它将告诉位于会话服务之后的node.js组件以查找并包含股票市场价值谷歌在输出文本中的内容

现在 - 回到您的解决方案 - 拥有专用的NLC服务可能是有意义的,该服务仅用于提取系统中的公司名称。但是我只会在结果如此时使用它。 WCS服务中的entities不足以正确捕获公司(我的感觉是,对于这个特定用例,具有同义词的实体可能正常工作)。