Недавно я начал экспериментировать с предварительно обученными встраиваниями слов, чтобы повысить производительность моей модели LSTM для задачи НЛП. В этом случае я посмотрел в Google Word2Vec. Основываясь на интерактивных руководствах, я сначала скачал Word2Vec с wget https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz
и использовал пакет Python gensim
для запроса вложений, используя следующий код.
from gensim.models import KeyedVectors
if __name__ == "__main__":
model = KeyedVectors.load_word2vec_format("./data/word2vec/GoogleNews-vectors-negative300.bin", binary=True)
print(model["bosnia"])
Однако, заметив, что в модели не нашли много общих слов, я начал задумываться, не ошиблась ли что-то. Я попытался найти bosnia
во встроенном репозитории, как показано выше, но он не был найден. Итак, я пошел на встраиваемый проектор TensorFlow , загрузил модель Word2Vec и искал bosnia
- он там был.
Итак, мой вопрос: почему это происходит? Была ли загруженная мной версия Word2Vec неполной? Или gensim не может загрузить все слова в память и поэтому пропустить некоторые?