Stanford nlp für Python

7

Ich möchte nur die Stimmung (positiv / negativ / neutral) einer gegebenen Saite finden. Bei Recherchen stieß ich auf Stanford NLP. Aber leider ist es in Java. Irgendwelche Ideen, wie kann ich es für Python arbeiten lassen?

    
90abyss 01.10.2015, 04:34
quelle

4 Antworten

25

Verwenden Sie py-corenlp

Installieren Sie Stanford CoreNLP

Die neueste Version zu diesem Zeitpunkt (2018-02-21) ist 3.9.0:

%Vor%

Starten Sie den Server

%Vor%

Anmerkungen:

  1. timeout ist in Millisekunden, ich setze es auf 10 Sek. oben. Sie sollten es erhöhen, wenn Sie riesige Blobs an den Server übergeben.
  2. Es gibt weitere Optionen , die Sie mit --help auflisten können. .

Installieren Sie das Python-Paket

%Vor%

(Siehe auch die offizielle Liste ).

Benutze es

%Vor%

und Sie werden erhalten:

%Vor%

Notizen

  1. Sie übergeben den gesamten Text an den Server und teilen ihn in Sätze auf.
  2. Das Gefühl wird jedem Satz zugeschrieben, nicht dem ganzen Text . Die Bedeutung sentimentValue über alle Sätze kann verwendet werden, um die Stimmung des gesamten Textes zu schätzen.
  3. Die durchschnittliche Stimmung eines Satzes liegt zwischen Neutral (2) und Negative (1), der Bereich ist von VeryNegative (0) bis VeryPositive (4), was ziemlich selten erscheint.
  4. Sie können den Server stoppen , indem Sie entweder Ctrl- C am Terminal, von dem aus Sie gestartet haben oder mit dem Shell-Kommando kill $(lsof -ti tcp:9000) . 9000 ist der Standardport, den Sie beim Starten des Servers mit der Option -port ändern können.
  5. Erhöhen Sie timeout (in Millisekunden) in Server oder Client, wenn Sie Timeout-Fehler erhalten.
  6. sentiment ist nur ein Annotator, es gibt viele weitere und Sie können eine Anfrage stellen mehrere, trennen sie durch Komma: 'annotators': 'sentiment,lemma' .
  7. Achten Sie darauf, dass das Sentimentmodell etwas idiosynkratisch ist (zB hängt das Ergebnis davon ab, ob Sie David oder Bill ).

PS . Ich kann nicht glauben, dass ich eine neunte Antwort hinzugefügt habe, aber ich denke, ich musste, da mir keine der vorhandenen Antworten geholfen hat (einige der acht vorherigen Antworten wurden jetzt gelöscht, einige andere wurden bereits gelöscht) in Kommentare konvertiert).

    
sds 08.11.2016 21:38
quelle
0

Textblob ist ein großartiges Paket für sentimentale Analysen, geschrieben in Python . Sie können die Dokumentation hier haben. Eine sentimentale Analyse eines gegebenen Satzes wird durchgeführt, indem Wörter und ihre entsprechende emotionale Bewertung (Gefühl) untersucht werden. Sie können mit

beginnen %Vor%

Der erste Befehl pip install gibt Ihnen die neueste Version von textblob, die in Ihrem ( virtualenv ) System installiert ist, da Sie -U will upgrade the pip package its latest available version übergeben haben. Und die nächste wird alle erforderlichen Daten herunterladen, die corpus .

    
cutteeth 01.10.2015 06:22
quelle
0

Ich sah mich auch einer ähnlichen Situation gegenüber. Die meisten meiner Projekte sind in Python und Sentiment ist Java. Glücklicherweise ist es recht einfach, sich an das stanford CoreNLP-Glas zu halten.

Hier ist eines meiner Skripte und Sie können Jars herunterladen und ausführen.

%Vor%     
Hao Lyu 07.03.2016 07:35
quelle
0

Ich stehe vor dem gleichen Problem: Vielleicht eine Lösung mit stanford_corenlp_py , die Py4j verwendet, wie von @roopalgarg.

  

stanford_corenlp_py

     

Dieser Repo bietet eine Python-Schnittstelle zum Aufrufen der Annotatoren "sentiment" und "entityentions" des Stanford-CoreNLP-Java-Pakets, die ab Version 3.5.1 aktuell sind. Es verwendet py4j, um mit der JVM zu interagieren; Um ein Skript wie scripts / runGateway.py auszuführen, müssen Sie zuerst die Java-Klassen kompilieren und ausführen, die das JVM-Gateway erstellen.

    
Arnaud 27.07.2016 09:42
quelle