“词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。 因此,“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“ 关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
下面以19大报告为例,说明词云图的制作。
加载词云图制作工具包wordcloud2和jiebaR,其中前者用来绘制词云图,后者用来对中文进行分词,即把文档转换成一个一个单独的词语。需要指出的是,wordcloud2工具包需要从github网站下载,直接利用install.packages方法存在问题。具体如下:
>install_github('lchiffon/wordcloud2')
>library(wordcloud2)
>library(jiebaR)
上百度找一个19大报告全文,然后复制保存为文本文档形式,并命名为19th.txt,保存到当地F盘,然后利用scan命令扫描文档:
>contents <- scan('F://1919th.txt',what='character')
并利用worker设置分词形式:
>cutter <- worker()
对文档进行分词处理,具体为:
>segWords <- segment(contents,cutter)
>head(segWords)
[1] "决胜" "全面" "建成" "小康社会" " " "夺取"
进一步把分词整理成表格形式,即显示各种词语出现的次数,具体如下:
>wordsNum <- table(segWords)
>head(wordsNum)
segWords
10 18 2017 爱 爱澳
1 1 1 1 4 1
>wordcloud2(wordsNum)
从图上可以看出,出现次数较高的是“的”、“和”、“中国”、“发展”和“人民”,考虑到“的”与“和”为连接词,没有意义,需要把这些剔除,才能使词云图更加美观。具体进行如下操作:删除连词“的”“是”“和”:
>segWords <- gsub('的||和||是','',segWords)
>segWords <- segWords[nchar(segWords)!=0]
在此基础上进行表格整理:
>wordsNum <- table(segWords)
考虑到词语非常多,因此选择按高到低排序,并选择前500个词语绘制词云图:
>wordsNum <- sort(wordsNum, decreasing = TRUE)
>wordsData <- data.frame(wordsNum)
>wordsData <- wordsData[1:500,]
>wordcloud2(wordsData,0.4)
图2.41 简化后19大词云
环形图可以看出,“人民”、“发展”和“建设”等词语字体较大,说明出现次数较高。进一步对形状进行设置,选择单词“R”和党徽形状进行分析,具体如下:
>letterCloud(wordsData,word='R',size=0.3)
然后百度一个党徽图案,最好只有两色的。保存在本地文件夹F盘根目录下,并命名为public。输出党微形状的词云图命令为:
>wordcloud2(wordsData,figPath = 'F://public.jpg',size=0.5,color = 'red')
感兴趣的读者可进一步参考《量化投资基础、方法与策略——R语言实战指南》,里面详细介绍R语言的入门,并介绍如何利用R语言进行量化投资。


雷达卡




京公网安备 11010802022788号







