В Gensims word2vec api я обучил модель, где я инициализировал модель с 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. Теперь я хочу использовать только верхние 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, сохранив рабочую модель. Переподготовка не вариант.