Meros: Ça n'arrive pas!
Je voudrais lire sur "Running Melos" en utilisant l'analyse émotionnelle de COTOHA.
Cloner la bibliothèque du ciel bleu
!git clone --branch master --depth 1 https://github.com/aozorabunko/aozorabunko.git
Obtention du texte intégral de "Run Meros" auprès d'Aozora Bunko
from bs4 import BeautifulSoup
def get_word():
#Spécifiez le chemin du html cloné(Exécuter meros)
path_to_html='aozorabunko/cards/000035/files/1567_14913.html'
#Analyse HTML avec Beautiful Soup
with open(path_to_html, 'rb') as html:
soup = BeautifulSoup(html, 'lxml')
main_text = soup.find("div", class_='main_text')
for yomigana in main_text.find_all(["rp","h4","rt"]):
yomigana.decompose()
sentences = [line.strip() for line in main_text.text.strip().splitlines()]
aozora_text=','.join(sentences)
aozora_text_list = aozora_text.split("。")
return aozora_text_list
Exécuter le texte intégral de Meros, COTOHA(Analyse des émotions)Je vais aller à.
mport os
import urllib.request
import json
import configparser
import codecs
import sys
import time
client_id = "Votre identifiant client"
client_secret = "Votre propre clé secrète"
developer_api_base_url = "https://api.ce-cotoha.com/api/dev/nlp/"
access_token_publish_url = "https://api.ce-cotoha.com/v1/oauth/accesstokens"
def cotoha_call(sentence_1,api_type):
#Obtenez un jeton d'accès
def getAccessToken():
url = access_token_publish_url
headers={
"Content-Type": "application/json;charset=UTF-8"
}
data = {
"grantType": "client_credentials",
"clientId": client_id,
"clientSecret": 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)
access_token = res_body["access_token"]
return access_token
#Spécification d'URL de l'API(Extraction d'expression unique)
base_url_footer = "v1/" + api_type
url = developer_api_base_url + base_url_footer
headers={
"Authorization": "Bearer " + getAccessToken(), #access_token,
"Content-Type": "application/json;charset=UTF-8",
}
data = {
"sentence": sentence_1
}
data = json.dumps(data).encode()
time.sleep(0.5)
req = urllib.request.Request(url, data, headers)
try:
res = urllib.request.urlopen(req)
#Que faire si une erreur se produit dans la demande
except urllib.request.HTTPError as e:
#Si le code d'état est 401 Unauthorized ou 500 Internal Server Error, réacquérir le jeton d'accès et demander à nouveau
if e.code == 401 or 500:
access_token = getAccessToken()
headers["Authorization"] = "Bearer " + access_token
time.sleep(0.5)
req = urllib.request.Request(url, data, headers)
res = urllib.request.urlopen(req)
#Si l'erreur est différente de 401 ou 500, la cause est affichée.
else:
print ("<Error> " + e.reason)
#sys.exit()
res_body = res.read()
res_body = json.loads(res_body)
return res_body
sentence = get_word()
end = len(a)
full_text = len(''.join(sentence))
sentiment_list = []
cnt = 0
wcnt = 0
for i in a:
cnt+=1
print(str(cnt)+ "/" + str(end))
b = cotoha_call(i,"sentiment")
sentiment_list.append([b['result']['sentiment'],b['result']['score'],i,wcnt])
wcnt+=len(i)
<détails> <résumé> 3. Représentez graphiquement les nombres. </ résumé>
Représentez graphiquement les nombres.
#Bibliothèque utilisée pour le calcul numérique
import numpy as np
import pandas as pd
import seaborn as sns
#Bibliothèque pour dessiner des graphiques
from matplotlib import pyplot as plt
#Spécification pour l'affichage du graphique dans colab
%matplotlib inline
#Ajuster les valeurs du graphique
graph_x = []
graph_y = []
for i in sentiment_list:
graph_x.append(i[3])
if(i[0] == 'Negative'):
tmp_y = (i[1] * -1) + (-1)
graph_y.append(tmp_y)
if(i[0] == 'Positive'):
tmp_y = i[1]+1
graph_y.append(tmp_y)
if(i[0] == 'Neutral'):
graph_y.append(i[1])
sns.set()
#plt.plot(x, y, color = 'black')
plt.figure(figsize=(40, 8), dpi=100)
plt.plot(graph_x, graph_y, color = 'red', marker = 'o', linestyle = '-', label = 'Sensor1')
#plt.xlim([0,5000])
plt.title("Run, Melos,")
plt.xlabel("Sentence")
plt.ylabel("Emotion")
Graphique linéaire
L'axe vertical est l'émotion et l'axe horizontal est la position du texte de chaque phrase. Il existe toute une gamme de fluctuations émotionnelles.
Principales phrases positives No1 ~ 3
[1.8126587191707609, 'J'ai aussi acheté un beau costume']
[1.6346889479386029, 'Votre vie est importante maintenant'],
[1.633215237292569, 'Le jeune maçon a également crié, courant après Meros.']
La phrase la plus positive est ** "J'ai acheté un beau costume" **, avec une grande différence de score entre la 2ème et la 3ème place.
C'est une phrase dans la conversation entre "Meros" et "Sister" quand "Meros" est retourné au village. Je pense que j'étais très heureux d'avoir pu courir du village à la ville et remettre les costumes que j'avais achetés à ma sœur. (C'est le but initial de Meros en premier lieu.)
Phrases avant et après la phrase qui semble la plus positive(référence)
J'ai été surpris de retrouver l'apparence épuisée de mon frère qui titubait et marchait. Puis j'ai posé une question à mon frère bruyant.
"Rien." Melos essaya de le forcer à rire. «J'ai laissé quelque chose à faire en ville. Je dois retourner bientôt en ville. Demain, j'aurai ton mariage.
Ma sœur a levé les joues.
"Je suis heureux. J'ai acheté un beau costume. Maintenant, allez faire savoir aux villageois. Le mariage est demain."
Meros a également chancelé, est rentré chez lui pour décorer l'autel des dieux, a organisé un festin, et est rapidement tombé au sol et est tombé dans un sommeil profond qui ne pouvait plus respirer.
Phrase la plus négative Top No1 ~ 3
[-1.9459608426670426, 'Ne laisse pas l'homme mourir']
[-1.939408157054805, 'Même si c'est un moment, ça ne peut pas être gaspillé']
[-1.8666593927565555, 'Oh, le soleil se couche']
Les première et deuxième places ne ressemblent pas à des phrases négatives, elles ne semblent donc pas correctes. («Die», «Waste» Ce mot semble en être la cause.)
Alors, n'est-ce pas la phrase pratiquement la plus négative ** "Oh, le soleil se couche" **?
C'est une phrase alors que je retourne en ville de toutes mes forces avant la date limite pour libérer mon ami Serinuntius qui est un otage.
De multiples difficultés se dressent devant Meros, mais nous les surmonterons Même si je m'agenouille finalement une fois, diverses pensées circulent et dans la représentation qui se redresse C'est une représentation de la partie que le temps passe à chaque instant en faisant cela.
Phrases avant et après la phrase qui semble être la plus négative(référence)
Courir! Meros.
J'ai confiance. J'ai confiance. Ce murmure du diable plus tôt était un rêve. C'est un mauvais rêve. Oublie.
Quand les cinq organes sont fatigués, ils font un si mauvais rêve. Meros, ce n'est pas votre honte.
Après tout, vous êtes un vrai héros. N'est-il pas possible de se lever et de courir à nouveau? Je vous remercie!
Je peux mourir en tant que combattant de la justice. Oh, le soleil se couche. Il coule régulièrement. Attends, Zeus.
Je suis un honnête homme depuis ma naissance. Laissez-le comme un honnête homme et laissez-le mourir.
Si vous regardez le négatif et le positif de la valeur émotionnelle, la partie où chacun est organisé en blocs, c'est comme suit.
Affichage de la carte de dispersion
#plt.plot(graph_x, graph_y, color = 'red', marker = 'o', linestyle = '-', label = 'Sensor1')
plt.scatter(graph_x, graph_y, color = 'red', marker = 'o', linestyle = '-', label = 'Sensor1')
python
J'espère remplir l'obligation.
J'espère me tuer et protéger mon honneur.
Le soleil jette une lumière rouge sur les feuilles des arbres, et les feuilles et les branches brillent en brûlant.
Il est encore temps avant le coucher du soleil. Quelqu'un m'attend.
Il y a des gens qui m'attendent tranquillement sans aucun doute.
Je suis cru. Mon mystère de vie n'a pas d'importance. Je ne peux rien dire de gentil d'être mort et de m'excuser.
Je dois récompenser ma confiance. C'est juste une chose maintenant.
Courir! Meros.
J'ai confiance. J'ai confiance. Ce murmure du diable plus tôt était un rêve. C'est un mauvais rêve. Oublie.
Quand les cinq organes sont fatigués, ils font un si mauvais rêve. Meros, ce n'est pas votre honte.
Après tout, vous êtes un vrai héros. N'est-il pas possible de se lever et de courir à nouveau?
Je vous remercie! Je peux mourir en tant que combattant de la justice.
C'est une représentation de Melos, qui s'est agenouillé une fois, quand il se relève. Vous pouvez lire les émotions accrues. (À propos, c'est la phrase immédiatement avant la phrase la plus négative décrite ci-dessus.)
python
Si cela arrive, je serai plus dur que de mourir. Je suis un traître pour toujours. La race la plus honteuse du monde.
Serinuntius, je mourrai aussi. Laisse-moi mourir avec toi. Seulement, vous devez me croire.
Non, est-ce aussi mon égoïsme? Ah, survivons en tant que méchant.
Ma maison est dans le village. Il y a aussi des moutons. Ma sœur et son mari ne voulaient jamais me chasser du village.
C'est une représentation quand on essaie de renoncer à aider un ami Seriuntius. Certainement, il est jeté. (Après cela, je jette mes membres, et quand je tombe enfin malade, je deviens somnolent.)
~~ De la valeur émotionnelle positive, j'ai pensé que Melos était un syscon. ~~
C'est facile, mais j'ai essayé de lire "Run Meros" en utilisant l'analyse des émotions. C'est assez intéressant de lire les phrases comme ça.
c'est tout. Merci d'avoir lu jusqu'ici.
Recommended Posts