~~ Comprendre les sentiments des gens qui tremblent parce qu'ils veulent se rencontrer ~~
Analyse émotionnelle des paroles Est-ce une chanson brillante? Est-ce une chanson triste? Je veux juger.
Ce serait formidable si nous pouvions effectuer des recherches ambiguës telles que des chansons lumineuses et des chansons tristes sur les services de distribution de musique. Cette année est une année difficile et ce n'est pas bon, donc je fais de mon mieux en écoutant des chansons lumineuses
COTOHA API Python 3.8.1
Ce qui suit a déjà été classé dans Rekochok, j'ai donc choisi une chanson parmi eux comme mon passe-temps.
Le cactus arrête-t-il de danser dans l'analyse émotionnelle? J'ai été autorisé à faire référence.
<détails> <détails> <résumé> Paroles (début) </ résumé> Chanson assez positive <détails> <résumé> Paroles </ résumé> SPYAIR 「BEAUTIFUL DAYS」
<détails> <résumé> Paroles </ résumé> Bien négatif <détails> <résumé> Paroles </ résumé> ~~ Je ne peux pas comprendre les sentiments des gens qui tremblent parce qu'ils veulent se rencontrer ~~ Cette analyse émotionnelle a été faite ligne par ligne,
Je pense que les résultats sont biaisés en raison de l'ordre des mots.
Je pense que des résultats plus précis seront obtenus si le grain des paroles à analyser est affiné, donc je vais essayer si j'ai le temps.
Recommended Posts
top/
├ file/
│ ├ input.txt (Paroles à analyser)
│ └ output.csv (Résultat de sortie)
├ 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"]
#API d'analyse des émotions
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.Obtenez la valeur de 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.Obtenez la phrase à analyser à partir de 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') #Code de saut de ligne (\n) est spécifié
sentence = song_data.readline()
while sentence:
print(sentence.strip())
#Exécution de l'API
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) #liste de réussite
sentence = song_data.readline()
song_data.close()
output_file.close()
résultat de l'analyse
Kana Nishino "Je veux te rencontrer"
Je veux rencontrer, je veux rencontrer, je tremble
Ressens autant que tu penses
Dis-moi encore, même si c'est un mensonge
Comme ce jour-là"je t'aime"Quelle ...
…
Greeeen "Kiseki"
Paroles (début) summary>
Demain, je peux t'aimer plus qu'aujourd'hui
Je l'aime toujours tellement, mais je ne peux pas le mettre en mots
Les jours où tu m'as abandonné se sont empilés et sont décédés Les jours où deux personnes ont marché "trajectoire"
…
Sambo Master "Le monde appelle ça l'amour"
S'il y a une faible lueur dans tes larmes
Devant toi
Je parle d'échauffement
…
Je peux le changer plus positivement Croyons comme ça
Si quelqu'un se moque de toi, je ne rirai pas
Un nouveau départ Tout le monde peut briller
Avec anxiété et attentes Oh, essayez vous-même
…
Beaucoup de rêves que j'ai dessinés ne se réalisent pas
Je me déteste quand j'envie les bonnes personnes
Certaines nuits risquent d'être écrasées par un sommeil léger
…
retour numéro "Fin heureuse"
Au revoir coincé au fond de ma gorge
J'ai dit merci comme la toux
Le mot suivant est même si vous cherchez une poche quelque part
…
Résumé