Экземпляры Gensim KeyedVectors
(общий интерфейс наборов слов-векторов) содержат метод init_sims()
, который внутренне вычисляет нормализованные векторы единичной длины, используя собственную векторную операцию для скорости.
Когда определенные операции, которые обычно выполняются с нормализованными по единицам векторами, предпринимаются в первый раз, автоматически вызывается init_sims()
, и модель кэширует нормализованные векторы в свойстве модели (vectors_norm
) - примерно вдвое больше потребления оперативной памяти.
После вызова вы можете получить нормированные векторы, используя метод .word_vec()
:
normed_wv = kv_model.word_vec(word, use_norm=True)
Если вы уверены, что вам не понадобятся необработанные ненормированные векторы,Вы также можете вызвать init_sim()
самостоятельно с помощью необязательного параметра replace
.Затем нормированные векторы будут засорять необработанные векторы на месте, сохраняя дополнительную оперативную память.Например:
kv_model.init_sims(replace=True)
Обратите внимание, что в то время как такие вещи, как поиск ближайших соседей слова, как в обычной операции most_similar()
, традиционно используют нормализованные по единицам векторы, иногда существуют последующие приложения, где необработанныевекторы полезны.(Кроме того, в полной модели Word2Vec
, если вы собираетесь проводить дополнительное инкрементальное обучение, это должно происходить на необработанных векторах, а не на нормализованных векторах.)