6

In NLP ist es immer so, dass die Dimension der Features sehr groß ist. Zum Beispiel ist für ein vorliegendes Projekt die Dimension der Merkmale fast 20 Tausend (p = 20.000), und jedes Merkmal ist eine Ganzzahl von 0-1, um anzuzeigen, ob ein bestimmtes Wort oder ein bestimmtes Gramm in einem Papier dargestellt wird (ein Papier) ist ein Datenpunkt $ x \ in R^{p} $).Wie können Sie bei der Verarbeitung natürlicher Sprache (NLP) eine effiziente Dimensionsreduktion vornehmen?

Ich weiß, dass die Redundanz unter den Features sehr groß ist, daher ist eine Dimensionsreduktion notwendig. Ich habe drei Fragen:

1) Ich habe 10 Tausend Datenpunkte (n = 10.000), und jeder Datenpunkte hat 10 Tausend Funktionen (p = 10.000). Was ist der effiziente Weg zur Dimensionsreduktion? Die Matrix $ X \ in R^{n \ mal p} $ ist so groß, dass sowohl PCA (oder SVD, abgeschnittene SVD ist OK, aber ich glaube nicht, dass SVD eine gute Methode ist, die Dimension für binäre Features zu reduzieren) und Bag of Words (oder K-means) ist schwer direkt auf $ X $ zu führen (Sicher, es ist spärlich). Ich habe keinen Server, ich benutze nur meinen PC :-(.

2) Wie beurteilen Sie die Ähnlichkeit oder Entfernung zwischen zwei Datenpunkten? Ich denke, dass die euklidische Distanz für binäre Merkmale nicht gut funktioniert. Wie wäre es mit L0 Norm? Was benutzt du?

3) Wenn ich die SVM-Maschine (oder andere Kernel-Methoden) zur Klassifizierung verwenden möchte, welchen Kernel sollte ich verwenden?

Vielen Dank!

+3

sieht aus wie eine gute Frage für diese Gemeinschaft http://stats.stackexchange.com/ – Leo

Antwort

2

1) Sie benötigen keine Dimensionsreduktion. Wenn Sie wirklich wollen, können Sie einen linearen Linearklassifizierer L1 verwenden, um auf die nützlichsten Funktionen zu reduzieren.

2) Cosinusähnlichkeit wird oft verwendet, oder Kosinusähnlichkeit der TFIDF-reskalierten Vektoren.

3) Lineare SVMs funktionieren am besten mit so vielen Funktionen.

Es gibt eine gute Anleitung, wie man hier Klassifizierung wie dies in Python zu tun: http://scikit-learn.org/dev/tutorial/text_analytics/working_with_text_data.html

Verwandte Themen