本次的重点绘制词云,所以并不太重视其他分析方面的论述。

本机环境:

window 10

R x64 3.3.0

R包:

tmcn:词频统计

wordcloud2:绘制词云

Rwordseg:分词

由于tmcn和Rwordseg包在R3.3.0的版本中没有可以直接在线下载安装,所以需要去搜索并且本地安装

附Rwordseg和tmcn的下载链接,注意安装Rwordseg前需要配置java环境,这里就不具体阐述了,百度即可。

https://r-forge.r-project.org/R/?group_id=1054

https://r-forge.r-project.org/R/?group_id=1571

数据文件:

本次采用自主爬虫的数据文件csv(豆瓣电影:我不是潘金莲)的评论语料

数据样式截图如下:

关于此爬虫的代码与文件,需要可以下载,如失效,也可留言

链接:http://pan.baidu.com/s/1kVe9cMj 密码:84ft

前期导入清理、分词、词频统计

library(Rwordseg)
library(tmcn)
library(wordcloud2)
data <- read.csv("d.csv",encoding="utf-8")
data <- unique(data)# 去除重复的数据

#去除评论中含有的英文和数字

text <- gsub('[a-zA-Z0-9]','',data$comment)

#插入自定义词汇

words <- c('范冰冰')

insertWords(strwords=words)

#分词

segword <- segmentCN(strwords=text)

#创建停止词库,并转为向量格式

mystopwords <- read.table("stop_words.txt",stringsAsFactors=FALSE)

mystopwords <- as.vector(mystopwords[,1])

#自定义删除停止词函数

removewords <- function(target_words,stop_words)

{

target_words <- target_words[target_words%in%stop_words==FALSE]

return(target_words)

}

segword2 <- sapply(X=segword,FUN=removewords,mystopwords)

开始绘制词云

首先介绍下wordcloud2这个函数

  1. wordcloud2(data, size = 1, minSize = 0, gridSize =  0,

  2. fontFamily = NULL, fontWeight = 'normal',

  3. color = 'random-dark', backgroundColor = "white",

  4. minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,

  5. shape = 'circle', ellipticity = 0.65, widgetsize = NULL)

常用参数:

(1)data:词云生成数据,包含具体词语以及频率;

(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;

(3)fontFamily:字体,如‘微软雅黑’;

(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;

(5)color:字体颜色,可以选择‘random-dark’以及‘random-light’,其实就是颜色色系;

(6)backgroundColor:背景颜色,支持R语言中的常用颜色,如‘gray’,‘blcak’,但是还支持不了更加具体的颜色选择,如‘gray20’;

(7)minRontatin与maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;

(8)rotationRation:字体旋转比例,如设定为1,则全部词语都会发生旋转;

(9)shape:词云形状选择,默认是‘circle’,即圆形。还可以选择‘cardioid’(苹果形或心形),‘star’(星形),‘diamond’(钻石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五边形);

#绘制文字云

word_freq <- getWordFreq(string=unlist(segword2))

一切使用默认参数

wordcloud2(word_freq)

提取前1000个,并改变形状

wordcloud2(word_freq[0:1000,],size=1,shape='star',fontFamily="微软雅黑")

#绘制出出现频率最高的前50个词

wordcloud2(word_freq[0:1000,],size=1,shape='star',fontFamily="微软雅黑")

#自定义图片,只要是黑白图片即可,文字默认会画在黑色部分上

wordcloud2(word_freq,figPath='horse.png',size=0.5,shape='star',fontFamily="微软雅黑")

其实到这里很多参数你都可以随意尝试,怎么好看怎么调。
欢迎大家对此多多提提意见,我也不知道该写什么好了,谢谢!

R语言利用wordcloud2绘制词云相关推荐

  1. R语言统计词频 画词云

    原始数据: 程序: #统计词频 library(wordcloud)# F:/master2017/ch4/weibo170.cut.txttext <- readLines("F:/ ...

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

    词云(WordCloud)的概念,据网络上搜索到的资料,最早由美国一位新闻学专业的副教授提出,对文本中出现频率较高的关键词予以视觉上的突出,一般采取"出现频次越高,关键词渲染尺寸越大&quo ...

  3. R语言如何画个性化词云图

    我之前写了一篇关于使用wordcloud包的文本可视化的博客.点击查看. Ian Fellows与2014-06-13公布了wordcloud包,之前我用wordcloud包写了一篇关于文本可视化的博 ...

  4. https open api_通过bilibili_api获取弹幕+绘制词云的方法

    刚接触python 随手做一些自己感兴趣的项目,看到了一个通过bilibili_api三行代码获取弹幕的教程(vx公号:天作之程(jhtmtzzc))使用的是bilibili_api ,是2020年1 ...

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

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

  6. python爬虫网站 词云_Python爬虫之爬取情话网站并绘制词云

    一.爬取网站 1.分析目标网站 首先我们需要分析目标网站的源代码 分析html得知所有的情话都是在标签 下,而且一个 标签对应着一句情话. 2.编写代码 import bs4 import reque ...

  7. python中用来绘制词云的第三方库_如何用Python绘制词云?

    如果希望能够看懂代码,那么需要具备: 1. 了解Python语言的语法结构 2. 了解Python语言的标准包.第三方包的区别 3. Python代码基本是英文,意思一定程度上代表了它要做的事,懂英文 ...

  8. python 词云_利用Python生成词云

    利用Python生成词云 一.第三方库的安装与介绍 1.1  Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...

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

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

  10. python红楼梦绘制词云形状图_python数据挖掘实战笔记——文本挖掘(5):词云美化之绘制《红楼梦》词云图...

    词云图的美化就是把词云图的背景和颜色进行美化,以<红楼梦>词云图为例,如下所示: 首先绘制词云,跟之前的代码操作一样: import jieba import numpy import c ...

最新文章

  1. 接口测试(postman jmeter)
  2. C++知识点45——类继承中的类型转换与访问权限控制(上)
  3. OWASP Top 10 – 2013, 最新十大安全隐患(ASP.NET解决方法)
  4. 关于盘符里某些文件夹删除不了的解决方案研究
  5. php 如何生成exe文件怎么打开,如何把PHP转成EXE文件
  6. apache ignite_Kubernetes集群上的Apache Ignite和Spring第3部分:测试应用程序
  7. Django admin组件源码流程
  8. SpringDataJpa 概述
  9. 多重继承有时候确实有必要
  10. linux模拟发包工具,linux发包软件-线不是一个压力测试工具的linux以上收缩服务器可...
  11. java nio 大文件_java nio 超大文件的读写
  12. 【python】爬取元素周期表的元素信息
  13. Activity的启动流程分析与总结
  14. isc dhcp 服务器性能,DHCP 服务器搭建问题
  15. 第11篇 zephyr 数据传递之LIFO
  16. 小菜鸟的C++游戏编程学习日记(一)
  17. 信息学切题记录:永远的A+B Problem(洛谷P1001)
  18. less 自适应高度_使用HTML5和Less框架3的自适应Web设计
  19. py 爬取汽车之家新闻案例
  20. 硬件电路常用设计摘要

热门文章

  1. [渝粤教育] 天水师范学院 陶质文物保护修复 参考 资料
  2. 电商直播的直播类型有哪些?
  3. HTML超链接实现页面内跳转
  4. PCIE数据采集软件使用
  5. #####好好好好######Neo4j 第三篇:Cypher查询入门
  6. cse214 HOMEWORK - SPRING 2022
  7. 认知神经学lecture1---感受与感知
  8. python代码螺旋线怎么写_python实现画五角星和螺旋线的示例
  9. 利用cookie实现搜索记录
  10. Python对文件进行重命名