如何绘制两端标注HE与SHE的词嵌入可视化图表
词嵌入降维后分布可视化实现步骤
假设你已经完成PCA降维,得到了shape为(N,2)的降维后数组,同时持有对应N个词汇的标签列表,可按以下步骤实现绘图:
依赖库准备
提前安装以下Python库即可:
numpy:用于基础数据处理matplotlib:用于绘图输出- 若需要更美观的预设样式可额外安装
seaborn
具体实现代码
import numpy as np import matplotlib.pyplot as plt # 以下数据替换为你的实际数据即可 # pca_result:PCA降维后得到的二维数组,每个元素对应一个词的二维坐标 # word_list:和pca_result一一对应,存储每个坐标对应的词汇文本 pca_result = np.array([[1.2, 0.5], [-0.3, 2.1], [1.5, -0.8], [-1.1, -0.7]]) word_list = ["国王", "王后", "男人", "女人"] # 初始化画布,可自行调整尺寸和分辨率 plt.figure(figsize=(12, 8), dpi=100) # 绘制所有词的散点 plt.scatter(pca_result[:, 0], pca_result[:, 1], c='steelblue', s=50, alpha=0.7) # 为每个散点添加对应的词汇标签 for i, word in enumerate(word_list): plt.annotate(word, xy=(pca_result[i, 0], pca_result[i, 1]), xytext=(5, 2), # 标签相对于散点的偏移量,避免和点重叠 textcoords='offset points', fontsize=10, color='darkslategray') # 配置图表样式 plt.xlabel('PCA 第一主成分', fontsize=12) plt.ylabel('PCA 第二主成分', fontsize=12) plt.title('词嵌入二维分布可视化', fontsize=15) plt.grid(alpha=0.3, linestyle='--') # 可选操作:移除上下右边框让样式更清爽 plt.gca().spines['top'].set_visible(False) plt.gca().spines['right'].set_visible(False) plt.show()
常见场景调整说明
- 若词汇量太大导致标签重叠,可适当调小
fontsize参数,或者仅筛选标注你关注的核心词汇,过滤低频/非重点词汇 - 若需要给不同类别的词汇标注不同颜色,可给
c参数传入和点数量一致的颜色标签列表,还可额外添加图例区分不同类别 - 散点的大小、透明度可通过调整
s和alpha参数适配你的数据量和显示需求
内容的提问来源于stack exchange,提问作者Dalireeza
相关产品推荐
相关产品推荐

