把訓練好的詞向量模型視覺化

2021-10-03 00:08:45 字數 1438 閱讀 1999

意思相近的詞語,在向量空間中的距離應該越近。對於乙個高維詞向量,我們無法直觀地觀察兩個詞的距離,於是我們就需要把詞向量降維處理,變成二維的,就可以畫出來了。

輸入是乙個訓練好的詞向量模型。輸出是一張,把每個詞都標記在上面。

from gensim.models import word2vec

from random import sample

from pylab import mpl

model = word2vec.load(

'./word_vectors_100'

)#載入模型,這個模型中的詞向量是100維的,模型檔案放在當前目錄

words =

list

(model.wv.vocab)

#把所有詞向量的詞語裝到列表中

labels = sample(words,

1000

)#隨機取出1000個詞語用來畫圖

tokens = model[labels]

#得到1000個詞語的詞向量

tsne_model = tsne(perplexity=

40, n_components=

2, init=

'pca'

, n_iter=

2500

, random_state=23)

new_values = tsne_model.fit_transform(tokens)

#降維處理

mpl.rcparams[

'font.sans-serif']=

['simhei'

]#中文字型

mpl.rcparams[

'axes.unicode_minus']=

false

#防止負號出現異常顯示

x =[

]y =

for value in new_values:0]

)1])

plt.figure(figsize=(16

,16))

#定義畫布大小

for i in

range

(len

(x))

: plt.scatter(x[i]

,y[i]

) plt.annotate(labels[i]

, xy=

(x[i]

, y[i]),

xytext=(5

,2),

textcoords=

'offset points'

, ha=

'right'

, va=

'bottom'

)plt.show(

)

1000個詞向量,畫圖需要5分鐘

tensorboard 視覺化的訓練

1.使用 with tf.name scope layer 加標籤 def add layer inputs,in size,out size,activation function none with tf.name scope layer with tf.name scope weights w...

CIFAR 10模型訓練與視覺化

通過caffe深度學習框架在cifar10資料集訓練得到模型,觀察並分析模型的train loss test loss及accuracy曲線,並對得到的caffemodel進行測試。資料集介紹 cifar 10是乙個使用非常廣泛的物體識別影象資料集,cifar 10資料中包含了60000張32 32...

基於MATLAB的視覺化支援向量機

其實,散點圖很容易畫,大家都各有各的畫法.主要問題是分界線的繪製,因為得到分類器之後,我不會得到它的分介面.通過觀察,例子中與畫分界線的 有關的部分如下 h 0.02 mesh grid step size x1,x2 meshgrid min x 1 h max x 1 min x 2 h max...