Gensim Word2vec Заморозить некоторые слова и обновить другие - PullRequest
0 голосов
/ 02 июля 2018

Относительно word2vec с gensim, Предположим, вы уже обучили модель в большом корпусе и хотите обновить ее новыми словами из новых предложений, но не обновлять слова, у которых уже есть вектор. Можно ли заморозить векторы некоторых слов и обновить только некоторые выбранные слова (например, новые слова) при вызове model.train? Или, может быть, есть хитрость, чтобы сделать это? Благодаря.

1 Ответ

0 голосов
/ 02 июля 2018

Есть! Но это экспериментальная функция с небольшим количеством документации - вам нужно прочитать исходный код, чтобы полностью понять его, и напрямую изменить вашу модель, чтобы использовать его.

Просмотрите в источнике word2vec.py свойства, заканчивающиеся _lockf, в частности, в последнем коде, названном vectors_lockf. Это своего рода маска, которая позволяет, ослабляет или останавливает тренировку определенных слов. Например, если значение равно 1.0, применяются обычные полные обратные обновления. Любое более низкое значение ослабляет обновление - поэтому 0.0 останавливает слово против обновлений. (Потенциальное обновление все еще рассчитывается - поэтому нет чистого ускорения - оно просто умножается на 0,0 перед окончательным применением к конкретным замороженным словам.)

...