Если у вас все еще есть данные обучения, повторное обучение модели gensim
Word2Vec
может быть самым простым подходом.
Если вам нужны только векторы слов, возможно, модель PySpark сможет их экспортироватьв формате word2vec.c
, который gensim
может загрузить с .load_word2vec_format()
.
Единственной причиной для переноса модели будет продолжение обучения.Такое дополнительное обучение, хотя и возможно, включает в себя рассмотрение множества компромиссов в уравновешивании влияния старшего и более позднего обучения, чтобы получить хорошие результаты.
Если вы на самом деле хотите выполнить это преобразование, чтобы провести дополнительную тренировку таким образом, это еще раз говорит о том, что использование исходного обучения для воспроизведения аналогичной модели может быть правдоподобным.
Но, если вам нужно преобразовать модель, общий подход будет состоять в том, чтобы изучить исходный код и внутренние структуры данных двух моделей, чтобы выяснить, как они альтернативно представляют каждый из ключевых аспектов модели:
- известные векторы слов (
model.wv.vectors
в генсиме) - известный словарь слов, включая статистику о частотах слов и позиции отдельных слов (
model.wv.vocab
в gensim) - вес скрытых для вывода моделей (`model.trainables 'и его свойства в gensim)
- другие свойства модели, описывающие режимы и метапараметры модели
Разумный интерактивный подход может быть следующим:
Напишите несколько приемочных тестов, в которых используются модели обоих типов, и проверьте, действительно ли они «эквивалентны» для ваших целей.(Это относительно просто, если просто проверить, присутствуют ли векторы для отдельных слов и идентичны ли они, но почти так же сложно, как и само преобразование, для проверки других типов поведения, готовых к обучению.)
Затем в интерактивной записной книжке загрузите исходную модель, а также создайте фиктивную модель Генсима с таким же размером словарного запаса.Изучая исходный код, напишите операторы Python, чтобы итеративно копировать / преобразовывать ключевые свойства из источника в цель, многократно проверяя их на эквивалентность.
Когда они это сделают, выполните эти шагивы сделали вручную и объединить их в служебный метод, чтобы сделать преобразование.Снова проверьте его работу, затем попробуйте использовать преобразованную модель, как вы и надеялись - возможно, обнаружив упущенную информацию или обнаружив другие ошибки в процессе, а затем улучшив метод проверки и метод преобразования.
Вполне возможно, что в модели PySpark будут отсутствовать вещи, ожидаемые моделью gensim, для чего может потребоваться синтез работоспособных значений замены.
Удачи!(Но перенастройте модель gensim из исходных данных, если хотите, чтобы все было просто и работало.)