R语言如何绘制词云图(17)

1.什么是词云图?

“词云”由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于2006年最先使用。戈登做过编辑、记者,曾担任迈阿密先驱报新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。 因此,“词云”就是通过形成“关键词云层”或“关键词渲染”,对文本中出现频率较高的“关键词”进行视觉上的突出。

词云图过滤掉大量的文本信息,使浏览者只要一眼扫过文本就可以领略文本的主旨。

本文我们就来讨论一下词云图是如何绘制的以及如何对其进行解读。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I4dIesXp-1652085433393)(D:\gitee\bioladder2\文档\知乎\词云图.assets\image-20220112142720326.png)]

2.绘图前的数据准备

​ demo数据可以在https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/wordcloud/wordcloud.zip下载。

本工具支持两种数据格式,一种是词频,另一种是一段话。

2.2.1 词频

必须要有列名,名称自定义。第一列为名称,第二列为名称对应的数量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z05fEKNu-1652085433394)(D:\gitee\bioladder2\文档\知乎\词云图.assets\image-20220112141905114.png)]

2.2.2 一段话

支持中文和英文,工具会自动将其拆分为词,并统计个数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDLieVEK-1652085433395)(D:\gitee\bioladder2\文档\知乎\词云图.assets\image-20220112142007715.png)]

3. R语言怎么画词云图

library(jiebaRD) 
library(jiebaR)                 
library(wordcloud2)

# 先将一段文字转成词频
text = "蛋白质组(Proteome)的概念最先由Marc Wilkins提出,指由一个基因组(genome),或一个细胞、组织表达的所有蛋白质(Protein). 蛋白质组的概念与基因组的概念有许多差别,它随着组织、甚至环境状态的不同而改变. 在转录时,一个基因可以多种mRNA形式剪接,并且,同一蛋白可能以许多形式进行翻译后的修饰. 故一个蛋白质组不是一个基因组的直接产物,蛋白质组中蛋白质的数目有时可以超过基因组的数目. 蛋白质组学(Proteomics)处于早期“发育”状态,这个领域的专家否认它是单纯的方法学,就像基因组学一样,不是一个封闭的、概念化的稳定的知识体系,而是一个领域. 蛋白质组学集中于动态描述基因调节,对基因表达的蛋白质水平进行定量的测定,鉴定疾病、药物对生命过程的影响,以及解释基因表达调控的机制. 作为一门科学,蛋白质组研究并非从零开始,它是已有20多年历史的蛋白质(多肽)谱和基因产物图谱技术的一种延伸. 多肽图谱依靠双向电泳(Two-dimensional gel electrophoresis, 2-DE)和进一步的图象分析;而基因产物图谱依靠多种分离后的分析,如质谱技术、氨基酸组分分析等."

initialize = worker(stop_word="stopwords.txt")
# 停止词文件可以在这里下载https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/wordcloud/stopwords.txt
df<-freq(initialize[text]) # 计算词频

# 绘图
wordcloud2(df, 
           size = 1,                  # 字体大小
           fontFamily = 'Segoe UI',   # 字体
           fontWeight = 'bold',       # 字体粗细
           color = 'random-dark',     # 字体颜色
           backgroundColor = "white", # 背景颜色
           minRotation = -pi/4,       # minRotation和maxRotation控制文本旋转角度的范围
           maxRotation = pi/4,
           rotateRatio = 0.4,         # 文本旋转的概率 0.4表示大约有40%的词发生了旋转
           shape = "circle"           # 轮廓形状
          )

4. BioLadder生信云平台在线绘制词云图

不想写代码?可以用BioLadder生信云平台在线绘制词云图。

网址:https://www.bioladder.cn/web/#/chart/20

在这里插入图片描述

5. 词云图结果解读

img

词云图是通过使每个字的大小与其出现频率成正比,显示不同单词在给定文本中的出现频率,然后将所有的字词排在一起,形成云状图案,可以以任何格式排列:水平线、垂直列或其他形状。在词云图上使用颜色通常都是毫无意义的,主要是为了美观。

### Swin Transformer 论文精读:Hierarchical Vision Transformer Using Shifted Windows Swin Transformer 是一种基于视觉的分层 Transformer 模型,其核心创新在于通过 **Shifted Window-based Self-Attention** 实现了线性计算复杂度,同时能够生成多尺度特征表示。这种方法在图像分类、目标检测和语义分割等任务中取得了显著的性能提升 [^2]。 #### 核心架构概述 Swin Transformer 的整体结构分为多个阶段(Stage),每个阶段包含多个 Swin Transformer Block。这些块使用 **窗口化自注意力机制** 和 **移位窗口策略** 来实现高效计算并捕捉长距离依赖关系。 - **分层特征提取** 类似于传统卷积神经网络(如 ResNet),Swin Transformer 采用分层设计来逐步降低空间分辨率并增加通道维度。这种设计允许模型从局部到全局地构建特征表示。 - **窗口划分与移位窗口机制** 在每个 Swin Transformer Block 中,输入特征图被划分为不重叠的窗口,并在这些窗口内执行自注意力计算。为了增强跨窗口的信息交互,在下一个 Block 中对窗口进行移位操作(Shifted Windows)。这种方式既减少了计算量,又保持了模型对全局信息的感知能力 [^1]。 ```python # 窗口划分伪代码示例 def window_partition(x, window_size): B, H, W, C = x.shape # 将图像划分为多个窗口 x = tf.reshape(x, shape=[B, H // window_size, window_size, W // window_size, window_size, C]) windows = tf.transpose(x, perm=[0, 1, 3, 2, 4, 5]) return tf.reshape(windows, shape=[-1, window_size, window_size, C]) # 移位窗口伪代码 def shifted_window_attention(x, window_size, shift_size): B, H, W, C = x.shape # 对特征图进行滚动操作以实现窗口移位 x = tf.roll(x, shift=(-shift_size, -shift_size), axis=(1, 2)) return window_partition(x, window_size) ``` #### 自注意力机制优化 传统的 Vision TransformerViT)在整个图像上应用自注意力机制,导致计算复杂度为 $O(n^2)$,其中 $n$ 是图像块的数量。而 Swin Transformer 通过将注意力限制在局部窗口内,将复杂度降低到 $O(n)$,使其适用于高分辨率图像处理 [^4]。 此外,移位窗口机制确保了相邻窗口之间的信息流动,从而避免了局部注意力带来的信息隔离问题。这种设计使得 Swin Transformer 能够在保持计算效率的同时实现全局建模能力。 #### 实验结果与性能优势 Swin Transformer 在多个视觉任务中表现出色: - **ImageNet 分类任务**:Swin-Tiny、Swin-Small、Swin-Base 和 Swin-Large 四种变体均在 ImageNet-1K 上实现了优于其他 Transformer 主干网络的 Top-1 准确率。 - **COCO 目标检测**:在 COCO 数据集上,Swin Transformer 在 Faster R-CNN 框架下达到了 SOTA 性能,mAP 超过之前的最佳方法。 - **ADE20K 语义分割**:在 ADE20K 数据集上,Swin Transformer 作为编码器也取得了领先的 mIoU 指标 [^2]。 #### 消融实验分析 论文还进行了详细的消融研究,验证了以下几个关键组件的有效性: - **窗口大小的影响**:较大的窗口有助于捕捉更广泛的上下文,但会增加计算开销。 - **移位窗口的重要性**:实验证明,移位机制可以显著提升模型性能,尤其是在长距离依赖任务中。 - **不同层级的设计**:通过对比不同层级深度和通道配置,论文展示了如何平衡精度与效率 [^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值