Wie optimiere ich einen Stimmungsanalysealgorithmus für größere Datenmengen?

8

Ich bin ein Neuling in der Stimmungsanalyse und habe eine gute Ressource für Bayesian Opinion Mining gefunden und einen Weg gefunden , es selbst zu verbessern . Ich habe mich jedoch gefragt, ob die optimale Analyse von dem bereitgestellten Datensatz abhängt und da eine Selbstverbesserung das Hinzufügen bekannter Muster zum Datensatz bedeuten würde (nach meinem Verständnis), würde die Anwendung im Laufe der Zeit nicht mit einem riesigen Datensatz überlastet werden Zeit, in der jeden Tag mehr und mehr Muster zum Datensatz hinzugefügt werden? Was sollte der richtige Ansatz sein, um die Anwendung skalierbar zu machen (wenn ich den richtigen Begriff am richtigen Ort verwende)?

Gentrobot
quelle
3
Dies könnte das sein, wonach Sie suchen. Aber nicht sicher, ob Java Ihre Option ist. Also ein Kommentar. mahout.apache.org . Es ist skalierbar und verfügt über eine Reihe von Algorithmen, die Sie verwenden können.
Spielzeug
1
Wie viele Datensätze nehmen Sie hier auf? Mahout wäre Ihr Weg, wenn Sie mit Terabyte neuer Daten umgehen würden.
Werfen

Antworten:

1

Für mich klingt es so, als würden Sie zu Beginn einen Textklassifizierer mit einer überwachten Schulungsphase erstellen, in der Sie Beschriftungen manuell zuweisen. Ihr Modell arbeitet gut (hohe Präzision und Rückruf), daher möchten Sie das anfängliche Trainingsmodell durch einen unbeaufsichtigten Trainingsprozess über neue Eingabezeichenfolgen ergänzen.

Diese neuen Eingänge haben einige bekannte Signale (Wörter, die Sie zuvor gesehen haben), damit Ihr Modell seine Arbeit gut erledigen kann, aber sie haben auch unbekannte Signale (Wörter, die Sie zuvor noch nicht gesehen haben). Sie möchten, dass Ihr unbeaufsichtigter Trainingsprozess diese neuen Wörter mit den bekannten assoziiert, um "zu lernen". Auf diese Weise vertrauen Sie darauf, dass die Zuordnung zwischen dem neuen Wort und dem bekannten Wort korrekt ist. Da die Sprachverarbeitung so schwierig ist, werden Sie wahrscheinlich automatisch falsch positive Assoziationen generieren, die in einer überwachten Umgebung ausgeschlossen / korrigiert worden wären. Wenn Sie also unbeaufsichtigt lernen, riskieren Sie, Ihre Präzision zu verringern.

Bei Ihrer Frage geht es darum, mit vielen Daten "überladen" zu werden. Dies ist ein faires Problem und hängt stark von Ihrer Datengröße, der Auswahl der Implementierung und den Erwartungen an das Systemverhalten ab. Während die Reaktionsfähigkeit und die Nachvollziehbarkeit des Umgangs mit großen Datenmengen eine Sache sind, halte ich die Präzision und den Rückruf Ihres Stimmungskennzeichnungsalgorithmus für wahrscheinlich von größter Bedeutung.

In dem Artikel, den Sie verlinkt haben, hat der Autor einen Konfidenzwert, der dazu führt, dass unbeaufsichtigte Assoziationen nur dann berücksichtigt werden, wenn ein "hohes Vertrauen" besteht. Das ist gut, aber es besteht immer noch das Risiko, dass Ihre Gesamtpräzision mit der Zeit sinkt. Ihr System müsste regelmäßig auf Präzision und Rückruf überprüft und neu trainiert werden. Das Beispiel "Bad Santa" in den Kommentaren ist ein gutes Beispiel. Ich schlage vor, dass Sie sich über halbüberwachte Schulungen informieren und diese Kennzeichnung für kleine Datensätze richtig machen, bevor Sie darauf vertrauen, dass sie für viel größere Datensätze gut funktioniert. Sprachverarbeitung ist schwer!

Eine Antwort
quelle
0

Für andere Aufgaben wie das Markieren von Sprache wurde das Modell durch Kondensation nach dem Selbsttraining kleiner und besser! Wenn Sie ein Skalierbarkeitsproblem feststellen, schauen Sie zuerst so, bevor Sie versuchen, Ihren Code zu optimieren.

Die Idee ist, dass Sie nach dem Selbsttraining iterativ ein Modell erstellen, das anfangs leer ist. Sie fügen dem neuen Modell dann nur dann Datenpunkte hinzu, wenn diese nicht korrekt klassifiziert wurden. Dies vermeidet eine Überanpassung und hält Ihr Modell so klein wie möglich.

Quentin Pradet
quelle