专栏首页Jerry的SAP技术分享在SAP分析云里根据业务数据绘制词云(Word Cloud)

在SAP分析云里根据业务数据绘制词云(Word Cloud)

词云(WordCloud)的概念,据网络上搜索到的资料,最早由美国一位新闻学专业的副教授提出,对文本中出现频率较高的关键词予以视觉上的突出,一般采取“出现频次越高,关键词渲染尺寸越大”的规则。由这些尺寸不一的关键词形成类似云状的彩色图形,能帮助浏览者一眼扫过图形,就能领略该词云背后文本的主旨。

比如周杰伦《双截棍》歌词的词云如下:

其中出现频率排前三位的词高亮如下:

词云除了广泛应用在互联网前端外,在SAP领域也能发挥其优势。比如Jerry在文章 SAP Analytics Cloud和SAP Cloud for Customer的集成 里提到,最近我们做的一个项目,通过微信小程序收集用户和SAP Conversation AI的聊天记录,然后使用词云显示出这些聊天记录里的关键词。

起初Jerry在Github找了一些生成词云的开源工具,有JavaScript也有Python实现:

https://www.npmjs.com/package/tag-cloud https://github.com/amueller/word_cloud

后来了解到SAP Analytics Cloud自身就支持使用R的开发包wordclound生成词云:

https://www.sapanalytics.cloud/resources-r-packages/

所以我就想尝试着用SAP Analytics Cloud来实现。

要使用SAP Analytics Cloud上的wordcloud的开发包,需要通过配置将其连接到一个可用的R运行环境。R语言是一种编程语言,在统计分析和各种图表展示领域里特别具有优势。

在System配置里,可以选择使用SAP Analytics Cloud集成的R运行环境或者远程连接到一个部署在第三方的R运行环境。

绘制词云的数据源由下面这个csv文件提供:某地区每个超市每个月不同产品的销售数量。我设定的词云绘制规则比较简单,销售量越大(字段QuantitySold)的产品,其产品名称出现在词云中的尺寸越大。

上述Excel文件可以从SAP官网下载:

https://www.sapanalytics.cloud/wp-content/uploads/2018/02/BestRun.xlsx

我对其作了大幅简化,上传到SAP Analytics Cloud之后基于该文件创建一个新的Model取名BestRunJerry, 将QuantitySold列设置成Measure.

将Product的Description设置为ProductName,这样稍后用R绘制出的词云,显示的是可读性更好的Product Name,而不是产品ID.

基于建好的Model创建一个新的Story,插入一个新的R Visualization,这是一个UI控件,负责显示渲染的词云:

将Product设置为Rows的一个成员:

而QuantitySold设置成Columns的一员,这样接下来的R编辑器里,可以通过访问Product和QuantitySold两个变量,获取模型里存储的对应数据。

现在开始添加R脚本:

四行脚本搞定:

点击Execute,看到执行效果:

最后生成的效果图:

4行R脚本的含义:

(1) library(wordcloud):加载SAP Analytics Cloud的R开发包wordcloud; (2) words <- BestRunJerryProduct:读取模型BestRunJerry的Product数据,存储到变量words里;(3)frequency<−BestRunJerryProduct:读取模型BestRunJerry的Product数据,存储到变量words里; (3) frequency <- BestRunJerryProduct:读取模型BestRunJerry的Product数据,存储到变量words里;(3)frequency<−BestRunJerryQuantitySold:用产品QuantitySold字段的值模拟关键词出现的频率,存储到变量frequency里; (4) wordcloud(words, frequency, scale = c(3, 1), rot.per=0.2, colors=brewer.pal(8, “Dark2”)) 调用wordcloud开发包,生成词云。输入参数的含义参考该开发包的文档: https://cran.r-project.org/web/packages/wordcloud/wordcloud.pdf

每当我们在SAP Analytics Cloud的R编辑器里点击Execute按钮时,可以在Chrome开发者工具里观测到编辑器发送了一个HTTP请求给R运行环境,该请求包含了当前我们编辑的R脚本和之前插入的R Visualization控件的长和宽。

根据这些输入,SAP Analytics Cloud的R运行环境进行服务器端的词云渲染,再将渲染好的词云内容以png图片文件的base64格式返回给浏览器:

下一步Jerry会研究如何将文本格式的聊天记录里的关键词提取出来,以词云的方式显示在SAP Analytics Cloud里,这也是我目前做的项目需要实现的需求,敬请期待。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SAP Analytics Cloud和SAP Cloud for Customer的集成

    最近Jerry做的一个项目需要使用SAP Analytics Cloud和SAP Cloud for Customer进行集成。以前我对这个领域是一无所知,正好...

    Jerry Wang
  • SAP Analytics Cloud导入数据的规模限制

    SAP Analytics Cloud部署在SAP Cloud Platform的Neo或者CloudFoundry环境上:

    Jerry Wang
  • SAP Kyma和SAP云平台上的Service instance

    这个GATEWAY_URL的值可以在Kyma Lambda函数实现里通过环境变量的方式获得。

    Jerry Wang
  • HAVIP搭建云服务器keepalived实验

    本文介绍linux服务器安装keepalive服务,结合腾讯云的HAVIP(高可用虚拟IP)配置云服务器主备实验

    陈佳
  • 机器视觉算法(系列一)--机器视觉简短入门

    机器视觉是人工智能正在快速发展的一个分支。机器视觉作为生产过程中关键技术之一,在机器或者生产线上,机器视觉可以检测产品质量以便将不合格的产品剔除,或者指导机器人...

    智能算法
  • 实战 SpringCloud 微服务“秒杀”架构(含代码)

    分析,在做秒杀系统的设计之初,一直在思考如何去设计这个秒杀系统,使之在现有的技术基础和认知范围内,能够做到最好;同时也能充分的利用公司现有的中间件来完成系统的实...

    搜云库技术团队
  • python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id())

    cursor.lastrowid跟conn.insert_id()的结果一般情况下是一样的,最后一条记录肯定就是刚刚插入的记录。但如果是并发插入就不一样了,多线...

    周小董
  • 网络安全自学篇(二十二)| 基于机器学习的恶意请求识别及安全领域中的机器学习

    免责声明:本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安全+的观点,若有无意侵权或转...

    天钧
  • 数感一分钟10|老奶奶爬楼梯

    用户7378374
  • Oh my god,机器学习原来可以这么简单

    我想大家对机器学习这个词肯定不陌生,特别是最近这段时间,好像特别热。在生信领域和临床研究都有很多高分的文章不断涌出,那我就给大家简单的介绍一下机器学习的内容。

    挑圈联靠

扫码关注云+社区

领取腾讯云代金券