Gibt es in Vtuber viele positive Menschen? Gibt es viele negative Menschen? Dieses Mal analysierte ich die Emotionen von Vtubers Tweets und maß den Grad der Positivität.
Als Ergebnis wurde festgestellt, dass Natori Sana positiv ist.
[('Neutral', 31), ('Positive', 12), ('Negative', 7)]
1.7142857142857142
Ein bisschen positiv
Wir haben auch Tweets von DWU und Massinary Tomoko analysiert.
Dieses Mal werden wir Emotionen mit COTOHA API analysieren. COTOHA API ist eine von NTT Communications entwickelte API, die die Ergebnisse von 40 Jahren Forschung auf dem Gebiet der japanischen Technologie verwendet. Sie können störende Emotionen einfach analysieren, indem Sie einen Text senden. Zusätzlich zu der diesmal verwendeten Emotionsanalyse-API gibt es Syntaxanalyse- und Schlüsselwortextraktions-APIs.
Als Grundpolitik werden wir zunächst etwa 50 Emotionen analysieren. Wenn es von den 50 Tweets mehr positive als negative Tweets gibt, wird dies als positiv angesehen. Wenn das Gegenteil der Fall ist, wird es als negativ beurteilt. Danach habe ich versucht, ziemlich positiv und ein wenig positiv nach dem Sinneswert zu sortieren.
Dieses Mal habe ich es mit Google Colaboratory implementiert. Die detaillierte Implementierung finden Sie unter hier. Durch Umschreiben des API-Schlüssels von Twitter und des API-Schlüssels von COTOHA API können Sie die Positivität Ihres Lieblingsbenutzers messen.
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("Sehr positiv")
elif positive_negative > 2:
print("Positiv")
elif positive_negative > 1:
print("Ein bisschen positiv")
elif positive_negative < 1:
if positive_negative < 0.25:
print("Sehr negativ")
elif positive_negative < 0.5:
print("Ist negativ")
elif positive_negative < 1:
print("Ein bisschen negativ")
elif counter["Positive"] == 0 and counter["Negative"] == 0:
print("Verlorene Gefühle")
Lassen Sie uns zunächst die Tweets von Sunshine Ikezaki analysieren, um festzustellen, ob das positive Urteil richtig ist.
Analyseergebnisse von Sunshine Ikezaki
[('Neutral', 32), ('Positive', 16), ('Negative', 2)]
8.0
Sehr positiv
Es scheint, dass Sie richtig beurteilen können. Lassen Sie uns Vtuber analysieren.
Analyseergebnis von Sana Natori
[('Neutral', 31), ('Positive', 12), ('Negative', 7)]
1.7142857142857142
Ein bisschen positiv
Analyseergebnis von DWU
[('Neutral', 28), ('Negative', 15), ('Positive', 7)]
0.4666666666666667
Ist negativ
Analyseergebnis von Machinery Tomoko
[('Neutral', 27), ('Positive', 16), ('Negative', 7)]
2.2857142857142856
Positiv
Dieses Mal bekam ich Tweets, analysierte Emotionen und beurteilte positive und negative Grade. In Bezug auf die Zukunftsaussichten erscheint es interessant, nicht nur die Emotionen des gesamten Satzes, sondern auch emotionale Wörter zu beurteilen.