Загрузка обученной модели Word2Vec DL4J в gensim - PullRequest
0 голосов
/ 11 октября 2018

Здравствуйте, у меня есть несколько моделей word2vec, сгенерированных с использованием Java-реализации Word2Vec в DL4J и сохраненных с помощью вызова

writeWord2VecModel(Word2Vec vectors, String path)

Выходные данные - это zip-файл, содержащий несколько текстовых файлов.,Я могу успешно загрузить и использовать модель в DL4j, используя

Word2Vec readWord2VecModel(String path)

. Я сейчас пытаюсь прочитать эту модель в Python, используя gensim

import gensim

model = gensim.models.KeyedVectors.load_word2vec_format('file_path, binary=False)

Но я получаю следующую ошибку:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe0 in position 10: invalid continuation byte

Я также пробовал с двоичным = True и получаю те же результаты.

Если я извлекаю модель, сгенерированную DL4J, я получаю следующие файлы:

List Of Files

Есть ли способ прочитать эту модель в python genism?

1 Ответ

0 голосов
/ 11 октября 2018

Ни одно из имен файлов, показанных на вашем изображении, не относится к типам gensim, которые можно прочитать как слова-векторы.

Какой путь к файлу и имя файла вы указываете load_word2vec_format()?(Ни один из методов загрузки gensim не может принять архив .zip.)

Может быть другой способ экспортировать векторы из DL4J в формат word2vec.c (текстовый или двоичный, одиночныйфайл), а не полный ZIP-архив модели.

Если вам это удастся, попробуйте указать такой отдельный файл для load_word2vec_format() с соответствующим значением binary.

(Если в этот момент у вас есть файл в правильном формате, но вы все еще получаете ошибки Юникода - возможно, позже в файле - есть необязательный аргумент unicode_errors='ignore', который можно предоставить load_word2vec_format() для ошибок при оплате через Юникод - но я не думаю, что это ваша основная проблема, и не будет вашей проблемой, если DL4J сможет правильно экспортировать слова-векторы.)

...