Python >> Tutoriel Python >  >> Python Tag >> Gensim

Visualisez les intégrations Gensim Word2vec dans le projecteur Tensorboard

Ce que tu décris est possible. Ce que vous devez garder à l'esprit, c'est que Tensorboard lit à partir des fichiers binaires Tensorflow enregistrés qui représentent vos variables sur le disque.

Plus d'informations sur l'enregistrement et la restauration du graphique et des variables tensorflow ici

La tâche principale est donc d'obtenir les représentations incorporées sous forme de variables tf enregistrées.

Hypothèses :

  • dans le code suivant embeddings est un dict python {word:np.array (np.shape==[embedding_size])}

  • la version python est 3.5+

  • les bibliothèques utilisées sont numpy as np , tensorflow as tf

  • le répertoire pour stocker les variables tf est model_dir/

Étape 1 :Empilez les représentations vectorielles continues pour obtenir un seul np.array

embeddings_vectors = np.stack(list(embeddings.values(), axis=0))
# shape [n_words, embedding_size]

Étape 2 :Enregistrez le tf.Variable sur disque

# Create some variables.
emb = tf.Variable(embeddings_vectors, name='word_embeddings')

# Add an op to initialize the variable.
init_op = tf.global_variables_initializer()

# Add ops to save and restore all the variables.
saver = tf.train.Saver()

# Later, launch the model, initialize the variables and save the
# variables to disk.
with tf.Session() as sess:
   sess.run(init_op)

# Save the variables to disk.
   save_path = saver.save(sess, "model_dir/model.ckpt")
   print("Model saved in path: %s" % save_path)

model_dir doit contenir des fichiers checkpoint , model.ckpt-1.data-00000-of-00001 , model.ckpt-1.index , model.ckpt-1.meta

Étape 3 :Générer un metadata.tsv

Pour avoir un beau nuage étiqueté d'incorporations, vous pouvez fournir à tensorboard des métadonnées sous forme de valeurs séparées par des tabulations (tsv) (cf. ici).

words = '\n'.join(list(embeddings.keys()))

with open(os.path.join('model_dir', 'metadata.tsv'), 'w') as f:
   f.write(words)

# .tsv file written in model_dir/metadata.tsv

Étape 4 :Visualisez

Exécutez $ tensorboard --logdir model_dir -> Projecteur .

Pour charger les métadonnées, la magie opère ici :

Pour rappel, quelques word2vec les projections d'intégration sont également disponibles sur http://projector.tensorflow.org/


Gensim a en fait le moyen officiel de le faire.

Documentation à ce sujet