Чтобы расширить ответ @gojomo
, моделям Word2Vec
во время обучения предписывается сбрасывать токены ниже min_count
, так как они считаются неинформативными, что означает невозможность экстраполировать полезный контекст.
Это означает, что у этих токенов не будет векторов.
Чтобы проверить это, загрузите модель и убедитесь, что в словаре содержится интересующий токен:
>>> import gensim
>>> model = gensim.models.KeyedVectors.load(...)
>>> 'car' in model
True
>>> 'yuval' in model
False
Так как 'yuval' отсутствует в словаре, его нельзя найти с помощью оператора in
, и он выдаст ключевую ошибку, если используется.
>>> model['car']
...
...
<numpy array>
>>> model['yuval']
...
...
KeyError: "word 'yuval' not in vocabulary"
Если вы действительно этого ожидаетеслово должно быть в списке словарных слов, вы всегда можете распечатать их тоже:
>>> for token in model.wv.vocab.keys():
... print(token)
...