根据文献标题绘制词云

作业3-2:https://mp.weixin.qq.com/s/MGRIJAcSsePtMdLD6hwDwQ
根据文献标题画词云,看看文章的规律。
绘制词云的代码参考:WordCloud

step 1:创建文本文件

如图:在这里插入图片描述

step 2:安装并加载所需的包
install.packages("tm")#文本挖掘
install.packages("SnowballC")#文本词干提取
install.packages("wordcloud")#词云生成
install.packages("RColorBrewer")

library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
step 3:文本挖掘
#加载文本
#导入文本文件
text<-readLines(file.choose())
filePath<-"D:/生信学习/作业3-2/Wordcloud.txt"
text<-readLines(filePath)
#将数据加载为语料库
#docs<-Corpus(VectorSource(text)) #VectorSource()函数创建字符向量语料库
docs<-VCorpus(VectorSource(text))

#检查文档内容
inspect(docs)

#文字转换
#使用tm_map()函数执行转换以替换文本中的特殊字符等
toSpace<-content_transformer(function(x,pattern)gsub(pattern,"",x))
#gsub函数:R语言字符串替换函数
docs<-tm_map(docs,toSpace,"/")
docs<-tm_map(docs,toSpace,"@")
docs<-tm_map(docs,toSpace,"\\|")

#清理文本
docs<-tm_map(docs,content_transformer(tolower)) #将文本转换成小写
docs<-tm_map(docs,removeNumbers) #移除数字
#docs<-tm_map(docs,removeWords,stopwords("pdf")) #移除停用词
docs<-tm_map(docs,removeWords,c("pdf","and","the"))#移除该文本停用词
docs<-tm_map(docs,removePunctuation) #移除标点符号
docs<-tm_map(docs,stripWhitespace) #消除额外空白空间
#docs<-tm_map(docs,stemDocument) #词干提取

###使用Corpus语料库会出现warning:
在这里插入图片描述

原因:当使用语料库Corpus而不是 VCorpus 时,当只有一个基于 VectorSource 的语料库组合时,才会出现此警告。原因是底层代码有检查,看语料内容的名称个数是否与语料内容的长度匹配。将文本作为向量读取时,没有文档名称,并且会弹出此警告。(参考:https://www.e-learn.cn/topic/2624064

step 4:构建term-document矩阵
dtm<-TermDocumentMatrix(docs) #TermDocumentMatrix函数来自text mining包
m<-as.matrix(dtm)
v<-sort(rowSums(m),decreasing=TRUE)
d<-data.frame(word=names(v),freq=v)
head(d,10)
step 5:生成词云
set.seed(1234)
wordcloud(words=d$word,freq=d$freq,min.freq=1,max.words=200,random.order=FALSE,rot.per=0.35,colors=brewer.pal(8,"Dark2"))

参数说明:
random.order:随机顺序放词,若为FALSE,按照降序呈现
rot.per:90°放置词(垂直文本)
colors:词语颜色从频率最少到最多

###注:stemDocument函数会提取词干,导致词云绘制结果并不准确:
在这里插入图片描述
所以我将词干提取的那句代码注释掉了,结果如下:
在这里插入图片描述
从这45篇文章标题的词云能看出其研究的主要方向,相关的癌症基因,通路,以及功能等。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值