Слово Word2Vec не найдено в Gensim, но отображается на встраиваемом проекторе TensorFlow? - PullRequest
0 голосов
/ 04 июня 2019

Недавно я начал экспериментировать с предварительно обученными встраиваниями слов, чтобы повысить производительность моей модели 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 не может загрузить все слова в память и поэтому пропустить некоторые?

1 Ответ

0 голосов
/ 04 июня 2019

Необходимо проверить длину загруженных файлов, чтобы убедиться, что они соответствуют ожидаемым (в случае, если они были усечены или загружены не полностью).

Вам следует дважды проверить, что вы используете один и тот же файл в обоих местах, а также проверять один и тот же токен (например, 'bosnia' против 'Bosnia') по обоим путям. (Ни один из 5 параметров в раскрывающемся списке https://projector.tensorflow.org/ не соответствует набору данных GoogleNews 300-d, 3 миллиона токенов, и кнопка load не поддерживает word2vec .bin файлы, поэтому я не уверен, как это можно использовать для перекрестной проверки содержимого этого файла.)

(Нет никаких известных ошибок в gensim load_word2vec_format(), которые бы объяснили его отсутствующими векторами, которые на самом деле присутствуют.)

...