web-dev-qa-db-fra.com

gensim Word2vec: Trouver le nombre de mots dans le vocabulaire

Après avoir formé un modèle Word2vec à l'aide de python gensim , comment trouvez-vous le nombre de mots dans le vocabulaire du modèle?

27
hlin117

Le vocabulaire se trouve dans le champ vocab de la propriété wv du modèle Word2Vec, sous forme de dictionnaire, les clés constituant chaque jeton (Word). Donc c'est juste l'habituel Python pour obtenir la longueur d'un dictionnaire:

len(w2v_model.wv.vocab)

(Dans les anciennes versions de gensim antérieures à 0.13, vocab apparaissait directement sur le modèle. Vous utiliseriez donc w2v_model.vocab au lieu de w2v_model.wv.vocab.)

64
gojomo

Une autre façon d’obtenir la taille du vocabulaire est à partir de la matrice d’incorporation elle-même, comme dans:

In [33]: from gensim.models import Word2Vec

# load the pretrained model
In [34]: model = Word2Vec.load(pretrained_model)

# get the shape of embedding matrix    
In [35]: model.wv.vectors.shape
Out[35]: (662109, 300)

# `vocabulary_size` is just the number of rows (i.e. axis 0)
In [36]: model.wv.vectors.shape[0]
Out[36]: 662109
1
kmario23