绘图系列|R-wordcloud2包绘制词云
前段时间读完大刘的流浪地球,本来想着写点东西... 结果“懒癌”了,今天就先弄个词云凑合吧( ╯□╰ )。
词云首先需要将下载好的“流浪地球”的文本文件读入R,然后使用jieba包对文本进行分词,然后绘制词云。
一 数据准备
载入所需的R包,准备好流浪地球的txt格式的文本文件。
library(jiebaRD)
library(jiebaR)
library(wordcloud2)
二 分词,统计词频
使用jieba包对文本进行分词。
engine = worker()
segment("流浪地球.txt",engine)
data <- scan('流浪地球.segment.2019-04-09_22_36_54.txt',sep='\n',what='',encoding="UTF-8")
data2 <- freq(data)
data2 <- qseg[data]
data.words <- data2
三 去掉停词
过滤掉类似“的”,“你”,“我们”等类似的无意义的停词,并可根据自己需要设置词频的个数。
#过滤掉1个字的词
data.words <- subset(data.words, nchar(as.character(data.words))>1)
#过滤停词
stop=read.table(file=file.choose(),colClasses="character")
stopwords=c(NULL)
for(i in 1:dim(stop)[1]){
stopwords=c(stopwords,stop[i,1])
for(j in 1:length(stopwords)){
data.words <- subset(data.words,data.words!=stopwords[j])
}
四 统计词频
4.1 统计词频
data.freq <- table(unlist(data.words))
data.freq <- rev(sort(data.freq))
data.freq <- data.frame(word=names(data.freq), freq=data.freq)#按词频过滤词,过滤掉只出现过一次的词,这里可以根据需要调整过滤的词频数
data.freq=subset(data.freq, data.freq$freq.Freq>=2)
head(data.freq)
word freq.Var1 freq.Freq
1 地球 地球 164