[PYTHON] Comment l'API COTOHA juge-t-elle la sensation de "la lune est belle"?

Les mots sont difficiles

Les mots ne sont-ils pas difficiles? Si vous le recevez littéralement, vous pouvez être blessé ou passer sans remarquer l'intention cachée et être dit naturel. Par exemple, même si on vous dit soudain que la lune est belle, vous pouvez obtenir une réponse comme un bon public, disant «Oui». C'est une tâche difficile de comprendre le sens de Je t'aime.

Cette fois, je voudrais appliquer les mots difficiles à l'analyse des émotions de l 'API COTOHA pour confirmer "Pouvez-vous trouver le vrai sens?"

Préparation

Quoi utiliser

Méthode d'exécution

L'API COTOHA elle-même est très facile à utiliser une fois que vous vous inscrivez Le code à exécuter cette fois ressemble à ceci


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():
    #Authentification API COTOHA
    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('======Entrez le texte que vous souhaitez analyser les émotions=====')
    txt = input('>  ')

    get_sentiment(txt)

Cette fois, c'est simple, il suffit de saisir un jeton et de l'utiliser pour demander le texte que vous souhaitez analyser. Essayons en fait divers textes

Essayez d'analyser les émotions

La lune est belle

>La lune est belle
La lune est belle Positive 0.9111066300514463 C'est beau: P

Il semble que cela ait été jugé positif d'après l'expression «c'est beau» À propos, la partie de «0.9111066300514463» est appelée score de sentiment et cela semble être la fiabilité du jugement. Si je n'avais aucune idée de ce qu'était le score de sentiment, je l'ai découvert dans la communauté COTOHA API Slack. Communauté Slack Pratique

Au fait Je comprends «positif», mais je n'ai pas compris des sentiments concrets comme dans la référence: penser: penser: Ce serait parfait s'il était étiqueté comme "favorable"

Réflexion Réflexion Réflexion ry

>J'ai dit que j'y réfléchissais, mais j'y réfléchis. Cependant, je pense que c'est mon problème, mais je ne vois pas la couleur du reflet en disant que je réfléchis. Je regrette que ce soit mon propre problème.
J'ai dit que j'y réfléchissais, mais j'y réfléchis. Cependant, je pense que c'est mon problème, mais je ne vois pas la couleur du reflet en disant que j'y réfléchis. Je regrette que ce soit mon propre problème. Neutre 0.3498954942284627 Réflexion: PN

Que pensez-vous de cette ligne? Je l'ai essayé par curiosité, mais il semble être «positif et négatif» parce que c'est «PN». Je pense que c'était un sentiment très compliqué Je ne sais pas

Je ne suis pas du tout en colère

C'est une phrase qu'une femme incroyablement en colère pourrait dire, mais ...

>Je ne suis pas du tout en colère, alors va à une fête
Je ne suis pas du tout en colère, alors allez à une soirée potable Positive 0.48899415008698344 Je ne suis pas du tout en colère: P

Ah, c'est mauvais Je le juge positif et participe à la soirée à boire Si vous allez à la fête comme elle est, vous ne pourrez pas entrer dans la maison.

Je ne t'aime pas

C'est un modèle de Tundele COTOHA peut-il récupérer le drapeau? ??

>Je ne t'aime pas vraiment
Je ne t'aime pas vraiment, Négatif 0.5125582125328727 Je n'aime pas ça: N

Ohh... Concasseur de drapeau triste COTOHA semble être préférable pour capturer un personnage d'ami d'enfance doux et facile à comprendre

Ugu

Analysons les fameuses lignes de Kanon Je ne crois toujours pas que cela fait plus de 20 ans depuis Kanon! !!

>Oublie moi
Oublie-moi Neutre 0.2972851940620987 Oublier: PN

N'est-ce pas mauvais? je pense Je pense qu'il est assez précis de juger le sens du mot «oublier» comme positif et négatif.

résultat

J'ai osé analyser uniquement des phrases difficiles, mais je pense que c'était assez intéressant. J'avais l'impression que des mots comme «Je ne suis pas du tout en colère» seraient jugés de cette façon par écrit, mais d'un autre côté, j'étais personnellement convaincu que «Oubliez-moi» était jugé comme un PN. fait Celles que j'ai essayées cette fois n'avaient que les étiquettes «P» et «N», mais par exemple, si vous jetez le texte dans la référence

>Profiter du printemps de la vie
Profiter du printemps de la vie Positive 0.19562121911742972 Chanson:le soulagement,Réjouir

De cette manière, des étiquettes telles que «sécurité» et «agréable» sont également apposées. Tout en pensant que ce serait bien d'avoir plus d'étiquettes ici

Je pense que c'est merveilleux de pouvoir analyser les émotions d'une phrase simplement en la lançant si facilement. Il existe de nombreuses autres fonctionnalités intéressantes dans l'API COTOHA, je voudrais donc les essayer à nouveau.


Recommended Posts

Comment l'API COTOHA juge-t-elle la sensation de "la lune est belle"?
Comment déterminer qu'une clé croisée a été entrée dans Python3
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
La probabilité de précipitation est-elle correcte?
Science "Saito est-il le représentant de Saito?"
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
[Java] [Linux] Etude de la manière dont l'implémentation des processus enfants Java sous Linux est réalisée
Le client API pour le plan du site dans la console de recherche Google est dans les webmasters au lieu de searchconsole
Déterminez l'authenticité des articles publiés par machine learning (API Google Prediction).