【R_可视化】使用wordcloud包制作分类词云图
发布日期:2021-06-29 02:15:39 浏览次数:2 分类:技术文章

本文共 2696 字,大约阅读时间需要 8 分钟。

2021/3/17:今天也是充实的一天。

早上,验收训练好的NER模型,对模型精度变化进行简单分析;随后,参考相关文献,修改小论文(仍不理想,至少还得改三四天);最后,尝试制作分类词云图(暂未使用自己的数据实现)。晚上,外出慢跑/散步+听音乐半小时。

2021/3/18:今天也是充实的一天。

上午:阅读文献,修改(用“修改”一词可能不合适,因为这更像是重写)结果部分,计划明天继续改结果+讨论部分,周末改其他部分。

下午:尝试制作分类词云图,已实现!(翻阅很多网上教程,均没能点醒我这R小白,最后,竟是在Youtube上找到合适教程:、、,以上视频依次是导入语料、清洗语料与制作比较云的教程,建议按流程都码一遍)


效果图

原文:

Twitter-分类词云图

 

R之wordcloud包

参考教程:

 


简例(一)

代码来自:(找代码,就上Github)

#安装所需要的程序包library(gutenbergr)library(tidytext)library(dplyr)library(wordcloud)dracula<-gutenberg_download(345)dracula$gutenberg_id<-NULLdracula<-dracula%>%  unnest_tokens(word, text)bing<-get_sentiments('bing')dracula<-inner_join(dracula, bing)words<-dracula%>%  group_by(word)%>%  summarize(count=n(), sentiment=first(sentiment))%>%  arrange(count)# A normal wordcloud plotwordcloud(words$word, words$count, max.words=150)# Reshaping our data to a matrix with reshape2library(reshape2)matrix<-acast(words, word~sentiment, value.var='count', fill=0)# The comparison cloudcomparison.cloud(matrix, colors=c('black', 'orange'))

输出:积极/消极两类的分类词云

积极/消极两类的分类词云

比较云案例(二)

代码

#file.choose()folder<-'E:\\wordcloud\\topic2 - 副本'filelist <- list.files(path=folder,pattern = '*.txt')paste(folder,'\\',filelist)filelist <- paste(folder,'\\',filelist,sep="")a <- lapply(filelist,FUN=readLines)corpus <- lapply(a,FUN=paste,collapse=" ")corpus2 <- gsub(pattern = "\\W",replace=" ",corpus)corpus2 <- gsub(pattern = "\\d",replace=" ",corpus2)corpus2 <- tolower(corpus2)#corpus2 <- removeWords(corpus2,stopwords("english"))#corpus2 <- stripWhitespace(corpus2)library(tm)library(wordcloud)dev.new(width = 100, height = 100, unit = "px")#wordcloud(corpus2,random.order = FALSE,col=rainbow(10),size = 0.00001,fontFamily = "宋体")corpus3 <- Corpus(VectorSource(corpus2))tdm <- TermDocumentMatrix(corpus3)m <- as.matrix(tdm)colnames(m) <- c('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20')comparison.cloud(m, scale = c(1.1,1), rot.per = 0,random.order=FALSE, min.freq=0,                 colors = c('blue','red',"#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7",'blue','red',"#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7"),                 ordered.colors=T,title.size=1, max.words=2000000)

 

数据

(20个txt文件)

使用网上已有教程没能走通,其一大原因是我不了解需要传入的数据格式。因此,附上上述程序所需的数据(每个txt的内容只需是普通文本即可)截图,当然,这并非通用。

原始数据

 

结果图

(待美化)

20类比较云词云图

 

出现的主要问题及解决

在此过程中,遇到了不少问题,给本R小白带来困扰,好在最后都得以解决。

如:corpus2中的语料顺序与Topic“1-20”顺序不一致,导致词云图关键词与序号不一致

corpus2中的语料顺序

 

解决:换个角度解决问题——按照corpus2中的语料顺序,修改各Topic文件内容。具体而言,观察上图可知,corpus2中的语料顺序为:'1','10','11','12','13','14','15','16','17','18','19','2','20','3','4','5','6','7','8','9',那就将Topic10文件改为Topic2文件内容,Topic11文件改为Topic3文件内容,“瞬间”解决。

 

 

 

转载地址:https://blog.csdn.net/YWP_2016/article/details/114950956 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【NLP_关系抽取】相关模型代码、报错及解决
下一篇:【NLP_工具】工具包

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月29日 03时36分12秒