一、导出并读入微信聊天记录

    参照百度的方法,使用同步助手。安装同步助手--连接手机(安卓苹果均可)--点击“其他功能“--点击微信图标即可进入聊天记录导出界面(非常简单)。

导出数据后直接用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语言将微信记录制作成词云(简洁)--情人节奥义的更多相关文章

  1. R语言将数据框转成xts

    R语言初学者,不怎么会,今天碰到的问题,查了好久才找到,原来如此简单 尼玛,下次再忘记抽自己3巴掌

  2. R语言---热图的制作

    >install.packages("gplots") > library("gplots")> p <- data.frame(rea ...

  3. R 语言学习过程全记录 ~

    RStudio介绍超详细的教程:https://www.jianshu.com/p/132919ca2ca9 前辈的心得:https://blog.csdn.net/kMD8d5R/article/d ...

  4. python 制作wordcloud词云

    pip install wordcloud 需要用到numpy  pillow matplotlib 安装完成以后 wordcloud_cli --text in.txt --imagefile ou ...

  5. R语言-文本挖掘

    ---恢复内容开始--- 案例1:对主席的新年致辞进行分词,绘制出词云 掌握jieba分词的用法 1.加载包 library(devtools) library(tm) library(jiebaR) ...

  6. 在线词云制作tagxedo

    最近在用python制作词云的时候发现了一个更加方便快捷很好玩的词云制作网站 http://www.tagxedo.com/app.html 所以今天就来大致介绍下是怎么使用的 1.先来介绍下tagx ...

  7. R系列:分词、去停用词、画词云(词云形状可自定义)

    附注:不要问我为什么写这么快,是16年写的. R的优点:免费.界面友好(个人认为没有matlab友好,matlab在我心中就是统计软件中极简主义的代表).小(压缩包就几十M,MATLAB.R2009b ...

  8. 闲来无事,在微信推文中看到一个炫酷的具有动态特效的中国地图,是用R语言做的,于是尝试了一下

    目录 最终的效果图如下: 1.环境准备 2.需要安装的包: 3.进一步配置: end 最终的效果图如下: 1.环境准备 既然是用R语言作图,那么这几个软件是一定需要安装的: R语言的编译器:https ...

  9. 利用R语言制作出漂亮的交互数据可视化

    利用R语言制作出漂亮的交互数据可视化 利用R语言也可以制作出漂亮的交互数据可视化,下面和大家分享一些常用的交互可视化的R包. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包 ...

随机推荐

  1. hellocharts-android开源图表库(效果非常好)

    泡在网上的日子 发表于 2014-11-07 12:28 第 33156 次阅读 chart 2 编辑推荐:稀土掘金,这是一个高质量的技术干货分享社区,web前端.Android.iOS.设计资源和产 ...

  2. 用OpenSSL生成自签名证书在IIS上搭建Https站点(用于iOS的https访问)

    前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...

  3. tp框架实现ajax注册验证

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. cpptoolstip界面提示库使用

    很多时候写一些界面程序,需要实时的给用户提示,每次都弹出一个messagebox挺烦的,状态栏又怕人看不到,最后找了一个相关的类,显示效果不错,分享一下,效果如下 下载库下来之后对应八个文件 将八个文 ...

  5. EntityFrameWork分页

    EF分页代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  6. Subpub 订阅/发布

    var Pubsub = (function (window) { window.handlers = {}; var o = { pub: function () { var args = Arra ...

  7. 把windows的bat用好了,也很不错

    taskkill /f /t /im nginx.exe cp2nginx xcopy /e /i /y “D:\workspace\workspace1\aff\WebContent” “D:\ng ...

  8. Centos下关于ssh、scp与rsync设置与应用

    最近应公司要求,需要对文件数据进行远程传输与备份操作,特此写了一篇文章记录下了关于ssh.scp以及rsync的应用配置全过程,可能过程太过罗嗦,但主要就是想在不遗漏每个过程的情况下对此进行阐述,希望 ...

  9. 使用(Drawable)资源——StateListDrawable资源

    StateListDrawable用于组织多个Drawable对象.当使用StateListDrawable作为目标组件的背景.前景图片时,StateListDrawable对象所显示的Drawabl ...

  10. DELPHI加密字串(异或运算加密)

    首先有两个自定的转换函数: function myStrToHex(s:string):string; //字串转16进制 var TmpStr:string; i:integer; begin Tm ...