之前写道一篇一万五千个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