Negation Handhabung in der sentiment-Analyse
Ich bin in der Notwendigkeit einer wenig Hilfe hier, ich brauche zu identifizieren, die die negativen Wörter wie "nicht gut","nicht schlecht" und dann identifizieren Sie die Polarität (negativ oder positiv) auf die Stimmung. Ich habe alles, außer dem Umgang mit den Negationen. Ich möchte nur wissen, wie ich kann, gehören die Verhandlungen hinein. Wie mache ich es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Negation Handhabung ist ein ziemlich breites Feld, mit vielen verschiedenen möglichen Implementierungen. Hier kann ich Beispielcode zur Verfügung, welches eine Sequenz von text und speichert negiert uni - /bi - /Trigramme im
not_
form. Beachten Sie, dassnltk
nicht verwendet wird hier zugunsten einer einfachen Textverarbeitung.Wenn wir dieses Programm ein Beispiel für die Eingabe
text = "I am not happy today, and I am not feeling well"
erhalten wir die folgenden Sequenzen von unigrams, bigrame, und Trigramme:Können wir anschließend speichern Sie diese Zeichen in einem array für die Zukunft retreival und Analyse. Prozess der
not_
Wörter als negativ [Stimmung, Polarität], die Sie definiert haben für Ihre Kollegen.Es ist schon eine Weile her, seit ich gearbeitet habe, sentiment-Analyse, also nicht sicher, was der status dieser Bereich ist jetzt, und in jedem Fall habe ich nie benutzt nltk für diese. Also ich würde nicht in der Lage sein zu zeigen Sie alles dort. Aber im Allgemeinen, ich denke, es ist sicher zu sagen, dass dies ein aktives Gebiet der Forschung und ein wesentlicher Bestandteil des NLP. Und, dass es sicherlich nicht ein problem wurde "gelöst" noch. Es ist eines der feineren, mehr interessante Felder der NLP, mit Ironie, sarcams, Umfang (der Negationen). Oft, kommen mit einer korrekten Analyse für die Interpretation einer Menge von Kontext - /domain - /Diskurs-Informationen. Das ist nicht einfach auf allen.
Möchten Sie vielleicht Blick auf dieses Thema: Kann ein Algorithmus erkennt Sarkasmus. Und einige googeln wird wahrscheinlich geben Ihnen viel mehr Informationen.
Kurz gesagt, deine Frage ist viel zu breit, um mit einer bestimmten Antwort.
Außerdem Frage ich mich was du meinst mit "ich habe alles, außer dem Umgang mit den Negationen". Sie meinen, Sie erkannt 'negative' Worte? Haben Sie sich überlegt, dass diese Informationen können vermittelt werden, viel mehr als die Worte nicht, Nein, etc? Betrachten Sie zum Beispiel "Deine Lösung war nicht gut" vs. "Deine Lösung war suboptimal".
Was genau Sie suchen, und was wird genügen, in Ihrer situation, obivously, hängt von Kontext und Domäne der Anwendung.
Dies war wahrscheinlich nicht die Antwort, die Sie erhofft hatten, aber ich würde vorschlagen, Sie tun ein bisschen mehr Forschung (als eine Menge kluge Dinge getan haben, die von intelligenten Menschen in diesem Bereich).
dieser scheint zu arbeiten, anständig zu auch als des Armen Mannes Wort negation in python. es ist definitiv nicht perfekt, kann aber nützlich sein in einigen Fällen. es dauert einen abgefahrenen Satz-Objekt.
nennen mag:
BEARBEITEN:
Wie @Amandeep wies darauf hin, abhängig von Ihrem Anwendungsfall, können Sie auch SUBSTANTIVE, ADJEKTIVE, ADVERBIEN in der Zeile:
if word.pos_ in {'VERB'}:
.python -m spacy download en_core_web_lg
( Actaully lädt die lib für die Verwendung ), bevor dieses Skript ausgeführt wird.