2016-06-08 2 views
1

Ich bin neu bei scikit-learn. Ich muss die tf-IDF-Vektoren für ein großes Korpus berechnen. Aber bevor ich damit anfing, habe ich versucht, für ein paar kleine Dokumente zu kodieren, die aus nicht mehr als jeweils 5-6 Wörtern bestehen. Der spezifische Code, den ich schrieb, wie unten angegeben:TfidfVectorizer.fit_transform gibt Typfehler

from sklearn.feature_extraction.text 
import TfidfVectorizer 
vectorizer = TfidfVectorizer(min_df=1) 
vectors = vectorizer.fit_transform(docList) 

Es auf meinem Laptop läuft, aber erzeugt die folgende Fehlermeldung, wenn ich es auf einem Server ausführen:

Traceback (most recent call last): 
    File "temp1.py", line 49, in <module> 
    tfidf_vectorizer.fit_transform(docList) 
    File "/usr/lib64/python2.6/site-packages/sklearn/feature_extraction/text.py", line 1285, in fit_transform 
    X = super(TfidfVectorizer, self).fit_transform(raw_documents) 
    File "/usr/lib64/python2.6/site-packages/sklearn/feature_extraction/text.py", line 825, in fit_transform 
max_features) 
    File "/usr/lib64/python2.6/site-packages/sklearn/feature_extraction/text.py", line 697, in _limit_features 
    dfs = _document_frequency(X) 
    File "/usr/lib64/python2.6/site-packages/sklearn/feature_extraction/text.py", line 491, in _document_frequency 
    return bincount(X.indices, minlength=X.shape[1]) 
    File "/usr/lib64/python2.6/site-packages/sklearn/utils/fixes.py", line 345, in bincount 
    return np.bincount(x, weights, minlength) 
TypeError: function takes at most 2 arguments (3 given) 

Ist das ein Problem mit der Version von sklearn installiert? Ich habe 0.17.1 in meinem Laptop installiert und der Server hat sklearn 0.16.1 installiert. Da mein Korpus sehr groß ist, muss ich ihn auf dem Server laufen lassen, sonst werde ich natürlich Speicherprobleme haben.

Jeder Einblick in dieses Problem wird geschätzt. Vielen Dank :)

+0

Welche Version von numpy auf dem Server installiert ist? –

Antwort

0

Ich denke, das ist mit einer fehlerhaften Installation von numpy, berichtet here.

Sie können den Test ausführen und überprüfen, dass (Nase erforderlich):

pip install nose 
nosetests -v numpy 
nosetests -v sklearn 

Wenn das der Fall ist, müssen Sie numpy (und vielleicht auch Scikit-Learn) und installieren Sie sie mit den empfohlenen entfernen Anleitung: http://scikit-learn.org/stable/install.html

Conda Mit einer guten Wahl sein: https://www.continuum.io/downloads

Verwandte Themen