[PYTHON] Ich möchte die Gefühle von Menschen analysieren, die sich treffen und zittern wollen

Was du machen willst

~~ Verstehe die Gefühle von Menschen, die zittern, weil sie sich treffen wollen ~~

Emotionale Analyse aus den Texten Ist es ein helles Lied? Ist es ein trauriges Lied? Ich möchte beurteilen.

Es wäre großartig, wenn wir mehrdeutige Suchvorgänge wie helle und traurige Songs in Musikvertriebsdiensten durchführen könnten. Dieses Jahr ist ein schwieriges Jahr und es ist nicht gut, also gebe ich mein Bestes, um helle Songs zu hören

Versuchen Sie, die Texte zu analysieren

Analysetool

COTOHA API Python 3.8.1

Analyseziel

Ein Lied, das zittert, weil ich mich treffen will

Das Folgende wurde bereits in Rekochok kategorisiert, daher habe ich ein Lied aus ihnen als mein Hobby ausgewählt.

Helles Lied

Trauriges Lied

Code

Hört der Kaktus in der emotionalen Analyse auf zu tanzen? Ich durfte mich beziehen.

Implementierung
top/
 ├ file/
 │ ├ input.txt   (Songtexte zu analysieren)
 │ └ output.csv (Ausgabeergebnis)
 ├ config.ini
  └ cotoha_sentiment.py

cotoha_sentiment.py


# -*- coding:utf-8 -*-

import os
import urllib.request
import json
import configparser
import codecs
import csv


class CotohaApi:
    def __init__(self, client_id, client_secret, developer_api_base_url, access_token_publish_url):
        self.client_id = client_id
        self.client_secret = client_secret
        self.developer_api_base_url = developer_api_base_url
        self.access_token_publish_url = access_token_publish_url
        self.getAccessToken()

    def getAccessToken(self):
        url = self.access_token_publish_url
        headers={
            "Content-Type": "application/json;charset=UTF-8"
        }

        data = {
            "grantType": "client_credentials",
            "clientId": self.client_id,
            "clientSecret": self.client_secret
        }
        data = json.dumps(data).encode()
        req = urllib.request.Request(url, data, headers)
        res = urllib.request.urlopen(req)
        res_body = res.read()
        res_body = json.loads(res_body)
        self.access_token = res_body["access_token"]

    #Emotionsanalyse-API
    def sentiment(self, sentence):
        url = self.developer_api_base_url + "nlp/v1/sentiment"
        headers={
            "Authorization": "Bearer " + self.access_token,
            "Content-Type": "application/json;charset=UTF-8",
        }
        data = {
            "sentence": sentence
        }
        data = json.dumps(data).encode()
        req = urllib.request.Request(url, data, headers)
        try:
            res = urllib.request.urlopen(req)
        except urllib.request.HTTPError as e:
            print ("<Error> " + e.reason)

        res_body = res.read()
        res_body = json.loads(res_body)
        return res_body

if __name__ == '__main__':
    APP_ROOT = os.path.dirname(os.path.abspath( __file__)) + "/"

    # config.Holen Sie sich den Wert von ini
    config = configparser.ConfigParser()
    config.read(APP_ROOT + "config.ini")
    CLIENT_ID = config.get("COTOHA API", "Developer Client id")
    CLIENT_SECRET = config.get("COTOHA API", "Developer Client secret")
    DEVELOPER_API_BASE_URL = config.get("COTOHA API", "Developer API Base URL")
    ACCESS_TOKEN_PUBLISH_URL = config.get("COTOHA API", "Access Token Publish URL")

    cotoha_api = CotohaApi(CLIENT_ID, CLIENT_SECRET, DEVELOPER_API_BASE_URL, ACCESS_TOKEN_PUBLISH_URL)

       # file/infile.Holen Sie sich den zu analysierenden Satz aus txt
    checkpath = 'file/input.txt'
    song_data = open(checkpath, "r", encoding='utf-8')

    output_file = open('file/output.csv', 'w')
    writer = csv.writer(output_file, lineterminator='\n') #Zeilenvorschubcode (\n) angegeben ist

    sentence = song_data.readline()
    while sentence:
        print(sentence.strip())
        #API-Ausführung
        result = cotoha_api.sentiment(sentence)

        score = result["result"]["score"]
        print(score)
        sentiment = result["result"]["sentiment"]
        print(sentiment)

        one_row = [score,sentiment]
        writer.writerow(one_row)  #Passliste

        sentence = song_data.readline()

    song_data.close()
    output_file.close()
    

Ergebnis der Analyse

Kana Nishino "Ich möchte dich treffen"

Text (Anfang)
Ich möchte mich treffen, ich möchte mich treffen, ich zittere
Fühle so weit du denkst
Sag es mir noch einmal, auch wenn es eine Lüge ist
Wie an diesem Tag"ich liebe dich"Was ...
…
Es war nicht so negativ wie ich erwartet hatte

Grüne "Kiseki"

Text (Anfang)
Morgen kann ich dich mehr lieben als heute
Ich mag es immer noch so sehr, aber ich kann es nicht in Worte fassen
Die Tage, die du mir gegeben hast, häuften sich und starben Die Tage, an denen zwei Menschen "Flugbahn" gingen
…

Ziemlich positives Lied

Sambo-Meister "Die Welt nennt es Liebe"

Lyrics
Wenn in deinen Tränen ein schwaches Licht ist
Vor dir
Ich spreche vom Aufwärmen
…
Es gibt viele negative Texte

SPYAIR 「BEAUTIFUL DAYS」

Lyrics
Ich kann es positiver ändern. Lassen Sie uns so glauben
Wenn dich jemand auslacht, werde ich nicht lachen
Ein Neuanfang Jeder kann glänzen
Mit Angst und Erwartungen Oh, versuchen Sie es selbst
…
Ich fand es ein ziemlich positives Lied für mich ## Ken Hirai "Sachbücher"
Lyrics
Viele der Träume, die ich gezeichnet habe, werden nicht wahr
Ich hasse mich, wenn ich gute Leute beneide
Einige Nächte werden wahrscheinlich von einem leichten Schlaf zerquetscht
…

Gut negativ

Rückennummer "Happy End"

Lyrics
Auf Wiedersehen steckte in meinem Rachen
Ich sagte Danke wie Husten
Das nächste Wort ist, selbst wenn Sie irgendwo nach einer Tasche suchen
…
Gut ausbalanciert

Zusammenfassung

~~ Ich kann die Gefühle von Menschen nicht verstehen, die zittern, weil sie sich treffen wollen ~~

Diese emotionale Analyse wurde Zeile für Zeile durchgeführt, Ich denke, dass die Ergebnisse aufgrund der Reihenfolge der Wörter voreingenommen sind. Ich denke, dass genauere Ergebnisse erzielt werden, wenn die Körnung der zu analysierenden Texte feiner wird, also werde ich es versuchen, wenn ich Zeit habe.

Recommended Posts

Ich möchte die Gefühle von Menschen analysieren, die sich treffen und zittern wollen
Ich möchte die Natur von Python und Pip kennenlernen
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte visualisieren, wo und wie viele Leute in der Fabrik sind
Ich möchte das Ausführungsergebnis von strace erfassen
Ich möchte die Sicherheit der SSH-Verbindung erhöhen
Ich möchte nur die SudachiPy-Normalisierungsverarbeitung verwenden
Ich möchte die Authentizität eines Elements eines numpy-Arrays bestimmen
Ich möchte den EDINET-Code und die Wertpapiernummer zuordnen
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Ich möchte die Legende der IT-Technologiewelt kennenlernen
Ich möchte den Schnittpunkt einer Bezier-Kurve und einer geraden Linie finden (Bezier-Clipping-Methode)
Ich möchte den Namen der ausgeführten Funktion / Methode erhalten
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
[Pytorch] Ich möchte die Trainingsparameter des Modells manuell zuweisen
Ich möchte die HTML-Version der OpenCV 3.1-Version "OpenCV-Python Tutorials" lesen
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Ich möchte sowohl den Schlüssel als auch den Wert des Python-Iterators verwenden
Ich habe zusammengefasst, wie die Boot-Parameter von GRUB und GRUB2 geändert werden
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Ich möchte die Bevölkerung jedes Landes der Welt kennenlernen.
Ich möchte die Frage nach der Methode "__init__" und dem Argument "self" der Python-Klasse klären.
Ich möchte Tag-Informationen (Titel und Künstler) einer Musikdatei (flac, wav) extrahieren.
Ich möchte Spyder an die Taskleiste anheften
Ich möchte kühl auf die Konsole ausgeben
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte mit dem Reim part3 umgehen
Ich möchte Protokolle mit Python analysieren
Ich möchte den Fortschrittsbalken anzeigen
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich möchte es nicht zugeben ... Die dynamische Systemdarstellung von Neural Network
Was ich getan habe, um die Luftfeuchtigkeit und Temperatur des Archivs zu verfolgen
[Python] Ich habe versucht, den Pitcher zu analysieren, der keinen Treffer und keinen Lauf erzielt hat
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
(Python) Ich habe versucht, 1 Million Hände zu analysieren ~ Ich habe versucht, die Anzahl der AA ~ zu schätzen
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Negativität von Nono Morikubo zu analysieren. [Vergleiche mit Posipa]
Ich möchte den Erfolg von NBA-Spielern mit dem Qore SDK vorhersagen
Ich möchte einen beliebigen Befehl im Befehlsverlauf von Shell belassen
Ich möchte das automatische Löschen des tmp-Bereichs in RHEL7 stoppen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich möchte die legendäre Nintendo-Kombination wiederbeleben, indem ich AI und HR Tech voll ausnütze!
Ich habe versucht, das Update von "Hameln" mit "Beautiful Soup" und "IFTTT" zu benachrichtigen.
Ich möchte den Pfad des Verzeichnisses abrufen, in dem die laufende Datei gespeichert ist.
Ich möchte den Transferstatus der 2020 J League visualisieren. Was soll ich tun?
Ich habe Web Scraping versucht, um die Texte zu analysieren.
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Ich möchte mit dem Reim part7 (BOW) umgehen
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ich möchte PyTorch verwenden, um so etwas wie den Text von Japari Park zu generieren