実行したいこと
TF-IDFを算出したいのですが、出力データが大きすぎるのか、以下のエラーが出ていました。膨大な量の文章でのTF-IDFの算出ですが、値が変動する可能性を考慮して、データを分割することは望ましくないと考えております。このエラーを解消する方法ございましたら是非ご教授よろしくお願いいたします。
Memory error:
Unable to allocate 89.4 GiB for an array with shape (19720, 608678) and data type float64
python
1#省略 2for i in ['description2']: 3 print (i) 4 tfidf_vec2 = TfidfVectorizer(analyzer='word',ngram_range=(1,2)) 5 y = tfidf_vec2.fit_transform(df[i].values.tolist()) 6 df_tfidf2 = pd.DataFrame(y.toarray(), columns=tfidf_vec2.get_feature_names())
MemoryError Traceback (most recent call last) <ipython-input-23-d4e72a34568f> in <module> 3 tfidf_vec2 = TfidfVectorizer(analyzer='word',ngram_range=(1,2)) 4 y = tfidf_vec2.fit_transform(df[i].values.tolist()) ----> 5 df_tfidf2 = pd.DataFrame(y.toarray(), columns=tfidf_vec2.get_feature_names()) ~\anaconda3\lib\site-packages\scipy\sparse\compressed.py in toarray(self, order, out) 1023 if out is None and order is None: 1024 order = self._swap('cf')[0] -> 1025 out = self._process_toarray_args(order, out) 1026 if not (out.flags.c_contiguous or out.flags.f_contiguous): 1027 raise ValueError('Output array must be C or F contiguous') ~\anaconda3\lib\site-packages\scipy\sparse\base.py in _process_toarray_args(self, order, out) 1187 return out 1188 else: -> 1189 return np.zeros(self.shape, dtype=self.dtype, order=order) 1190 1191 MemoryError: Unable to allocate 89.4 GiB for an array with shape (19720, 608678) and data type float64
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/21 08:15