Liste der Tools, mit denen Sie auf einfache Weise die Emotionsanalyse japanischer Sätze mit Python ausprobieren können (versuchen Sie es mit Google Colab).

Open In Colab

Liste der Tools, mit denen Sie auf einfache Weise die Emotionsanalyse ausprobieren können

Es ist unten in Aufzählungszeichen aufgeführt.

Installation der erforderlichen Bibliotheken

Das Folgende ist die Installationsmethode auf Google Colab.

Wenn Sie es lokal ausprobieren möchten, ändern Sie die Installationsmethode entsprechend.

#Installieren Sie MeCab
!apt install mecab libmecab-dev mecab-ipadic-utf8
!pip install mecab-python3

# mecab-ipadic-Installieren Sie NEologd
!apt install git make curl xz-utils file
!git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
!echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -a

# Ref: https://qiita.com/Fulltea/items/90f6ebe6dcceaf64eaef
# Ref: https://qiita.com/SUZUKI_Masaya/items/685000d569452585210c

!ln -s /etc/mecabrc /usr/local/etc/mecabrc
# Ref: https://qiita.com/Naritoshi/items/8f55d7d5cce9ce414395
#Bibliothek zur Emotionsanalyse
!pip install asari oseti pymlask

Datenaufbereitung

Der als Eingabe für die Emotionsanalyse verwendete Text stammt von Aozora Bunko.

"Puppengebrauch" Hans Christian Andersen Hans Christian Andersen (Übersetzt von Genkuro Yazaki)

Ich habe es von abgeholt.

list_text = [
             'Diese Person muss die glücklichste Person der Welt sein.',
             'Das Spielhaus war wunderbar und die Kunden waren auch wunderbar.',
             'Wenn es im Mittelalter gewesen wäre, wäre es wahrscheinlich verbrannt worden.',
             'Wenn es um jedermanns Ärger ging, war es, als würden die Fliegen in der Flasche summen.',
             'Wenn wir Menschen uns das einfallen lassen könnten, sollten wir länger leben können, bevor wir in der Erde begraben sind.'
]

asari

#Einfache Funktionsprüfung
from asari.api import Sonar
sonar = Sonar()
res = sonar.ping(text="Zu viele Anzeigen ♡")
res 
{'classes': [{'class_name': 'negative', 'confidence': 0.9086981552962491},
  {'class_name': 'positive', 'confidence': 0.0913018447037509}],

'text': 'Zu viele Anzeigen ♡', 'top_class': 'negative'}

list(map(sonar.ping, list_text))
[{'classes': [{'class_name': 'negative', 'confidence': 0.10382535749585702},
   {'class_name': 'positive', 'confidence': 0.896174642504143}],

'text': 'Diese Person muss die glücklichste Person der Welt sein. ', 'top_class': 'positive'}, {'classes': [{'class_name': 'negative', 'confidence': 0.035517582235360945}, {'class_name': 'positive', 'confidence': 0.964482417764639}], 'text': 'Das Schauspielhaus war wunderbar und das Publikum war wunderbar. ', 'top_class': 'positive'}, {'classes': [{'class_name': 'negative', 'confidence': 0.5815274190768989}, {'class_name': 'positive', 'confidence': 0.41847258092310113}], 'text': 'Wenn es im Mittelalter gewesen wäre, wäre es wahrscheinlich verbrannt worden. ', 'top_class': 'negative'}, {'classes': [{'class_name': 'negative', 'confidence': 0.2692695045573754}, {'class_name': 'positive', 'confidence': 0.7307304954426246}], 'text': 'Wenn es um jedermanns Ärger geht, war es, als würden die Fliegen in der Flasche summen. ', 'top_class': 'positive'}, {'classes': [{'class_name': 'negative', 'confidence': 0.050528495655525495}, {'class_name': 'positive', 'confidence': 0.9494715043444746}], 'text': 'Wenn wir Menschen uns das einfallen lassen können, sollten wir länger leben können, bevor wir in der Erde begraben werden', 'top_class': 'positive'}]

Der Satz „Wenn es um jedermanns Ärger geht, war es, als würden die Fliegen in der Flasche summen.“ Der Satz war intuitiv negativ, wurde aber als positiv beurteilt.

Für andere Beispiele scheint es ein vernünftiges Urteil zu geben.

oseti

#Einfache Funktionsprüfung
import oseti

analyzer = oseti.Analyzer()
analyzer.analyze('Ich warte im Himmel.')
[1.0]
list(map(analyzer.analyze, list_text))
[[0.0], [1.0], [0], [0], [1.0]]

Der zweite Satz: "Das Spielhaus war wunderbar, und die Kunden waren wunderbar."

Wann

Fünfter Satz "Wenn wir Menschen uns das einfallen lassen können, sollten wir länger leben können, bevor wir in der Erde begraben werden."

Nur positives (+1) Urteil, neutrales Urteil für andere Sätze.

Schließlich ist der Eindruck, dass wörterbuchbasiert ist, schwach gegenüber Wörtern, die nicht im Wörterbuch enthalten sind.

pymlask

Der Autor des Pakets ist derselbe wie oseti.

#Einfache Funktionsprüfung
import mlask
emotion_analyzer = mlask.MLAsk()
emotion_analyzer.analyze('Ich hasse ihn nicht!(;´Д`)')
# => {'text': 'Ich hasse ihn nicht!(;´Д`)',
#     'emotion': defaultdict(<class 'list'>,{'yorokobi': ['Hass*CVS'], 'suki': ['Hass*CVS']}),
#     'orientation': 'POSITIVE',
#     'activation': 'NEUTRAL',
#     'emoticon': ['(;´Д`)'],
#     'intension': 2,
#     'intensifier': {'exclamation': ['!'], 'emotikony': ['´Д`', 'Д`', '´Д', '(;´Д`)']},
#     'representative': ('yorokobi', ['Hass*CVS'])
#     }
{'activation': 'NEUTRAL',
 'emoticon': ['(;´Д`)'],

'Emotion': defaultdict (Liste, {'suki': ['nicht mögen * CVS'], 'yorokobi': ['nicht mögen * CVS']}), 'intensifier': {'emotikony': ['´Д', 'Д', '´Д', '(;´Д)'], 'exclamation': ['!']}, 'intension': 2, 'orientation': 'POSITIVE', 'Vertreter': ('yorokobi', ['nicht mögen * CVS']), 'text': 'Ich hasse ihn nicht! (; ´Д) '}

#Es ist eine große Sache, also werde ich versuchen, das neologd Wörterbuch zu verwenden

# mecab-ipadic-Finden Sie heraus, wo Sie neologd installieren können
import subprocess

cmd='echo `mecab-config --dicdir`"/mecab-ipadic-neologd"'
path = (subprocess.Popen(cmd, stdout=subprocess.PIPE,
                           shell=True).communicate()[0]).decode('utf-8')
                           
emotion_analyzer = mlask.MLAsk('-d {0}'.format(path))  # Use other dictionary

list(map(emotion_analyzer.analyze, list_text))
[{'activation': 'NEUTRAL',
  'emoticon': None,

'Emotion': defaultdict (Liste, {'yorokobi': ['Glück']}), 'intensifier': {}, 'intension': 0, 'orientation': 'POSITIVE', 'Vertreter': ('yorokobi', ['glücklich']), 'text': 'Diese Person muss die glücklichste Person der Welt sein. '}, {'Emotion': Keine, 'Text': 'Das Schauspielhaus war wunderbar und das Publikum war wunderbar. '}, {'Emotion': Keine, 'Text': 'Wenn es im Mittelalter gewesen wäre, wäre es wahrscheinlich verbrannt worden. '}, {'Emotion': Keine, 'Text': 'Wenn es um jedermanns Ärger geht, war es, als würden die Fliegen in der Flasche summen. '}, {'emotion': None, 'text': 'Wenn wir Menschen uns das einfallen lassen können, sollten wir länger leben können, bevor wir in der Erde begraben werden'}]]

Diese Methode wird auch als positiv beurteilt, wenn das Wörterbuch ein Wort (Glück) enthält, es ist jedoch unmöglich zu beurteilen, ob es nicht im Wörterbuch enthalten ist.

Eindruck, dass das Ergebnis nicht gut ist.

Zusammenfassung

Ich habe ein Tool ausprobiert, mit dem sich die Emotionen japanischer Sätze leicht analysieren lassen.

Vielen Dank, dass Sie diese Tools veröffentlicht haben.

Wenn Sie ernsthafte emotionale Analysen durchführen und vernünftigere Ergebnisse erzielen möchten, müssen Sie wahrscheinlich eine Verarbeitung gemäß der für Ihren Zweck geeigneten Satzkategorie hinzufügen oder neuronale Netzwerktechniken (in diesem Fall den Datensatz) verwenden. Es ist schwer zu schaffen).

Referenz

Kommentar, zusammenfassender Artikel

Emotionsanalyse Japanischer Datensatz

Recommended Posts

Liste der Tools, mit denen Sie auf einfache Weise die Emotionsanalyse japanischer Sätze mit Python ausprobieren können (versuchen Sie es mit Google Colab).
Um Japanisch mit Python in der Docker-Umgebung verwenden zu können
Zusammenfassung der statistischen Datenanalysemethoden mit Python, die im Geschäftsleben verwendet werden können
[Python] Einführung in das WEB-Scraping | Zusammenfassung der Methoden, die mit dem Webdriver verwendet werden können
Hinweise zu Python-Kenntnissen, die mit AtCoder verwendet werden können
Liste des Python-Codes, der bei der Big-Data-Analyse verwendet wird
Python3-Verarbeitung, die in Paiza verwendbar zu sein scheint
Skripte, die bei der Verwendung von Bottle in Python verwendet werden können
Kann mit AtCoder verwendet werden! Eine Sammlung von Techniken zum Zeichnen von Kurzcode in Python!
[Python3] Code, der verwendet werden kann, wenn Sie die Größe von Bildern Ordner für Ordner ändern möchten
Versuchen Sie, die Thread-Liste der Nachrichten (Abneigung) mit Python zu erhalten.
Ich habe versucht, es zu erweitern, damit die Datenbank mit der Analysesoftware von Wiire verwendet werden kann
Zusammenfassung der Standardeingabe von Python, die in Competition Pro verwendet werden kann
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Vergleich von 4 Stilen, die mit set_context an seaborn übergeben werden können
[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden
Einfaches Auffüllen von Daten, die in der Verarbeitung natürlicher Sprache verwendet werden können
Versuchen Sie, sich mit Python bei qiita anzumelden
[Python3] Code, der verwendet werden kann, wenn Sie ein Bild in einer bestimmten Größe ausschneiden möchten
[Python3] Code, der verwendet werden kann, wenn Sie die Erweiterung eines Bildes sofort ändern möchten
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
Persönliche Notizen zu Pandas-bezogenen Vorgängen, die in der Praxis verwendet werden können
Zusammenfassung der Scikit-Learn-Datenquellen, die beim Schreiben von Analyseartikeln verwendet werden können
So installieren Sie die Python-Bibliothek, die von Pharmaunternehmen verwendet werden kann
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Erste Schritte zum Testen von Google CloudVision in Python
Dateitypen, die mit Go verwendet werden können
Funktionen, die in der for-Anweisung verwendet werden können
Listen Sie Pakete auf, die mit pip aktualisiert werden können
[Python] Ich habe eine Praxis untersucht, die durch asynchrone Verarbeitung (Multiprocessing, Asyncio) parallel zum Hauptthread ausgeführt werden kann.
Konvertieren Sie Bilder aus dem FlyCapture SDK in ein Formular, das mit openCV verwendet werden kann
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Visualisierung von geografischen Informationen von R und Python, die von Power BI ausgedrückt werden können
Morphologische Analyse und tfidf (mit Testcode), die in ca. 1 Minute durchgeführt werden können
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Ein Mechanismus zum Aufrufen von Ruby-Methoden aus Python, der in 200 Zeilen ausgeführt werden kann
Versuchen Sie, eine vollständige Suche nach der Sequenz durchzuführen, die bei Wettbewerbsprofis mit Python häufig vorkommt
Einfache Statistiken, mit denen die Auswirkungen von Maßnahmen auf EG-Standorte und Codes analysiert werden können, die in Jupyter-Notebooks verwendet werden können
Zusammenfassung der Tools, die zum Analysieren von Daten in Python benötigt werden
Grundlegende Algorithmen, die bei Wettkampfprofis eingesetzt werden können
Liste der Farben, die mit tkinter (Denkmal) eingestellt werden können
Einfache Möglichkeit, mit Google Colab mit Python zu kratzen
[Memorandum] Japanische Schlüssel können nicht in Pythons string.Template.substitute verwendet werden
ANTs Bildregistrierung, die in 5 Minuten verwendet werden kann
Listenverständnis, da operator.methodcaller nicht mit Python 2.5 verwendet werden kann
Kann bei Wettkampfprofis eingesetzt werden! Python-Standardbibliothek
Nichtlineare simultane Gleichungen können mit Python leicht gelöst werden.
Liste meiner Artikel, die für Wettkampfprofis nützlich sein können (von Zeit zu Zeit aktualisiert)
So richten Sie einen einfachen SMTP-Server ein, der lokal in Python getestet werden kann
Versuchen Sie, die Nährstoffe von Cornflakes zu visualisieren, die M-1-Champion Milkboy mit Python sagte
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Formatübersicht der Formate, die mit gensim serialisiert werden können
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen