2014-05-24 7 views
8

Wie kann ich einen Präprozessor an TfidfVectorizer übergeben? Ich machte eine Funktion, die eine Zeichenfolge und gibt eine vorverarbeitete Zeichenfolge zurück, dann setze ich Prozessor-Parameter auf diese Funktion "Präprozessor = Preprozess", aber es funktioniert nicht. Ich habe so viele Male gesucht, aber ich habe kein Beispiel gefunden, als ob niemand es benutzen würde.Wie kann ich einen Präprozessor an TfidfVectorizer übergeben? - sklearn - python

Ich habe eine andere Frage. Überschreibt es (Präprozessor-Parameter) das Entfernen von Stoppwörtern und Unterschreitungsfällen, die mit stop_words und Kleinbuchstaben durchgeführt werden könnten?

Antwort

12

Sie definieren einfach eine Funktion, die eine Zeichenkette als Eingabe verwendet und zurücksendet, was vorverarbeitet werden soll. So zum Beispiel eine triviale Funktion in Groß Strings würde wie folgt aussehen:

def preProcess(s): 
    return s.upper() 

Sobald Sie Ihre Funktion gemacht haben dann nur Sie es in Ihrem TfidfVectorizer Objekt übergeben. Zum Beispiel:

from sklearn.feature_extraction.text import TfidfVectorizer 

corpus = [ 
    'This is the first document.', 
    'This is the second second document.', 
    'And the third one.', 
    'Is this the first document?' 
    ] 

X = TfidfVectorizer(preprocessor=preProcess) 
X.fit(corpus) 
X.get_feature_names() 

Ergebnisse in:

[u'AND', u'DOCUMENT', u'FIRST', u'IS', u'ONE', u'SECOND', u'THE', u'THIRD', u'THIS'] 

Dies indirekt beantwortet Ihre Folgefrage, da trotz Klein Wesen auf true gesetzt, die Vorprozess Funktion in Großbuchstaben außer Kraft gesetzt. Dies ist auch in den Unterlagen erwähnt:

Präprozessor: aufrufbare oder None (default) Überschreiben der Vorverarbeitung (string Transformation) Stufe, während der Tokenisierung und n-Gramm-Erzeugungsschritte erhalten.

+0

Dies ist sehr klar. Vielen Dank :) – eman

Verwandte Themen