之前写道一篇一万五千个R包的词云看R专长利用了jiebaR分词看CPRN中R包的描述词频,今天用类似的方法做了一下Bioconductor包的词频分析。
Bioconductor所有包列表:
同样,我们用 jiebaR+wordcloud2 做分词和词频统计:
# devtools::install_github("qinwf/jiebaR")
library(jiebaR)
# install.packages("wordcloud2")
library(wordcloud2)
library(dplyr)
# 数据来源:https://cloud.r-project.org/
# 此处我们取title列分析,简单起见,将title列复制到文本逐行读取
text <- readLines("R.txt")
# 分词处理
# 在调用worker()函数时,我们实际是在加载jiebaR库的分词引擎
#
# 包括mix, mp, hmm, full, query,tag, simhash, keyword,分别指混合模型,
# 支持最大概率,隐马尔科夫模型,全模式,索引模型,词性标注,文本Simhash相似度比较,
# 关键字提取
#
# https://github.com/qinwf/jiebaR
# 避免影响最后的结果,去除连接词、短词和一些高频的链接词
text.filter <-
gsub(
' \\w{1,3} |with|from|using|data|package|version',
'',
text,
ignore.case = T,
perl = T
)
# 全部转换成小写
text.filter <- tolower(text.filter)
# 然后分词
seg.filter <- worker("mix")
seg.filter <= text.filter
# 建立词频
freq <- freq(segment(text.filter, seg.filter))
freq$len <- apply(freq, 1, function(x) {
nchar(as.character(x[1]))
})
# 过滤英文词长度小于3的单词且词频大于10
freq <- freq[freq$len > 3 & freq$freq > 10,]
freq$len <- NULL
# 排序
index <- order(-freq[, 2])
freq.order <- freq[index,]
wordcloud2(
freq.order,
size = 1
)
从图示可以看除,芯片分析由于出道较早,包的数量在biocondutor中依旧占比很多,同时我们看到illumina、genome、expression等词的突出显示也展示了NGS时代的方法在突飞猛进。
参考资料:
1.http://www.bioconductor.org/packages/release/BiocViews.html