转载

使用 IBM Watson 跟踪全球顶级新闻人物

流行的在线新闻聚合器(比如 Google News 和 Yahoo News)让您可以轻松地找到并深入分析一个特定主题(政治、金融等)的最新故事,但它们没有提供高效的方式来关注有新闻价值的 。我们的 People in the News (PITN) 应用程序填补了这一空白,它聚合了有关 30 位顶级新闻人物的最新和最近的新闻文章,并提供了正在成为新闻趋势的人物的概览视图:

使用 IBM Watson 跟踪全球顶级新闻人物

单击标记云中的一个名字时,该应用程序会显示与这个人相关的最新文章的一组链接。该应用程序还会维护访问者数量,以便您可轻松地确定多少人正在使用这个应用程序阅读新闻。

在本教程中,您将学习如何创建和部署自己的 PITN 程序版本,PITN 是一个使用 IBM Bluemix DevOps Services 为 Bluemix 云平台 而构建的、基于 Node.js 的新闻聚合器。该应用程序可访问 Bluemix 上的 Watson Relationship Extraction 服务和 Cloudant NoSQL DB 服务,并使用 IBM Rapidly Adaptive Visualization Engine (RAVE) 。该应用程序使用的其他 Node.js 模块包括:

  • feed-read :抓取和解析 ATOM 和 RSS 信息源的模块
  • unfluff :网页内容提取器
  • request :简化的 HTTP 请求客户端
  • async :用于异步代码的帮助器 API
  • xml2js :简单的 XML 到 JavaScript 对象转换器
  • express :非常简单的 Node.js Web 框架

分析 PITN 源代码后,您可了解如何使用 Watson Relationship Extraction 服务从新闻文章中提取一组名字,以及如何使用 Cloudant 数据库和 JSON 内容来创建和更新文档。

构建您的应用程序所需的准备工作

  • 一个 Bluemix 帐户和一个 DevOps Services 帐户,二者都链接到您的 IBM ID
  • RAVE Rendering Engine 的本地副本
  • 可选地,对于本地部署: Node.js 运行时

运行应用程序

获取代码

第 1 步. 在 DevOps Services 上创建一个新项目

将代码部署到 Bluemix 之前,需要将源代码放到您自己的项目中:

请参阅 部署 PITN ,了解本教程第 1 到 4 步的详细说明。

  1. 登录 DevOps Services 。
  2. 找到 PITN 源代码存储库 。
  3. 单击顶部菜单中的 FORK ,按照说明设置一个新项目。
  4. 将 RAVE 归档文件导入 /peopleInNews/public/scripts/rave 文件夹。

第 2 步. 设置 Bluemix 服务

登录 Bluemix 并向您的 Bluemix 空间中添加 Watson Relationship Extraction 服务和 Cloudant NoSQL DB 服务。

第 3 步. 将应用程序部署到 Bluemix

  1. 找到您在第 1 步中创建的 DevOps 项目。
  2. 单击 peopleInNews 文件夹,单击 Launch Configuration 运行栏中的下拉按钮,然后单击 CREATE NEW
  3. 按照对话框中的说明完成部署过程。

部署过程可能要花几分钟时间。流程结束时会显示一条消息,或者您可从 Bluemix 仪表板检查部署状态。

您只需设置部署工作一次。可以单击 Launch Configuration 运行栏旁边的 PLAY 按钮,使用同样的设置再次部署应用程序。

第 4 步. 本地部署应用程序

开发期间,您可能希望将应用程序部署在本地 PC 上,以便测试新代码:

  1. 如果尚未安装 Node.js 运行时,请安装它。
  2. 从 PITN 源代码存储库 中,将源代码树导出到一个归档文件。
  3. 将该归档文件解压到一个本地目录中。
  4. 将 RAVE Rendering Engine 归档文件解压到 peopleInNews/public/scripts/rave 文件夹中。
  5. 从本地 peopleInNews 文件夹中输入 npm install ,将该应用程序依赖的所有模块安装在 node_modules 文件夹中。
  6. 编辑 peopleInNews/routes/config.js 并填入必须的 Bluemix 服务凭据。这些凭据允许应用程序使用您在第 2 步中添加到 Bluemix 空间的 Bluemix 服务。
  7. 从 peopleInNews 文件夹中输入 node app.js ,启动 node.js Web 服务器。
  8. 在 Web 浏览器中访问 http://localhost:3000。

第 5 步. 检查源代码

下面我们看看 PITN 应用程序的密钥文件和 API:

  • routes/mycloudant.js 包含的多个 API 可处理 Cloudant NoSQL DB 中的文档:
    • initDBConnection() 创建与数据库的初始连接。
    • addContent() 向文档添加一个名字列表。仅存储 10 个列表,之后会从文档中删除最老的列表。
    • getContent() 从文档获取所有名字列表。
    • clearContent() 从文档中删除所有列表。
    • incrHitCount() 递增访问者点击计数并将该值存储在一个 hit-count 文档中。
    • getHitCount() 从 hit-count 文档获取当前的访问者点击计数。
  • routes/rssextract.js 包含的 API 可处理 RSS 信息源和解析每个链接,从中提取新闻标题和内容:
    • getOneArticle() 解析一个 URL 并提取它的内容。
    • getArticles() 解析一个 RSS 信息源并处理该信息源中每个 URL 的内容。
  • routes/watsonre.js 包含了多种 API,它们使用 Watson Relationship Extraction 服务来分析文本主体并生成一个名字列表:
    • analyzeArticle() 处理原始文本,使用 Watson Relationship Extraction 服务生成一个名字列表和每个名字的出现次数。
    • parseRssFeeds() 处理 RSS 信息源列表并分析文章内容来生成名字列表。
  • routes/config.js 包含 Watson Relationship Extraction 服务和 Cloudant NoSQL DB 服务的 Bluemix 凭据。
  • app.js 启动 Web 服务器,并且每小时使用来自 RSS 信息源的名字列表更新数据库。此外,它公开以下端点:
    • GET /cloud 从数据库获取名字列表并递增访问者点击计数。客户端使用该列表来渲染单词云。
    • POST /cloud 调用 parseRssFeeds() 并将该列表存储在数据库文档中。此端点仅在内部用于测试用途。
    • GET /hitcount 从 hit-count 数据库获取访问者点击计数。此端点仅在内部用于测试用途。
    • POST /hitcount 递增 hit-count 数据库中的访问者点击计数。此端点仅在内部用于测试用途。
  • public/scripts/index.js 包含 PITN UI 背后的代码:
    • loadData() 从 PITN 数据库中请求各种新闻中的最新名字列表。
    • formatData() 格式化名字列表,供 RAVE 标记云使用。
    • buildPageList() 在 UI 中为从 PITN 数据库获取的每个列表生成一个页面。
    • updateData() 更新 UI,显示所请求的名字列表,这会导致:
      • 使用来自所请求列表的数据更新标记云。
      • 更新当前所选页面的页面栏。
      • 适当地启用或禁用 Earlier 和 Later 按钮。
    • go() 调用 updateData() 并在页面第一次渲染时淡入新的标记云。
    • displayNext()displayPrevious() 递增或递减当前所选的页面,然后调用 updateData() 并淡入新的标记云。

结束语

现在您已学完了本教程,知道了如何创建自己的公共 DevOps Services 项目副本,配置应用程序使用 Bluemix 所提供的服务,以及将应用程序部署到 Bluemix 平台(或在本地运行应用程序)。

阅读: 部署 PITN

通过分析 PITN 源代码,您可了解如何使用 Watson Relationship Extraction 服务从新闻文章中提取一组名字,以及如何使用 Cloudant 数据库和 JSON 内容来创建和更新文档。您还看到了使用 RAVE 渲染引擎和其他各种 Node 模块的示例。

后续步骤

参加免费课程,提高技能!

在 developerWorks Academy 中了解认知应用程序开发的更多信息。学习免费课程 Watson Developer Cloud 服务入门 。

查阅 未来的 PITN 考虑因素 列表,了解如何扩展应用程序来完善它,并了解所涉及框架的更多信息。

阅读: Relationship Extraction 服务入门

阅读: Cloudant NoSQL DB 入门

阅读: RAVE 入门

BLUEMIX SERVICES USED IN THIS TUTORIAL:

  • Relationship Extraction 服务 将句子解析为不同的组成部分,并检测各组成部分之间的关系。
  • Cloudant NoSQL 服务 允许您访问一个始终在线、全面托管的 NoSQL JSON 数据层。

相关主题: Watson 开发人员中心 Cloudant Node.js JSON

正文到此结束
Loading...