[PYTHON] Wie beurteilt die COTOHA API das Gefühl "der Mond ist schön"?

Worte sind schwierig

Sind Worte nicht schwierig? Wenn Sie es buchstäblich erhalten, können Sie verletzt werden oder Sie können durchgehen, ohne die verborgene Absicht zu bemerken, und es wird gesagt, dass es natürlich ist. Selbst wenn Ihnen zum Beispiel plötzlich gesagt wird, dass der Mond schön ist, erhalten Sie möglicherweise eine Antwort wie ein gutes Publikum und sagen "Ja". Es ist eine schwierige Aufgabe, die Bedeutung von Ich liebe dich zu verstehen.

Dieses Mal möchte ich die schwierigen Wörter auf die Emotionsanalyse von COTOHA API anwenden, um zu bestätigen: "Können Sie die wahre Bedeutung finden?"

Vorbereitung

Was zu verwenden

Ausführungsmethode

Die COTOHA-API selbst ist nach der Registrierung sehr einfach zu verwenden Der diesmal auszuführende Code sieht folgendermaßen aus


import os
import urllib.request
import json


def get_sentiment(txt):
    token = get_cotoha_token()

    url = os.environ['COTOHA_URL'] + 'nlp/v1/sentiment'
    header_with_token = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + token
    }

    obj = {"sentence": txt}
    json_data = json.dumps(obj).encode("utf-8")

    request = urllib.request.Request(
        url, data=json_data, method="POST", headers=header_with_token
    )
    with urllib.request.urlopen(request) as response:
        response_body = response.read().decode("utf-8")
        result_objs = json.loads(response_body)
        res = result_objs['result']
        emotion = ''
        for emo in res['emotional_phrase']:
            emotion += emo['form'] + ': ' + emo['emotion'] + ', '
        print(txt, res['sentiment'], res['score'], emotion)

def get_cotoha_token():
    #COTOHA API-Authentifizierung
    headers = {"Content-Type": "application/json"}
    auth_url = os.environ['COTOHA_TOKEN_URL']
    auth_obj = {
        "grantType": "client_credentials",
        "clientId": os.environ['COTOHA_ID'],
        "clientSecret": os.environ['COTOHA_SECRET']
    }
    auth_json = json.dumps(auth_obj).encode("utf-8")
    auth_request = urllib.request.Request(
        auth_url, data=auth_json, method="POST", headers=headers
    )

    with urllib.request.urlopen(auth_request) as response:
        auth_body = response.read().decode("utf-8")
        auth_res = json.loads(auth_body)
        token = auth_res['access_token']
        return token

if __name__ == '__main__':

    print('======Geben Sie den Text ein, in dem Sie Emotionen analysieren möchten=====')
    txt = input('>  ')

    get_sentiment(txt)

Diesmal ist es ganz einfach: Nehmen Sie einfach ein Token und fordern Sie damit den zu analysierenden Text an. Lassen Sie uns tatsächlich verschiedene Texte ausprobieren

Versuchen Sie, Emotionen zu analysieren

Der Mond ist wunderschön

>Der Mond ist wunderschön
Der Mond ist schön Positiv 0.9111066300514463 Es ist wunderschön: P

Es scheint, dass es positiv aus dem Satz "es ist schön" beurteilt wurde Übrigens wird der Teil von "0.9111066300514463" als Sentiment Score bezeichnet und scheint die Zuverlässigkeit des Urteils zu sein. Wenn ich keine Ahnung hatte, wie hoch der Stimmungswert war, fand ich es in der Slack-Community der COTOHA-API heraus. Slack Community Praktisch

Apropos Ich verstehe "positiv", aber ich habe [bestimmte Gefühle wie in der Referenz] nicht verstanden (https://api.ce-cotoha.com/contents/reference/apireference.html#sentiment): Denken: Denken: Es wäre perfekt, wenn es als "günstig" bezeichnet würde

Reflexion Reflexion Reflexion ry

>Ich sagte, dass ich darüber nachdenke, aber ich denke darüber nach. Ich denke jedoch, dass dies mein Problem ist, aber ich kann die Farbe der Reflexion nicht sehen, während ich sage, dass ich reflektiere. Ich bedauere, dass dies mein eigenes Problem ist.
Ich sagte, dass ich darüber nachdenke, aber ich denke darüber nach. Ich denke jedoch, dass dies mein Problem ist, aber ich kann die Farbe der Reflexion nicht sehen, während ich sage, dass ich darüber nachdenke. Ich bedauere, dass dies mein eigenes Problem ist. Neutral 0.3498954942284627 Reflexion: PN

Wie haben Sie sich über diese Linie gefühlt? Ich habe es aus Neugier versucht, aber es scheint "positiv und negativ" zu sein, weil es "PN" ist. Ich denke, es war ein sehr kompliziertes Gefühl Ich weiß es nicht

Ich bin überhaupt nicht böse

Es ist eine Zeile, die eine wahnsinnig wütende Frau sagen könnte, aber ...

>Ich bin überhaupt nicht böse, also geh zu einer Trinkparty
Ich bin überhaupt nicht böse, also gehe zu einer Trinkparty Positive 0.48899415008698344 Ich bin überhaupt nicht böse: P

Ah, das ist schlecht Ich bewerte es als positiv und nehme an der Trinkparty teil Wenn Sie so wie es ist zur Trinkparty gehen, werden Sie das Haus sicherlich nicht betreten können

Ich mag dich nicht

Es ist eine Vorlage von Tundele Kann COTOHA die Flagge sammeln? ??

>Ich mag dich nicht wirklich
Ich mag dich nicht mehr Negativ 0.5125582125328727 Ich mag es nicht: N

Ohh... Trauriger Fahnenbrecher COTOHA scheint besser zu sein, um einen sanften und leicht verständlichen Freundcharakter aus Kindertagen einzufangen

Ugu

Lassen Sie uns Kanons berühmte Linien analysieren Ich glaube immer noch nicht, dass seit Kanon über 20 Jahre vergangen sind! !!

>Vergiss mich
Vergiss mich Neutral 0.2972851940620987 Vergessen: PN

Ist das nicht schlimm Ich denke Ich finde es ziemlich scharf, die Bedeutung des Wortes "vergessen" als positiv und negativ zu beurteilen.

Ergebnis

Ich habe es gewagt, nur schwierige Sätze zu analysieren, aber ich finde es ziemlich interessant. Ich hatte den Eindruck, dass Wörter wie "Ich bin überhaupt nicht böse" schriftlich so beurteilt werden würden, aber andererseits war ich persönlich davon überzeugt, dass "Vergiss mich" als PN beurteilt wurde. tat In dem Fall, in dem ich diesmal versucht habe, wurden nur die Bezeichnungen "P" und "N" angehängt, aber wenn Sie beispielsweise den Satz in die Referenz werfen,

>Den Frühling des Lebens genießen
Den Frühling des Lebens genießen Positiv 0.19562121911742972 Lied:Linderung,Jubeln

Auf diese Weise werden auch Etiketten wie "Sicherheit" und "angenehm" angebracht. Während ich denke, dass es schön wäre, mehr Labels hier zu haben

Ich finde es wunderbar, die Emotionen eines Satzes analysieren zu können, indem man ihn so einfach wirft. Es gibt viele andere interessante Funktionen in der COTOHA-API, daher möchte ich sie erneut ausprobieren.


Recommended Posts

Wie beurteilt die COTOHA API das Gefühl "der Mond ist schön"?
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
Ich habe versucht, die COTOHA-API zu verwenden (es gibt auch Code auf GitHub).
Ist die Niederschlagswahrscheinlichkeit korrekt?
Wissenschaft "Ist Saito der Vertreter von Saito?"
Von der Einführung der GoogleCloudPlatform Natural Language API bis zur Verwendung
[Java] [Linux] Untersuchen, wie die Implementierung von untergeordneten Java-Prozessen unter Linux realisiert wird
Der API-Client für die Sitemap in der Google-Suchkonsole befindet sich in Webmastern anstelle der Suchkonsole
Bestimmen Sie die Authentizität von veröffentlichten Artikeln durch maschinelles Lernen (Google Prediction API).