流行的在线新闻聚合器(比如 Google News 和 Yahoo News)让您可以轻松地找到并深入分析一个特定主题(政治、金融等)的最新故事,但它们没有提供高效的方式来关注有新闻价值的 人 。我们的 People in the News (PITN) 应用程序填补了这一空白,它聚合了有关 30 位顶级新闻人物的最新和最近的新闻文章,并提供了正在成为新闻趋势的人物的概览视图:
单击标记云中的一个名字时,该应用程序会显示与这个人相关的最新文章的一组链接。该应用程序还会维护访问者数量,以便您可轻松地确定多少人正在使用这个应用程序阅读新闻。
在本教程中,您将学习如何创建和部署自己的 PITN 程序版本,PITN 是一个使用 IBM Bluemix DevOps Services 为 Bluemix 云平台 而构建的、基于 Node.js 的新闻聚合器。该应用程序可访问 Bluemix 上的 Watson Relationship Extraction 服务和 Cloudant NoSQL DB 服务,并使用 IBM Rapidly Adaptive Visualization Engine (RAVE) 。该应用程序使用的其他 Node.js 模块包括:
“ 分析 PITN 源代码后,您可了解如何使用 Watson Relationship Extraction 服务从新闻文章中提取一组名字,以及如何使用 Cloudant 数据库和 JSON 内容来创建和更新文档。 ”
运行应用程序
获取代码
将代码部署到 Bluemix 之前,需要将源代码放到您自己的项目中:
请参阅 部署 PITN ,了解本教程第 1 到 4 步的详细说明。
登录 Bluemix 并向您的 Bluemix 空间中添加 Watson Relationship Extraction 服务和 Cloudant NoSQL DB 服务。
部署过程可能要花几分钟时间。流程结束时会显示一条消息,或者您可从 Bluemix 仪表板检查部署状态。
您只需设置部署工作一次。可以单击 Launch Configuration 运行栏旁边的 PLAY 按钮,使用同样的设置再次部署应用程序。
开发期间,您可能希望将应用程序部署在本地 PC 上,以便测试新代码:
npm install
,将该应用程序依赖的所有模块安装在 node_modules 文件夹中。 node app.js
,启动 node.js Web 服务器。 下面我们看看 PITN 应用程序的密钥文件和 API:
initDBConnection()
创建与数据库的初始连接。 addContent()
向文档添加一个名字列表。仅存储 10 个列表,之后会从文档中删除最老的列表。 getContent()
从文档获取所有名字列表。 clearContent()
从文档中删除所有列表。 incrHitCount()
递增访问者点击计数并将该值存储在一个 hit-count 文档中。 getHitCount()
从 hit-count 文档获取当前的访问者点击计数。 getOneArticle()
解析一个 URL 并提取它的内容。 getArticles()
解析一个 RSS 信息源并处理该信息源中每个 URL 的内容。 analyzeArticle()
处理原始文本,使用 Watson Relationship Extraction 服务生成一个名字列表和每个名字的出现次数。 parseRssFeeds()
处理 RSS 信息源列表并分析文章内容来生成名字列表。 GET /cloud
从数据库获取名字列表并递增访问者点击计数。客户端使用该列表来渲染单词云。 POST /cloud
调用 parseRssFeeds()
并将该列表存储在数据库文档中。此端点仅在内部用于测试用途。 GET /hitcount
从 hit-count 数据库获取访问者点击计数。此端点仅在内部用于测试用途。 POST /hitcount
递增 hit-count 数据库中的访问者点击计数。此端点仅在内部用于测试用途。 loadData()
从 PITN 数据库中请求各种新闻中的最新名字列表。 formatData()
格式化名字列表,供 RAVE 标记云使用。 buildPageList()
在 UI 中为从 PITN 数据库获取的每个列表生成一个页面。 updateData()
更新 UI,显示所请求的名字列表,这会导致: 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:
相关主题: Watson 开发人员中心 Cloudant Node.js JSON