Twitter-Stimmungsanalyse: Erkennen neutraler Tweets trotz Training nur für positive und negative Klassen


7

Ich bin ein Neuling, wenn es um maschinelles Lernen geht. Ich versuche, praktische Erfahrungen zu sammeln, indem ich verschiedene überwachte Lernalgorithmen mithilfe der Scikit-Learn-Bibliothek von Python analysiere. Ich verwende den sentiment140-Datensatz von 1,6 Millionen Tweets für die Stimmungsanalyse unter Verwendung verschiedener dieser Algorithmen.

Ich weiß nicht, ob es eine dumme Frage ist, aber ich habe mich gefragt, ob es möglich wäre, in drei Klassen (positiv, negativ und neutral) zu klassifizieren, wenn Sie nur über zwei Klassen (positiv und negativ) trainiert haben. Das sentiment140-Trainingsset besteht nur aus zwei Klassen (positiv und negativ) mit insgesamt 1,6 Millionen Tweets, aber das Testset besteht aus 500 Tweets über drei Klassen (positiv, negativ und neutral), sodass ich darüber nachgedacht habe.

Ist das also möglich? Wenn ja, wie gehe ich vor, um die neutralen Tweets zu identifizieren? Intuitiv kann ich verwenden, um die bedingte Wahrscheinlichkeit jedes klassifizierten Tweets im Testsatz für jede Klasse zu ermitteln (mithilfe von Predict_Proba) und festzustellen, ob es neutral ist, wenn es sowohl für die positive als auch für die negative Klasse unter einem bestimmten Schwellenwert (z. B. weniger als 0,7) liegt . Ist das der richtige Weg?


Wenn das sentiment 140 training setnur aus zwei Klassen besteht, wie kommt es, dass das Trainingsset aus drei Klassen besteht? Es ist unklar.
Yazhi

Es ist in der Tat so. Sie können den Korpus über den Link herunterladen und sich selbst davon überzeugen.
Tedghosh

@tedghosh: Gibt es einen Fehler in deinem Satz (der blueSerpent zitiert)? Dies ist nicht sinnvoll, da Sie den Trainingssatz zweimal auf zwei verschiedene inkompatible Arten beschreiben. Ist der zweite tatsächlich ein Testsatz ?
Neil Slater

@NeilSlater oops sorry, habe gerade meinen Fehler erkannt und die Frage bearbeitet. Sie haben Recht, der zweite ist der Testsatz (500 Tweets).
Tedghosh

Antworten:


3

Die schnelle (und nicht sehr befriedigende) Antwort lautet "es kommt darauf an" - insbesondere hängt es davon ab, was Ihr zugrunde liegendes konzeptionelles Modell menschlicher Emotionen ist und wie es sich in verbalem / schriftlichem Verhalten manifestiert .

Was ist Ihre Charakterisierung der Neutralität in Bezug auf positive und negative Wertigkeit? Können Dokumente auf eine quantitative Skala gebracht werden, wobei Neutral zwischen Positiv und Negativ liegt? Diese Position hat zumindest sprachliche Unterstützung durch einfache Phrasen, die einzelne Valenzzustände ausdrücken ( die Lösung ist { groß > gut > akzeptabel > schlecht > schrecklich }).

Wie das @ dmb-Poster angedeutet hat, könnten Sie, wenn dies Ihr konzeptionelles Modell ist, vernünftigerweise argumentieren, dass Neutral zwischen pos / neg liegt und Sie nur die optimalen Grenzen / Grenzwerte bestimmen müssen . Auf diese Weise können Sie einem Testfall Neutral zuweisen, auch wenn der Klassifikator nicht für Neutralfälle trainiert wurde (obwohl Sie eine Möglichkeit zur Bestimmung dieser Grenzwerte benötigen).

Aber was ist mit komplexeren Fällen? Was passiert, wenn Sie von der Ebene der Phraseneinheit zu größeren Einheiten der Sentential- und Diskursebene wechseln? Wie würden Sie den Satz " Ich liebe Äpfel, aber ich hasse Bananen " bewerten ? Heben sich die positiven und negativen Elemente gegenseitig auf, um eine Neutralität zu erzeugen? Sie können leicht sehen, wie trübe dies wird, wenn wir anfangen, über echte menschliche Texte zu sprechen . Meiner Meinung nach ist es nicht besonders sinnvoll, über einen Emotions-Score auf Dokumentebene zu sprechen. Ich glaube vielmehr, dass Menschen Emotionen / Gefühle ausdrücken, die auf einzelne Objekte gerichtet sind: "Ich hasse Bananen" -> Hass (subj, obj) , die zu Konstruktionen auf Diskursebene kombiniert werden.

Also, ja, ich denke, Sie könnten die Verwendung der Ausgabe einer neutralen Kategorie vernünftigerweise verteidigen, wenn nur pos / neg zum Trainieren verwendet werden ... ABER Sie müssen Ihre Verwendung bestimmter Grenzwerte begründen und überlegen, wie Sie mit längeren Dokumenten umgehen sollen die mehrere (widersprüchliche) Emotionen ausdrücken. Meine bevorzugte Vorgehensweise wäre, dass die Leute Tweets als pos, neg, neutral und gemischt lesen und kennzeichnen (um dann die Zuverlässigkeit zwischen den Codierern sicherzustellen), um meine Trainingsdaten zu erstellen. Lassen Sie den Algorithmus die harte Arbeit erledigen, um den Cutoff zu finden Werte.


0

Angenommen, die Ergebnisse einer Stichprobe sind P.(pÖsichtichve|seinmple)=0,15 und P.(neGeintichve|seinmple)=.05Im Gegensatz zur Gruppe mit höherer Wahrscheinlichkeit können Sie einen Mindestschwellenwert festlegen, z. B. 0,3. Da beide darunter liegen, klassifizieren Sie es als neutral


1
Sollte P (pos | sample) + P (neg | sample) nicht 1 sein?
stmax

Ja, sollte es, Sie könnten es zum Beispiel als neutral einstufen, wenn keiner von ihnen über 0,65 ist
Jan van der Vegt

Wenn getrennte Klassifikatoren verwendet werden, um für positive und negative Klassen zu trainieren, muss P (pos | sample) + P (neg | sample) nicht 1 sein.
Bolaka

0

Dies hängt wirklich davon ab, wie umfassend ein Modell ist, das Sie verwenden. In den meisten Fällen ist das Modell für die Stimmungsanalyse ziemlich einfach und basiert auf der "Tasche voller Wörter". In diesem Fall können Sie mit den positiven und negativen Stichproben im Trainingssatz im Grunde genommen sowohl positive als auch negative emotional belastete Wörter abbauen.

Stellen Sie sich nun vor, Sie haben diese Aufgabe perfekt erledigt, aber Sie haben einen Text, der weder positive noch negative Wörter enthält. Dieser Text kann als neutral angesehen werden.

Ein anderer Fall ist, wenn der Text positive und negative Wörter in gleicher Anzahl enthält. Möglicherweise bedeutet dies, dass der Text sowohl negative als auch positive Sätze enthält. Oder es gibt Negationen im Text, die das Gefühl einiger Wörter umkehren. Könnte dieser Text als neutral angesehen werden? Könnte sein. Aber einfache "Bag of Words" -Modelle können diesen Fall nicht vom vorherigen unterscheiden.

Dies bedeutet lediglich, dass Trainingsdaten, die nur Positive und Negative enthalten, immer noch "neutrale" Texte erkennen können. Sie müssen jedoch sorgfältig über die für Ihren Anwendungsfall akzeptablen Neutralitätskriterien und das Modell nachdenken, das Sie verwenden möchten, damit Sie genau das gewünschte Verhalten erhalten.

Weitere Informationen zu diesem Thema finden Sie in diesem Blogbeitrag mehrerer Kollegen. Ich habe über das Erstellen von Trainings- und Testdatensätzen geschrieben: https://blog.griddynamics.com/creating-training-and-test-data-sets -und-Vorbereitung-der-Daten-für-Twitter-Stream-Sentiment-Analyse-von-Social-Movie-Reviews

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.