首先获取微信聊天记录:并导出为txt文件
基于R语言:
#install.packages("jiebaRD")
#install.packages("jiebaR")
#install.packages("data.table")
#install.packages("stringr")
#install.packages("rJava")
#install.packages("RColorBrewer")
#install.packages("devtools")
#devtools::install_github("lchiffon/wordcloud2")
#install.packages("Rwordseg")library(jiebaRD)
library(jiebaR)
library(data.table)
library(stringr)
library(rJava)
library(Rwordseg)
library(RColorBrewer)
library(Rwordseg)
library(wordcloud2)
library(readxl)#导入聊天记录
content <- read_excel("G:/R/love/ai.xlsx", col_types = c("text"))#分词预处理,建立分词模型
mixseg <-worker("mix")#分词、并将分词结果转换为向量
Ich.part <- segment(content$...1,mixseg)#去除你想去掉的
Ich.part <- gsub(pattern="http:[a-zA-Z\\/\\.0-9]+","", Ich.part) #删除网址
Ich.part <- gsub("\n","", Ich.part) #删除换行的
Ich.part <- gsub(" ","", Ich.part) #删除空格
Ich.part <- gsub("[0-9]+?","",Ich.part) #去除数字
Ich.part <- gsub("表情","",Ich.part)
Ich.part <- gsub("动画","",Ich.part)
Ich.part <- gsub("捂脸","",Ich.part)#去除停用词
s <- read.table(file =file.choose(),colClasses = "character", quote = NULL)
stopwords_CN <- c(NULL)
for (i in 1:dim(s)[1])
{stopwords_CN = c(stopwords_CN,s[i,1])}
for(j in 1:length(stopwords_CN))
{Ich.part <-subset(Ich.part,Ich.part!=stopwords_CN[j])
}#过滤掉一个字的词
Ich.part <-subset(Ich.part,nchar(as.character(Ich.part))>1)#统计词频
Ich.freq <-table(unlist(Ich.part))
Ich.freq <-rev(sort(Ich.freq))
Ich.freq <-data.frame(Ich.freq)#按词频过滤
Ich.freq30 = subset(Ich.freq, Ich.freq$Freq > 10)
#形成词云# mycolors <- colorRampPalette(c("pink","white"))
# wordcloud2(Ich.freq100,fontFamily = "HYTangTangCuTiJ",size = 2,color = mycolors(1000),
# figPath = "E:/R/R-3.6.0/library/wordcloud2/examples/t.png")t <-system.file("examples/c.png",package = "wordcloud2") #要使用的图片路径
wordcloud2(Ich.freq30, figPath = t, size = 5,color = "pink",backgroundColor = "white")#wordcloud2(Ich.freq50,shape = 'star',size = 3)letterCloud(Ich.freq30,"shub",wordSize = 1, backgroundColor = "grey",color = "pink")
如遇到问题或想看更多遥感数据处理知识,欢迎通过公众号留言给作者,以便共同探讨。