炼数成金 门户 商业智能 Watson 查看内容

利用 IBM Watson 将语言翻译功能添加到应用程序

2016-1-26 16:28| 发布者: 炼数成金_小数| 查看: 21237| 评论: 0|来自: IBM

摘要: 想将语言翻译添加到自己的应用程序吗?IBM Bluemix 中的 机器翻译 服务使用了 IBM Watson 认知计算系统,将用户输入的文本转换成其他语言。Node-RED 流编辑器使得在 Bluemix 应用程序中使用 Machine Translation 服 ...

tm 工具 测试 商业智能 Watson

想将语言翻译添加到自己的应用程序吗?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 将消息翻译成西班牙语。”

构建应用程序需要做的准备工作
一个 Bluemix 帐户和一个 Bluemix DevOps Services 帐户,两个帐户都被链接到您的 IBM ID

步骤 1. 设置 Bluemix 服务
机器翻译流使用了 Bluemix 中的 Node-RED 功能。要开发该流程,首先需要创建一个 Node-RED 应用程序,并将 Machine Translation 服务添加给该应用程序。
登录到 Bluemix。
在目录中,选择 Node-RED Starter:
Bluemix 目录中的 Node-RED Start Community 磁贴的屏幕截图
在 Name 和 Host 字段中输入您选择的惟一名称,并单击 CREATE。
返回 Bluemix 仪表板,并单击刚刚创建的 Node-RED 应用程序。
单击 Add a Service。
在目录的 Watson 类别中单击 Machine Translation。您可以在 Add Service 对话框的 App 字段中看到您的 Node-RED 应用程序。
单击 CREATE,在看到提示的时候单击 RESTAGE。
在应用程序重演后,单击 Routes URL 在新的浏览器页面中打开您的 Node-RED 应用程序:屏幕截图显示了您的应用程序的 Routes URL
在 Node-RED 应用程序中,单击 Go to your Node-RED flow editor 按钮。

步骤 2. 在 Node-RED 中构建 REST 机器翻译流
现在,您将使用 Node-RED 流编辑器来构建一个 REST 服务。该流会读取一条消息,得到它的情感分数,然后使用 Watson 翻译该消息(在本例中,该消息被翻译成西班牙语)。请按照下列步骤来创建、配置和测试工作流:
在调色板中,将一个 http 输入节点拖到 http 节点图标的屏幕截图 画布上。
双击画布中的 http 节点,为 GET 方法配置它,并在 url 字段中输入 /olli:
http 节点配置对话框的屏幕截图
单击 Ok 创建一个用于侦听 /olli 的 REST 服务。
将名称为 function 的函数节点拖到画布上。使用鼠标将 http 节点上的输出方块连接到 function 节点上的输入方块。
该函数是必需的,因为 http 输入节点的默认消息有效负载输出是一个复杂的 JSON 对象,其中,每个请求的参数都是一个字段。翻译服务和情感分析都期望收到一个简单的字符串。该函数将收到的消息被作为一个请求参数复制到 msg 对象的有效载载字段中,以便流的其余部分可以使用它。
双击新的节点并在 Name 字段中键入 Swap Arguments。将以下三行代码添加到 Function 字段:
msg.lang=msg.payload.lang;
msg.payload=msg.payload.message;
return msg;
function 节点配置对话框的屏幕截图
单击 OK。
将 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;
return msg;
function 节点配置对话框的屏幕截图
单击 OK。
添加一个 http 响应节点,并将其连接到函数节点。在 Node-RED 中的完整流程应该是这样的:完整 Node-RED 流的屏幕截图,显示了六个连接的节点
单击 DEPLOY。您的 REST 服务启动并运行,每个人都可以使用它。
在浏览器中,通过发送一个消息来测试您的 REST 服务: http://yourappname.mybluemix.net/olli?message=the%20world%20is%20great&lang=mt-enus-eses
检查响应是否将文本翻译成西班牙语并返回情感分数: 
来自 REST 服务的翻译响应的屏幕截图
步骤 3. 将 AngularJS UI 添加到 Node-RED
现在,REST 服务已准备就绪,需要一个应用程序来调用它。我们使用 AngularJS 为您构建一个 starter 应用程序。这个单页应用程序包含一个 index.html 文件,并调用 REST 服务。您需要做的是将代码的副本下载到 Bluemix DevOps Services 中,并从那里开始执行部署,将 UI 注入到 Node-RED 运行时。
返回 Bluemix 仪表板,单击您的 Node-RED 应用程序。
在应用程序概述页面,单击 Add GIT 链接。
保留选中该复选框,并单击 CONTINUE: 
Create Git Repository 对话框的屏幕截图
单击 EDIT CODE 按钮。
单击本教程的 获得 UI 代码 按钮(就在 步骤 1 的上方),并将 ui.zip 文件保存到本地文件系统。
在您的 Bluemix DevOps Services 项目的代码编辑器的目录树中,右键单击 public 文件夹,选择 Import -> File or zip archive: 
将文件导入 Bluemix DevOps Services 项目代码编辑器的屏幕截图
从本地存储选中 ui.zip 并单击 OK,将文件的内容解压缩到您的项目的 public 目录: 
提示要解压缩文件的屏幕截图
现在,代码在您的项目的 public/ui 目录中。您不需要更改代码,但可以查看 index.html,以了解其逻辑。第 36 行是 REST 服务调用您的 Node-RED 工作流。在显示页面时,customerController() 函数将会运行并将一个 submit() 函数添加到视图的范围中,当用户单击 Translate 按钮时,该函数将被调用。按钮的单击事件会触发对 Node-RED REST 服务的一个 HTTP 请求,向它传递要翻译的消息以及用户所选择的翻译语言。当接收到响应时,翻译后的消息和情感值被设定在范围内,然后被显示在视图中。
单击播放按钮(指向右边的三角形),将修改后的 Node-RED 样板部署 Bluemix,其中包含 AngularJS UI:
播放按钮的屏幕截图
您的应用程序现在运行在 http://yourappname.mybluemix.net/ui 上。

步骤 4. 测试应用程序
在浏览器中打开 http://yourappname.mybluemix.net/ui。选择您想使用的语言进行翻译,输入要翻译的文本,然后单击 Translate:
应用程序用户界面的屏幕截图
在后台,Angular 代码发起了一个对您的 Node-RED 工作流的 REST 服务调用。AngularJS 应用程序生成由 REST 服务返回的字符串。
验证应用程序是否正常工作。您应该看到被翻译为所选择语言的文本、情感分数,以及程式化的面孔图像,其表情反映了分数:
已翻译文本和情感分数可视化的屏幕截图

结束语
在本教程中,您学会了如何使用 Node-RED 快速创建一个 REST 服务,以及如何通过在 Bluemix 上运行的 AngularJS 应用程序访问该服务。您的应用程序使用 Bluemix Machine Translation 服务将文本进行语言转换,​​并通过情感分析服务提供情感分数。您现在可以使用 Node-RED 构建更多的 REST 服务,并开发应用程序来使用这些服务。

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

热门文章

     

    GMT+8, 2020-10-22 06:00 , Processed in 0.202748 second(s), 23 queries .