如何对我们通过word2vec模型得的的词向量(.txt文件)进行可视化?
步骤如下:
1)导入包matplotlib.pyplot、KMeans、PCA;
2)读取词向量文件信息,获取所有词数组(array)和词到词向量的映射(dict);
3)用for循环得到当前所选词的词向量数组(array);
4)将高维向量压缩为二维向量,以此作为可视化图像的X与Y轴坐标;
5)设定好维度、颜色、字体后开始画图,最后再为每个词标注信息。
代码如下:
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
f = open("embedding.txt", encoding="utf-8")
f.readline() # 略过头文件信息
all_words = [] # 所有词
word2emb = dict() # 词到词向量的映射
for i, line in enumerate(f):
line = line.strip().split(' ')
word = line[0]
embedding = [float(x) for x in line[1:]]
all_words.append(word)
word2emb[word] = embedding
pca = PCA(n_components=2)