2017-06-14 3 views
0

Ich baue einen Textklassifizierer, der Text in Themen klassifizieren wird.Finden Sie 'moderne' nltk Wörter Korpus

In der ersten Phase meines Programms als Teil der Reinigung der Daten, entferne ich alle nicht-englischen Wörter. Dazu verwende ich das nltk.corpus.words.words() Korpus. Das Problem mit diesem Korpus ist, dass es "moderne" englische Wörter wie Facebook, Instagram usw. entfernt. Kennt jemand ein anderes, "moderneres" Korpus, das ich ersetzen oder mit dem gegenwärtigen verbinden kann?

Ich bevorzuge nltk Korpus, aber ich bin offen für andere Vorschläge.

Vielen Dank im Voraus

+0

Wahrscheinlich relevanter als das markierte "Duplikat": https://stackoverflow.com/questions/3788870/how-to-check-if-a-word-is-anenchword-with-python – alexis

Antwort

0

I Wikipedia verwenden würde, aber es ist ziemlich Zeit, um die Gesamtheit davon tokenize raubend. Zum Glück ist es schon für dich gemacht. Du könntest einen Word2Vec model trainiert auf 100 Milliarden Wörter von Wikipedia verwenden und einfach überprüfen, ob das Wort im Modell ist.

Ich fand auch diese project, wo Chris Textdateien des 3 Millionen Wortvokabulars des Modells gemacht.

Beachten Sie, dass die Wortliste dieses Projekts keine Stoppwörter enthält. Es ist also eine gute Idee, die Vereinigung Ihrer Liste von nltk und dieser zu finden.

1

Überdenken Sie Ihren Ansatz. Jede Sammlung englischer Texte wird einen "langen Schwanz" von Wörtern haben, die Sie vorher nicht gesehen haben. Unabhängig davon, wie groß ein Wörterbuch ist, werden Sie Wörter entfernen, die nicht "nicht-englisch" sind. Und zu welchem ​​Zweck? Lassen Sie sie, sie werden Ihre Klassifizierung nicht verderben.

Wenn Sie nicht-englischen Text entfernen möchten, tun Sie dies auf Satz- oder Absatzebene mit einem statistischen Ansatz, z. Ngram-Modelle. Sie arbeiten gut und benötigen minimale Ressourcen.

Verwandte Themen