Уменьшить размер рассола TfidfVectorizer

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

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(
        strip_accents = 'ascii', sublinear_tf=True, min_df=5, norm='l2',
        encoding='latin-1', ngram_range=(1, 2), stop_words=spanish_stopwords,
        token_pattern = r'\w+[a-z,ñ]')
features = tfidf.fit_transform(df.Consumer_complaint_narrative).toarray()

features.shape

(617, 22997)

import pickle
pickle.dump(tfidf, open("vectorizer3.pickle", "wb"))

Размер vectorizer3.pickle составляет 76,2 МБ. Есть ли способ уменьшить это до 10 МБ?


person anitasp    schedule 24.09.2018    source источник


Ответы (1)


Попробуйте использовать gzip

import gzip
import pickle

# writing into file. This will take long time
fp = gzip.open('tfidf.data','wb')
pickle.dump(tfidf,fp)
fp.close()

# read the file
fp = gzip.open('primes.data','rb') #This assumes that tfidf.data is already packed with gzip
tfidf = pickle.load(fp)
fp.close()

Этот метод может не гарантировать вам уменьшение размера файла до ‹ 10 МБ. Но определенно это уменьшит размер файла рассола.

person Kalsi    schedule 26.09.2018