2017-12-27 21 views
0

Ich versuche, mein Modell zur Textklassifizierung zu verbessern.Bag of Words - Funktion manuell hinzufügen

text = df['text'] 
count_vect = CountVectorizer(min_df=1,ngram_range=(1, 2), 
stop_words="english", max_features=200) 
count_vect.fit(text) 
counts = count_vect.transform(text) 

Hier ist die Beispielausgabe:

[(u'spring', 386), (u'https', 341), (u'com', 317), (u'pr', 313), (u'for 
the', 285), (u'the pr', 208), (u'need', 196), (u'session', 164), 
(u'jp', 158), (u'png', 156), (u'updated', 154), (u'please', 152), 
(u'see', 145)] 

Ich möchte Wort-/Frequenzen manuell hinzuzufügen, die ich dachte, könnte ein guter Indikator sein. Irgendwelche Hilfe zu diesem Thema?

+1

Zähler sind Frequenzen. Fragen Sie nach Hilfe beim Hinzufügen der Zählwerte als Feature in Ihrer Entwurfsmatrix? Oder fragen Sie nach einer Art Transformation auf den Frequenzen, die Sie aufgelistet haben? Mit "Wort" meinst du auch die Unigramme und Bigramme, die du in "counts" aufgelistet hast, oder meinst du nur Unigramme? –

+0

Ja. Ich bitte um Hilfe beim Hinzufügen der Zählwerte als Feature. Ich meine nur Unigramme. – ntuzun

+0

Fügen Sie einfach an das Ende des Textes (nennen Sie es 'featured_text') diese Unigramme in beliebiger Reihenfolge ein. Sie können eine spezielle Funktion erstellen. Es gibt keine Bedeutungsreihenfolge für CountVectorizer, also ist es in Ordnung. Vielleicht ist es keine beste Lösung, aber es könnte funktionieren. – sergzach

Antwort

0

So ähnlich?

total = sum([x[1] for x in counts]) 
frequencies = [(x[0], x[1]/total) for x in counts] 
Verwandte Themen