2017-08-22 3 views
1

Ich versuche Wörter zu entfernen, die einmal in meinem Vokabular vorkommen, um meine Wortschatzgröße zu reduzieren. Ich benutze den Sklearn TfidfVectorizer() und dann die Funktion fit_transform auf meinem Datenrahmen.Entfernen Sie einzelne Vorkommen von Wörtern im Vokabular TF-IDF

tfidf = TfidfVectorizer() 
tfs = tfidf.fit_transform(df['original_post'].values.astype('U')) 

Mein erster Gedanke ist das Präprozessor Feld in der TFIDF vectorizer oder mit dem Vorverarbeitung Paket vor maschinellem Lernen.

Irgendwelche Tipps oder Links zur weiteren Implementierung?

Antwort

1

Sie suchen min_df param (Minimalfrequenz), aus der Dokumentation von Scikit-Learn TfidfVectorizer:

min_df: Schwimmer im Bereich [0.0, 1.0] oder int, default = 1

Beim Erstellen des Vokabulars ignorieren Sie Begriffe, die eine Dokumenthäufigkeit aufweisen, die streng unter dem angegebenen Schwellenwert liegt. Dieser Wert wird auch in der Literatur cut-off genannt. Wenn float, repräsentiert der Parameter einen Anteil an Dokumenten, absolute absolute Zahlen. Dieser Parameter wird ignoriert, wenn das Vokabular nicht None ist.

# remove words occuring less than 5 times 
tfidf = TfidfVectorizer(min_df=5) 

Sie auch gemeinsame Wörter entfernen:

# remove words occuring in more than half the documents 
tfidf = TfidfVectorizer(max_df=0.5) 

können Sie auch entfernen Stoppwörter wie folgt aus:

tfidf = TfidfVectorizer(stop_words='english') 
Verwandte Themen