1

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

为了获得股票价格,我使用的是 yahoo Finance api。

对于我正在使用的基本对话

IBM 沃森对话 API

我也用过

IBM NLU(自然语言理解)API

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

例如,如果我搜索

“INFY的价格是多少?”

那么它应该给我正确的答案并且应该被过滤掉,因为我的行为应该是在 yahoo Finance api 中传递 INFY。如果我更改问题的格式,这也应该有效。

下面是我在 bluemix (IBM) 的节点红色面板上制作的流程图设置。

在此处输入图像描述

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

4

1 回答 1

2

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

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

一般来说,Watson Conversation 服务和一些 3rd 方服务的集成需要在 Conversation 服务之外完成 - 到目前为止 - 不明确支持调用 3rd 方 API,因此这里的 node.js 解决方案似乎是一个合理的解决方案。您需要指定的是 WCS 和 3rd 方服务的集成方式。一般管道可能如下所示:

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

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

于 2017-04-15T08:23:47.107 回答