В API Gensims word2vec я обучил модель, где я инициализировал модель с max_final_vocab = 100000 и сохранил модель с помощью model.save () (это дает мне один файл .model, один .model.trainables.syn1neg.npy иодин файл .model.wv.vectors.npy).
Мне больше не нужно обучать модель, поэтому я в порядке, используя только
model = gensim.models.Word2Vec.load("train.fr.model")
kv = model.wv
del model
переменную kv, показанную здесь,Теперь я хочу использовать только словарный запас top N (в моем случае N = 40000) вместо всего словарного запаса.Единственный способ даже попытаться сократить словарный запас, который я смог найти, был
import numpy as np
emb_matrix = np.load("train.fr.model.wv.vectors.npy")
emb_matrix.shape
# (100000, 300)
new_emb_matrix = emb_matrix[:40000]
np.save("train.fr.model.wv.vectors.npy", new_emb_matrix)
Если я снова загружу эту модель, словарь все еще имеет длину 100000.
Я хочу уменьшить словарный запасмодели или model.wv при сохранении рабочей модели.Переподготовка не вариант.