Y a-t-il beaucoup de gens positifs à Vtuber? Y a-t-il beaucoup de gens négatifs? Cette fois, j'ai analysé les émotions des tweets de Vtuber et mesuré le degré de positivité.
En conséquence, Natori Sana s'est avéré positif.
[('Neutral', 31), ('Positive', 12), ('Negative', 7)]
1.7142857142857142
Un peu positif
Nous avons également analysé les tweets de DWU et Massinary Tomoko.
Cette fois, nous analyserons les émotions avec l 'API COTOHA. COTOHA API est une API développée par NTT Communications et utilise les résultats de 40 ans de recherche sur la technologie japonaise. Vous pouvez facilement analyser les émotions ennuyeuses simplement en envoyant un texte. En plus de l'API d'analyse des émotions utilisée cette fois, il existe des API d'analyse de syntaxe et d'extraction de mots-clés.
Comme politique de base, nous analyserons d'abord une cinquantaine d'émotions. Sur les 50 tweets, s'il y a plus de tweets positifs que de tweets négatifs, ils sont considérés comme positifs. Si le contraire est vrai, il sera jugé négatif. Après cela, j'ai essayé de trier assez positif et un peu positif par la valeur de sens.
Cette fois, je l'ai implémenté avec google colaboratory. Veuillez consulter ici pour une mise en œuvre détaillée. En réécrivant la clé API de Twitter et la clé API de COTOHA API, vous pouvez mesurer la positivité de votre utilisateur préféré.
BASE_URL = "https://api.ce-cotoha.com/api/dev/nlp/"
CLIENT_ID = "hogehoge"
CLIENT_SECRET = "hogehoge"
def auth(client_id, client_secret):
token_url = "https://api.ce-cotoha.com/v1/oauth/accesstokens"
headers = {
"Content-Type": "application/json",
"charset": "UTF-8"
}
data = {
"grantType": "client_credentials",
"clientId": client_id,
"clientSecret": client_secret
}
r = requests.post(token_url,
headers=headers,
data=json.dumps(data))
return r.json()["access_token"]
def sentiment(sentence, access_token):
base_url = BASE_URL
headers = {
"Content-Type": "application/json",
"charset": "UTF-8",
"Authorization": "Bearer {}".format(access_token)
}
data = {
"sentence": sentence,
"type": "kuzure"
}
r = requests.post(base_url + "v1/sentiment",
headers=headers,
data=json.dumps(data))
return r
def cleansing_tweet(tweet):
clean_tweets = []
for line in tweet:
temp = line.text
temp = re.sub('RT .*', '', temp)
temp = re.sub('@.*', '', temp)
temp = re.sub('http.*', '', temp)
temp = re.sub('\n.*', '', temp)
temp = re.sub('\u3000.*', '', temp)
if len(temp) != 0:
clean_tweets.append(temp)
if len(clean_tweets) >= 50:
break
return clean_tweets
def check_positive(result):
counter = Counter(result)
print(counter.most_common())
positive_negative = counter["Positive"]/counter["Negative"]
print(positive_negative)
if positive_negative > 1:
if positive_negative > 4:
print("Très positif")
elif positive_negative > 2:
print("Positif")
elif positive_negative > 1:
print("Un peu positif")
elif positive_negative < 1:
if positive_negative < 0.25:
print("Très négatif")
elif positive_negative < 0.5:
print("Est négatif")
elif positive_negative < 1:
print("Un peu négatif")
elif counter["Positive"] == 0 and counter["Negative"] == 0:
print("Sentiments perdus")
Tout d'abord, analysons les tweets de Sunshine Ikezaki pour voir si le jugement positif est fait correctement.
Résultats de l'analyse de Sunshine Ikezaki
[('Neutral', 32), ('Positive', 16), ('Negative', 2)]
8.0
Très positif
Il semble que vous puissiez juger correctement. Analysons Vtuber.
Résultat de l'analyse de Sana Natori
[('Neutral', 31), ('Positive', 12), ('Negative', 7)]
1.7142857142857142
Un peu positif
Résultat d'analyse de DWU
[('Neutral', 28), ('Negative', 15), ('Positive', 7)]
0.4666666666666667
Est négatif
Résultat de l'analyse de Machinery Tomoko
[('Neutral', 27), ('Positive', 16), ('Negative', 7)]
2.2857142857142856
Positif
Cette fois, j'ai reçu des tweets, analysé les émotions et jugé les degrés positifs et négatifs. Quant aux perspectives d'avenir, il semble intéressant de juger en utilisant non seulement les émotions de la phrase entière mais aussi des mots émotionnels.