Модель Gensim Word2Vec: размеры выреза

У меня есть обученные модели word2vec в geinsim с 300 измерениями, и я хотел бы сократить размеры до 100 (просто удалить последние 200 измерений). Каков самый простой и эффективный способ использования python?


person pexmar    schedule 13.12.2016    source источник


Ответы (2)



Вы должны иметь возможность обрезать размеры внутри экземпляра KeyedVectors, а затем сохранить его, поэтому вам не нужно делать ничего особенного с форматом на диске. Например:

kv = w2v_model.wv
kv.vectors = kv.vectors[:,0:100]  # keeps just 1st 100 dims
kv.vector_size = 100

Теперь kv можно сохранить (либо как родной .save() gensim, либо как формат обмена .save_word2vec_format()) или просто использовать как подмножество исходных измерений.

(Хотя любые 100 измерений более крупного вложения, скорее всего, будут такими же хорошими, как и любые другие, вы потеряете часть выразительности 300 измерений произвольным образом. Повторное обучение со 100 измерениями для начала может быть лучше. , или используя какой-то алгоритм уменьшения размерности, который, по сути, наверняка оставит вас с «наиболее выразительными» 100 измерениями.)

person gojomo    schedule 14.03.2020