使用R语言将微信记录制作成词云(简洁)--情人节奥义
一、导出并读入微信聊天记录
参照百度的方法,使用同步助手。安装同步助手--连接手机(安卓苹果均可)--点击“其他功能“--点击微信图标即可进入聊天记录导出界面(非常简单)。
导出数据后直接用read.table读入表格
命令:
dat <- read.table("message.txt",skip=4,header=F,fill=TRUE) #skip跳过前面四行不用的信息;导出时候的信息缺失(语音图片信息等)导致表格不规则,设置fill=TRUE强制读取。聊天记录信息位于第七列。
二、使用Rwordseg包
2.1 使用之前要先安装
install.packages("rJava") #需要java环境
install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")
2.2 Rwordseg具有强大的中文分词功能
segmentCN(strwords) #strwords 是中文字符串,还可以文本路径,返回值是一个向量。
> a <- segmentCN("你好R")
> str(a)
chr [1:2] "你好" "R"
2.3 Rwordseg还具有导入词库的功能
支持普通词库(txt格式)和搜狗细胞词库( scel 格式),使用方法:
先从网上下载搜狗的细胞词库(scel格式),再安装
installDict(dictFile,dicttype = c("text", "scel"), load = TRUE)
例如:
installDict("/home/ywliao/Tmp/日常用语大词库.scel",dicttype = "scel", "richang",load = TRUE)
2.4 自定义词典
insertWords("捂脸") #让某词组放入内存
deleteWords(c("捂脸")) #删除某词
三 、使用wordcloud2包
3.1 安装
install.packages('devtools')
devtools::install_github("lchiffon/wordcloud2")
3.2 使用
wordcloud2(data, size = 1, minSize = 0, gridSize = 0,
fontFamily = NULL, fontWeight = 'normal',
color = 'random-dark', backgroundColor = "white",
minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,
shape = 'circle', ellipticity = 0.65, widgetsize = NULL)
参数:
(1)data:词云生成数据,包含具体词语以及频率;
(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;
(3)fontFamily:字体,如‘微软雅黑’;
(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;
(5)color:字体颜色,可以选择‘random-dark’以及‘maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;(三角形),‘pentagon’(五边形);
例如:wordcloud2(freq_dat, size = 1,shape = 'star')#生成星星状的词云
四、实例
情人节将到,将你和TA的聊天记录生成词云发送给TA定会给TA一个惊喜。
分析:
将我和gf的聊天记录生成文件oak_message.txt,在网上下载搜狗细胞词库“网络日常用语大词库.scel”和“网络日常用语.scel”,安装了所需要的rJava,Rwordseg和wordcloud2包。R代码如下:
library(rJava)
library(Rwordseg)
library(wordcloud2)
#加入日常用语细胞词库
installDict("/home/ywliao/Tmp/日常用语大词库.scel",dicttype = "scel", "richang",load = TRUE)
installDict("/home/ywliao/Tmp/网络日常用语.scel",dicttype = "scel", "wangluorichang",load = TRUE)
insertWords(c("捂脸","亲亲"))
dat <- read.table("oak_message.txt",skip=4,header=F,na.strings = "NA",fill=TRUE)
all_message <- ""
for (msg in dat$V7){
all_message <- c(all_message,segmentCN(msg))
}
all_message <- all_message[all_message != ""] #去掉空信息""
freq_dat <- as.data.frame(table(all_message))
wordcloud2(freq_dat,size = 2, minRotation = -pi/6, maxRotation = -pi/6,
rotateRatio = 1) #板报词云
wordcloud2(freq_dat, size = 1,shape = 'star') #星状词云
wordcloud2(freq_dat, size = 2, fontFamily = "微软雅黑",
color = "random-light", backgroundColor = "grey") # 海报词云
结果输出为网页文件,打开网页后可截图
什么?博主的gf聊天词云呢?怎么是这个?没错,博主就是学霸哈哈哈哈!最后祝大家情人节快乐!(不管怎样,自己都要快乐!)
参考资料:
电脑上导出微信聊天记录:http://www.cr173.com/html/64463_1.htm
Rwordseq包:http://blog.csdn.net/sinat_26917383/article/details/51056068 ; http://blog.csdn.net/sinat_26917383/article/details/51056068
wordcloud2包:http://blog.csdn.net/sinat_26917383/article/details/51620019
使用R语言将微信记录制作成词云(简洁)--情人节奥义的更多相关文章
- R语言将数据框转成xts
R语言初学者,不怎么会,今天碰到的问题,查了好久才找到,原来如此简单 尼玛,下次再忘记抽自己3巴掌
- R语言---热图的制作
>install.packages("gplots") > library("gplots")> p <- data.frame(rea ...
- R 语言学习过程全记录 ~
RStudio介绍超详细的教程:https://www.jianshu.com/p/132919ca2ca9 前辈的心得:https://blog.csdn.net/kMD8d5R/article/d ...
- python 制作wordcloud词云
pip install wordcloud 需要用到numpy pillow matplotlib 安装完成以后 wordcloud_cli --text in.txt --imagefile ou ...
- R语言-文本挖掘
---恢复内容开始--- 案例1:对主席的新年致辞进行分词,绘制出词云 掌握jieba分词的用法 1.加载包 library(devtools) library(tm) library(jiebaR) ...
- 在线词云制作tagxedo
最近在用python制作词云的时候发现了一个更加方便快捷很好玩的词云制作网站 http://www.tagxedo.com/app.html 所以今天就来大致介绍下是怎么使用的 1.先来介绍下tagx ...
- R系列:分词、去停用词、画词云(词云形状可自定义)
附注:不要问我为什么写这么快,是16年写的. R的优点:免费.界面友好(个人认为没有matlab友好,matlab在我心中就是统计软件中极简主义的代表).小(压缩包就几十M,MATLAB.R2009b ...
- 闲来无事,在微信推文中看到一个炫酷的具有动态特效的中国地图,是用R语言做的,于是尝试了一下
目录 最终的效果图如下: 1.环境准备 2.需要安装的包: 3.进一步配置: end 最终的效果图如下: 1.环境准备 既然是用R语言作图,那么这几个软件是一定需要安装的: R语言的编译器:https ...
- 利用R语言制作出漂亮的交互数据可视化
利用R语言制作出漂亮的交互数据可视化 利用R语言也可以制作出漂亮的交互数据可视化,下面和大家分享一些常用的交互可视化的R包. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包 ...
随机推荐
- C++异常第二篇---C++标准库异常类exception的使用
1 继承图示 2 具体讲解 C++标准库异常类继承层次中的根类为exception,其定义在exception头文件中,它是C++标准库所有函数抛出异常的基类,exception的接口定义如下: na ...
- android测试之——mokeyrunner上(二)
以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址 ...
- 2、手把手教你Extjs5(二)项目中文件的加载过程
上一节中用sencha工具自动创建了一个项目,并且可以在浏览器中查看.现在我们来看看js类加载过程.如下图所示: 1、首先:浏览器中输入 localhost:1841 ,调用 index.html; ...
- UIImageView控件
UIImageView是用于显示图像的,在iOS开发中,我们无需专门去写什么代码,不需要检查设备的类型,只需要把1x.2x.3x的图像添加到项目中,图像视图会自动的在正确的时间加载正确的图像. (1) ...
- Windows Server 2012 安装sqlserver2008 小记
1.拷贝大文件被阻止 解决方案:把大文件压缩成小文件... 据说关闭防火墙会好点,没试验过. 2.安装第一步,提示没有安装.net framework 3.5 sp1 ,使用服务器管理器,添加角色 ...
- StackExchange.Redis 官方文档(一) Basics
基本使用方法: StackExchange.Redis的核心是 StackExchange.Redis 命名空间的 ConnectionMultiplexer 类;它隐藏了多服务器的实现细节.Conn ...
- Iphone安装铃声
PP助手 应用列表中打开铃声多多文档. 5点击铃声下载,找到下载的铃声,按下图所示步骤导出至电脑. 6在PP助手界面内,找到"视频音乐"标签,然后进入视频音乐分类下的铃声分类,点击 ...
- 笔记整理--玩转robots协议
玩转robots协议 -- 其他 -- IT技术博客大学习 -- 共学习 共进步! - Google Chrome (2013/7/14 20:24:07) 玩转robots协议 2013年2月8日北 ...
- zepto js 源码 解读
/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ ;(funct ...
- A窗口消失B窗口弹出
一.设计窗口 1) file---new--Application,新建一个窗体,设置该窗体的属性:Caption==登录窗口 2) procedure TForm1.btn1Click(Sender ...