Как сделать так, чтобы TF-IDF toarray не занимал лишнюю память? - PullRequest
0 голосов
/ 16 сентября 2018

Как я знаю из некоторых статей, в которых объясняется, что вывод TF-IDF является разреженной матрицей, мы используем .toarray () для преобразования их для ввода в нейронную сеть, но у меня есть некоторые ошибки, связанные с памятью, я не понимаю, Об этой проблеме, слишком ли много памяти используется в компьютере? и как решить эту проблему.

Код:

vectorizer = TfidfVectorizer().fit(train_text)

tfidf_vector = vectorizer.transform(train_text).toarray()
tfidf_vector = tfidf_vector[:,:,None]

print(tfidf_vector.shape)
X_train, X_test, Y_train, Y_test = train_test_split(tfidf_vector, 
test_size=0.2, random_state=1)

и ошибка:

    File "C:/Users/xiangli/PycharmProjects/preparing_moviedata/polarity.py", line 60, in <module>
    tfidf_vector = vectorizer.transform(train_text).toarray()
  File "C:\Users\xiangli\Miniconda3\envs\preparing_moviedata\lib\site-packages\scipy\sparse\compressed.py", line 947, in toarray
    out = self._process_toarray_args(order, out)
  File "C:\Users\xiangli\Miniconda3\envs\preparing_moviedata\lib\site-packages\scipy\sparse\base.py", line 1184, in _process_toarray_args
    return np.zeros(self.shape, dtype=self.dtype, order=order)
MemoryError

Я хочу использовать для ввода нейронную сеть с помощью векторизованного вывода Tf-idf.

...