词云(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里,这也是我目前做的项目需要实现的需求,敬请期待。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

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

  1. matlab可以使用词云分析吗,利用豆瓣短评数据生成词云

    在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的. 前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下. 思路分析 读文件 ...

  2. python生成文章标题_利用简书首页文章标题数据生成词云

    原标题:利用简书首页文章标题数据生成词云 感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! ...

  3. 文本数据的词云可视化

    1.使用python实现文本数据的词云可视化,阐述词云原理,数据源可以自行选定: 2.实现文本数据的one-hot编码.Bag-of-word模型,将过程阐述清楚,数据源可以自行选定: 词云可视化 随 ...

  4. 数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化...

    全文下载链接:http://tecdat.cn/?p=28877 作者:Yunfan Zhang Twitter是一家美国社交网络及微博客服务的网站,致力于服务公众对话.迄今为止,Twitter的日活 ...

  5. 【Python】文本情感分析及绘制词云

    码字不易,喜欢请点赞!!! 这篇文章主要分享了使用Python来对文本数据进行情感分析以及绘制词云. 主要步骤包括: 1.文本预处理 2.文本分词 3.去除停用词(这里设置为单个词和一些常见的停用词) ...

  6. 关键词词云怎么做_《excle词云怎么制作》 除了tableau ,还有什么数据工具可以制作词云啊?...

    词云可以用哪些编程语言制作? Python有专门的库,十分方便,简单,wordcloud.教程链接Python词库入门教程 别的语言我就不知道了 怎么把词频排名前50 的绘制词云 试一下 优词www. ...

  7. Python数据可视化词云展示周董的歌

    马上开始了,你准备好了么 准备工作 环境:Windows + Python3.6 IDE:根据个人喜好,自行选择 模块: Matplotlib是一个 Python 的 2D数学绘图库 pip inst ...

  8. python 词云_python数据可视化——词云

    阅读本文需要4分钟 词云百度百科:"词云"就是对网络文本中出现频率较高的"关键词"予以视觉上的突出,形成"关键词云层"或"关键词渲 ...

  9. 使用Python做中文分词和绘制词云

    使用Python做中文分词和绘制词云 李小璐出轨云词图 作为一门编程语言,Python的编写简单,支持库强大,应用场景多,越来越多的人开始将它作为自己的编程入门语言. Python一个比较重要的场景是 ...

最新文章

  1. h5实现手机端等级进度条
  2. python 网盘上传_python学习笔记 day32 实现网盘上传下载功能
  3. 消息队列(5):RocketMQ
  4. 2014年计算机职称考试试题库,2014年职称计算机考试全真模拟试卷(1)
  5. sql:删除重复数据并且只保留id最小的一条
  6. kaka启动出现:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000c00000, 1073,0)
  7. spyder怎么执行html文件,spyder添加快捷键
  8. [大话设计模式C++版] 第7章 为别人做嫁衣 —— 代理模式
  9. 语雀可以导出html吗,工具 - Confluence 迁移到语雀 - 《语雀使用文档》 - 书栈网 · BookStack...
  10. 蓝桥杯评分标准_蓝桥杯软件设计大赛自测评分标准
  11. 科研论文配色参考【不断更新】
  12. Windows桌面下面任务栏无法点击(卡住)的解决办法
  13. ios 根据日期知道周几_iOS 获取当前日期是周几
  14. 基于Python的DICOM文件转换教程,使用pydicom将图片存为DICOM文件。
  15. BPA - 一揽子采购协议 Blanket Purchase Agreement
  16. 大数据时代的10个重大变化(长篇神文)
  17. 利用Python实现视频号自动赚钱一条龙
  18. HTML应用开发基础篇 - MUI 框架(三)MUI 布局
  19. 学Linux到底学什么?老司机来告诉你!
  20. jzoj 2867. 【集训队互测 2012】Contra

热门文章

  1. 解决m2eclipse需要jdk的错误
  2. ruby:理解Symbol的二篇好文章
  3. 在VC++中生成伪随机数祥解
  4. 前端面试题集锦(一)之HTML部分
  5. JavaEE-05 分页与文件上传
  6. 计算机图形学-MFC界面分屏操作
  7. JS常用属性方法大全
  8. ListView隐藏HeadView
  9. 英语阅读推荐:主题切换控件 ExpressionBuilder
  10. udp与tcp协议介绍