2016-05-26 1 views
1

Ich behielt einen TfidfVectorizer mit dem Modul Joblib. Das Objekt, das ich durch die Methode fit_transform durchlaufen habe, war eine Liste von Strings. Die resultierende Matrix hatte eine Dimension von 263744 Spalten.Fehler mit persisted sklearn.feature_extraction.text.TfidfVectorizer

Ich führe eine Liste von Zeichenfolgen durch die Transformationsmethode, und ich bekomme den folgenden Fehler.

Irgendwelche Hinweise?

File "/usr/local/lib/python2.7/dist-  packages/sklearn/feature_extraction/text.py", 
line 1334, in transform 
return self._tfidf.transform(X, copy=False) 
File "/usr/local/lib/python2.7/dist-packages/sklearn/feature_extraction/text.py", 
line 1037, in transform 
X = X * self._idf_diag 

File "/usr/local/lib/python2.7/dist-packages/scipy/sparse/base.py", line  
318, in __mul__ 
return self._mul_sparse_matrix(other) 
File "/usr/local/lib/python2.7/dist-packages/scipy/sparse/compressed.py", 
line 487, in _mul_sparse_matrix 
other = self.__class__(other) # convert to this format 
File "/usr/local/lib/python2.7/dist-packages/scipy/sparse/compressed.py", 
line 31, in __init__ 
arg1 = arg1.asformat(self.format) 
File "/usr/local/lib/python2.7/dist-packages/scipy/sparse/base.py", 
line 219, in asformat 
return getattr(self,'to' + format)() 
File "/usr/local/lib/python2.7/dist-packages/scipy/sparse/dia.py", 
line 241, in tocsr 
return self.tocoo().tocsr() 
File "/usr/local/lib/python2.7/dist-packages/scipy/sparse/dia.py", 
line 249, in tocoo 

num_offsets, offset_len = self.data.shape 
AttributeError: 'NDArrayWrapper' object has no attribute 'shape' 

Antwort

0

Vorausgesetzt, dass Sie den ausgebildeten Transformator oder Pipeline auf der Festplatte sind persistierende und Nachladen es dann, bevor Sie den Fehler zu sehen, man kann:

  1. Versuchen Sie das Original (in Betrieb) Objekt sparend mit der Kompresse Schlüsselwort Argument Parameter joblib.dump, mit einem ganzzahligen Wert größer als 0:

    _ = joblib.dump(python_object, persisted_file_name, compress=3) 
    
  2. Wenn die persistierte Datei an einen neuen Speicherort verschoben wird, geben Sie ein, um die Dateien zu kopieren. Wenn er groß ist, JOBLIB wird spalten es auf, z.B .:

    persisted_model.joblib.pkl 
    persisted_model.joblib.pkl_01.npy 
    persisted_model.joblib.pkl_02.npy 
    

joblib docs