想将语言翻译添加到自己的应用程序吗? IBM Bluemix 中的 机器翻译 服务使用了 IBM Watson 认知计算系统,将用户输入的文本转换成其他语言。 Node-RED 流编辑器使得在 Bluemix 应用程序中使用 Machine Translation 服务就像单击鼠标一样简单。我们将向您展示如何使用 Node-RED 创建一个应用程序,用该应用程序来暴露 Machine Translation 服务实例的一个 REST 端点。然后,我们将添加一个我们用 AngularJS 创建的用户界面。该用户界面包括对用户输入文本的 AFINN-111 情感分数 的可视化。在短短几分钟内,您的应用程序将会讲英语、西班牙语、法语、葡萄牙语或阿拉伯语 — 并在同一时间报告用户的相关感受。
阅读: Machine Translation 服务入门
阅读: 使用 Node-RED starter 创建应用程序
阅读: 使用 React 创建一个 IBM Watson 浏览器
“ Node-RED 流读入一个消息,得到它的情感分数,然后使用 Watson 将消息翻译成西班牙语。 ”
运行应用程序
获得 UI 代码
机器翻译流使用了 Bluemix 中的 Node-RED 功能。要开发该流程,首先需要创建一个 Node-RED 应用程序,并将 Machine Translation 服务添加给该应用程序。
点击查看大图
关闭 [x]
现在,您将使用 Node-RED 流编辑器来构建一个 REST 服务。该流会读取一条消息,得到它的情感分数,然后使用 Watson 翻译该消息(在本例中,该消息被翻译成西班牙语)。请按照下列步骤来创建、配置和测试工作流:
http
输入节点拖到 画布上。 http
节点,为 GET
方法配置它,并在 url 字段中输入 /olli
: 单击 Ok 创建一个用于侦听 /olli 的 REST 服务。 function
的函数节点拖到画布上。使用鼠标将 http
节点上的输出方块连接到 function
节点上的输入方块。 该函数是必需的,因为 http
输入节点的默认消息有效负载输出是一个复杂的 JSON 对象,其中,每个请求的参数都是一个字段。翻译服务和情感分析都期望收到一个简单的字符串。该函数将收到的消息被作为一个请求参数复制到 msg
对象的有效载载字段中,以便流的其余部分可以使用它。
Swap Arguments
。将以下三行代码添加到 Function 字段:
msg.lang=msg.payload.lang;<br /> msg.payload=msg.payload.message;<br /> return msg;
sentiment
分析节点拖到画布,并将它连接到名称为 Swap Arguments
的函数节点。情感分析预期收到一个人类语言的字符串,并返回一个范围从 -5 到 +5 的情感分数,其中负数值代码表示负面情绪,正数值代码表示正面情绪,零表示中性情绪。 Machine Translation
IBM Watson 节点拖到画布上,并将它连接到 sentiment
节点。 此节点提取 Machine Translation
调用和 sentiment
节点的输出,并将它们转换为一个容易使用的字符串返回。
function
节点,并将它连接到 Machine Translation
节点。双击新节点,提供一个名称(如 concatenate response
),并将以下两行代码添加到 Function 字段:
msg.payload=msg.payload+;+msg.sentiment.score;<br /> return msg;
http
响应节点,并将其连接到函数节点。在 Node-RED 中的完整流程应该是这样的: http://yourappname.mybluemix.net/olli?message=the%20world%20is%20great&lang=mt-enus-eses
现在,REST 服务已准备就绪,需要一个应用程序来调用它。我们使用 AngularJS 为您构建一个 starter 应用程序。这个单页应用程序包含一个 index.html 文件,并调用 REST 服务。您需要做的是将代码的副本下载到 Bluemix DevOps Services 中,并从那里开始执行部署,将 UI 注入到 Node-RED 运行时。
customerController()
函数将会运行并将一个 submit()
函数添加到视图的范围中,当用户单击 Translate 按钮时,该函数将被调用。按钮的单击事件会触发对 Node-RED REST 服务的一个 HTTP 请求,向它传递要翻译的消息以及用户所选择的翻译语言。当接收到响应时,翻译后的消息和情感值被设定在范围内,然后被显示在视图中。 点击查看大图
关闭 [x]
您的应用程序现在运行在 http:// yourappname .mybluemix.net/ui 上。
在本教程中,您学会了如何使用 Node-RED 快速创建一个 REST 服务,以及如何通过在 Bluemix 上运行的 AngularJS 应用程序访问该服务。您的应用程序使用 Bluemix Machine Translation 服务将文本进行语言转换, 并通过情感分析服务提供情感分数。您现在可以使用 Node-RED 构建更多的 REST 服务,并开发应用程序来使用这些服务。