Как хранить векторные вложения Word?

0

Я использую BERT Word Embeddings для задачи классификации предложений с 3 метками. Я использую Google Colab для кодирования. Моя проблема в том, что, поскольку мне придется выполнять часть внедрения каждый раз, когда я перезапускаю ядро, есть ли способ сохранить эти вложения слов после их создания? Потому что создание этих вложений занимает много времени.

Код, который я использую для создания вложений слов BERT, -

[get_features(text_list[i]) for text_list[i] in text_list]

Здесь gen_features - это функция, которая возвращает встраивание слов для каждого i в моем списке text_list.

Я читал, что преобразование вложений в неровные тензоры, а затем использование np.save может сделать это. Но на самом деле я не знаю, как это кодировать.

Пожалуйста помоги.


person Amber Bhanarkar    schedule 03.07.2020    source источник


Ответы (1)


Вы можете сохранить данные вложения в файл numpy, выполнив следующие действия:

all_embeddings = here_is_your_function_return_all_data()
all_embeddings = np.array(all_embeddings)
np.save('embeddings.npy', all_embeddings)

Если вы сохраняете в Google Colab, вы можете скачать его на свой локальный компьютер. Когда он вам понадобится, просто загрузите его и загрузите.

all_embeddings = np.load('embeddings.npy')

Вот и все.

Кстати, вы также можете напрямую сохранить свой файл на гугл-диск.

person Nazmul Hasan    schedule 03.07.2020
comment
Предположим, что мои all_embeddings - это список вложений, поскольку меня больше интересует получение вложений для списка строк, а не для отдельной строки. Будет ли np.array работать в этом случае? - person Amber Bhanarkar; 03.07.2020
comment
да, сработает. Но убедитесь, что все встраиваемые формы / размеры в списке совпадают. Если это не так, вам придется использовать другой параметр для загрузки ваших данных. x = np.load ('file.npy', pickle = True). - person Nazmul Hasan; 03.07.2020
comment
Извините за задержку с ответом. Я запустил его, и он сработал. Я отметил ответ как правильный. Также, пожалуйста, проголосуйте за вопрос. Спасибо. - person Amber Bhanarkar; 06.07.2020