После обучения модели word2vec с использованием gensim python, как определить количество слов в словарный запас модели?
gensim word2vec: найти количество слов в словаре
Ответы (3)
Словарь находится в поле vocab
свойства wv
модели Word2Vec в качестве словаря, причем каждый из ключей представляет собой токен (слово). Так что это обычный Python для получения длины словаря:
len(w2v_model.wv.vocab)
(В более старых версиях gensim до 0.13, vocab
отображалось непосредственно на модели. Таким образом, вы должны использовать w2v_model.vocab
вместо w2v_model.wv.vocab
.)
person
gojomo
schedule
26.02.2016
Кажется, не подходит для версии 4
- person 001001; 28.01.2021
См. Примечания по миграции Gensim 4: github.com/RaRe-Technologies/ gensim / wiki /
- person gojomo; 28.01.2021
Еще один способ узнать размер словаря - это использовать саму матрицу вложения, как показано ниже:
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
person
kmario23
schedule
26.02.2019
Ответ Gojomo поднимает AttributeError
для Gensim 4.0.0+.
Для этих версий вы можете получить длину словаря следующим образом:
len(w2v_model.wv.index_to_key)
(что немного быстрее, чем: len(w2v_model.wv.key_to_index)
)
person
Emil
schedule
22.06.2021