使用 Bluemix R 自定义 buildpack,构建一个 Shiny 应用程序来分析 #Bluemix 情绪

创建一个基于 R 的应用程序来度量两个不同实体在 Twitter 上的流行度,并对这些推文进行情绪分析。了解确定流行度的技术,掌握如何在 IBM Bluemix 上创建使用 R 的新应用程序。

#Bluemix 和 #Heroku 的单词云

“在 Bluemix 上利用 R 分析的强大功能来对比 Twitter 标签的流行度。使用 Bluemix 上的 R 自定义 buildpack,很容易实现这个目的!”

该应用程序使用 Shiny 服务器框架创建一种可视化结果的交互式、基于 Web 的方法。它使用一个自定义 buildpack 在 Bluemix 上运行 R。R 的流行度最近得到了显著提高(在 IEEE Spectrum 的编程语言排名中名列第 9)。学习如何在 Bluemix 上利用它的强大功能。

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



                    

第 1 步. 从 IBM DevOps Services 分解该应用程序

单击 获取代码 从 IBM DevOps Services 导出源代码:

  1. 登录到 DevOps Services
  2. 单击 Edit Code
  3. 单击 Fork > Fork with a new JazzHub project > Save
Fork 按钮的屏幕截图


第 2 步. 将 RStudio 与 IBM DevOps Services 相连

通过以下步骤,打开安装了 Version Control with Git 的 RStudio。

  1. 单击 Project > Create Project...选择了 Project 和 Create Project 的控制台的屏幕截图
  2. 单击 Version Control > GitVersion Control 中的 Create Project 的屏幕截图
  3. 输入 DevOps Services 上的存储库的 URLhttps://hub.jazz.net/git/crackmanworld/TwitterBluemix。项目名称已自动选择。输入您希望将项目保存到的您计算机上的目录。Clone Git Repository 的屏幕截图

现在您的项目已在 RStudio 中创建。可以使用您的 R 技能修改该应用程序,或者创建一个新的类似的 Shiny 应用程序。


第 3 步. 使用一个自定义 buildpack 将应用程序推送到Bluemix

Bluemix 目录包含超过 15 个 开源、兼容 Cloud Foundry 的 buildpack

对于这个应用程序,可以使用一个针对 Heroku 开发但同样适用于 Bluemix 的 buildpack。使用Bring Your Buildpack 选项。该代码已修改,以便使用 R 的最新版本 R 3.1。

  1. 从命令行接口登录到 Bluemix,采用以下代码作为示例。
        
        
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    C:\>cf login
    API endpoint: https: //api.ng.bluemix.net
    Email> armand.ruiz@fr.ibm.com
    Password>
    Authenticating...
    OK
    Targeted org armand.ruiz@fr.ibm.com
    Targeted space dev
    API endpoint: https: //api.ng.bluemix.net (API version: 2.4.0)
    User: armand.ruiz@fr.ibm.com
    Org: armand.ruiz@fr.ibm.com
    Space: dev
    C:\>
  2. 指定将使用哪个自定义 buildpack:
        
        
    1
     
    > cf push [$NEW_APP_NAME] -b [$GIT_REPO_URL]
  3. 对于此应用程序,[$GIT_REPO_URL] 为:
        
        
    1
     
    https: //github.com/aruizga7/cf-buildpack-r
  4. 导航到 R Shiny 应用程序存储在的目录,使用 R 自定义 buildpack 将该应用程序推送到 Bluemix。
        
        
    1
    2
    3
    4
    5
    6
    7
    8
     
    C:\TwitterBluemix>cf push MyNewShinyApp -b https: //github.com/aruizga7/cf-build
    Creating app MyNewShinyApp in org armand.ruiz@fr.ibm.com / space dev as armand.ruiz@fr.ibm.com...
    OK
    Creating route mynewshinyapp.mybluemix.net...
    OK
    Binding mynewshinyapp.mybluemix.net to MyNewShinyApp...
    OK
    Uploading MyNewShinyApp...

在安装 R 和这个特定的应用程序使用的所有 R 包期间,应该会看到许多日志消息。


第 4 步. 使用 R 执行 Twitter 分析

该应用程序对比两个实体在 Twitter 上的流行度,对两个实体的推文执行情绪分析。该流行度评估使用了两种方法,以借鉴自 Jeffery Stanton、Jeffery Breen 和 Gaston Sanchez 的算法为基础。

  • 该应用程序确定一条与一个实体相关的推文在某个时间段发生的概率。它假设此概率越高,在 Twitter 上讨论此实体的频率就越高。更高的频率意味着相对较高的流行度。

    阅读:Jeffrey Stanton 有关数据科学的图书

  • 该应用程序对比了检索的在一个特定时间范围发生的针对每个实体的所有推文的比例。接下来,它确定 Twitter 上的讨论程度是正面的还是负面的。基于之前的研究,将推文中使用的单词与一组视为正面或负面的词汇相匹配。然后基于使用的正面和负面词汇的数量,为每个推文生成一个分数。

    阅读:Jeffrey Breen 有关文本挖掘的著作

    阅读:Gaston Sanchez 有关情绪分析的著作

用户指定的应用程序输入 

  • Entity 1 和 Entity 2:默认实体为 Bluemix 和 Heroku
  • Number of tweets to retrieve:此应用程序使用 R 包 twitteR,该包使用了一个公共 API。为了避免 Twitter 拦截该应用程序,最大推文数量限制为 50 条。要修改该值,可以更改代码。
  • Time (in seconds):设置用于计算流行度的时间间隔。该计算基于在某个特定时间段到达的针对两个实体的推文比例。
填入了示例值的用户界面的屏幕截图

来自应用程序的结果输出

结果显示在 7 个选项卡中。

  • 选项卡 1:显示检索了多少推文,描绘在一个特定时刻到达的针对两个实体的新推文的概率。该屏幕截图显示了推文数量和概率线图
  • 选项卡 2:包含 3 个曲线图,可视化了两个实体的推文之间的延迟时间分布。第一个曲线图提供了箱线图,以及两种实体的延迟时间分布的均值。第二和第三个曲线图为直方图和内核密度功能。3 个曲线图的屏幕截图
  • 选项卡 3:显示检索的针对两个实体的推文中,延迟时间大于用户指定的时间的推文的估算比例的条形图。它还描绘了这些比例的估算中 95% 的置信度间隔。条形图的屏幕截图数据表的屏幕截图
  • 选项卡 4:显示推文的情绪分析。检索的针对两个实体的推文的情绪分数分布(更高的分数表示更高的流行度)使用箱线图来呈现。还计算了均值。箱线图的屏幕截图
  • 选项卡 5:显示针对两个实体的推文中使用的词汇的单词云。
  • 选项卡 6 和选项卡 7:显示检索的针对两个实体的原始推文,这些推文用在其他 5 个选项卡中生成的输出中。
  • 第 5 步. 自定义应用程序

     

    R 是一种强大且灵活的数据分析语言和平台。各种  使您能够执行可以想到的任何类型的分析。通过将新包添加到 R 文件 init.R 中来安装它们,该文件在您推送应用程序时运行。添加代码来安装您需要的任何包。使用以下代码为例。




  
  
1
2
3
4
5
6
7
8
9
10
11
 
# Example `init.r` file
install.packages( "twitteR" ,clean=T)
install.packages( "stringr" ,clean=T)
install.packages( "ROAuth" ,clean=T)
install.packages( "RCurl" ,clean=T)
install.packages( "ggplot2" ,clean=T)
install.packages( "reshape" ,clean=T)
install.packages( "tm" ,clean=T)
install.packages( "RJSONIO" ,clean=T)
install.packages( "wordcloud" ,clean=T)
install.packages( "gridExtra" ,clean=T)

如果您知道如何在 R 中编程,那么就可以轻松地开始开始使用 Shiny 框架;有许多教程可供查阅。

阅读:R 入门

阅读:Shiny 入门

阅读:获取灵感

结束语 

使用 R,对来自各种不同来源的数据执行任何类型的分析,比如像推文这样的实时数据,或者存储在数据库或平面文件中的数据。使用 Shiny 框架让您的分析可从交互式 Web 应用程序执行。得益于 Bluemix,您可以轻松地部署和分发这些应用程序,使用所有可用的服务,并在几秒内提供全球访问能力。

知道如何使用 R 自定义 buildpack 对推文执行简单分析后,可以将 Bluemix 分析的强大功能应用于其他应用程序。请向我们提供评论,让我们知道您的进展!


点击这里,查看原文


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值