Es gibt eine Figur namens "Ikura-chan" unter den Figuren im Anime "Sazae-san", die jeden Sonntag um 6:30 Uhr im Fuji-Fernsehen ausgestrahlt wird.
Ikura ist ungefähr anderthalb Jahre alt und kann im Grunde nur die folgenden drei Wörter sprechen. [^ 1] [^ 2]
--Hallo --Churn
Welche Worte sagt Ikura dann, wenn Ikura die Worte spricht, die wir normalerweise sprechen? Dieses Mal werde ich theoretisch versuchen, anhand des Ähnlichkeitsgrades zu schätzen.
Ich habe die Ähnlichkeitsberechnungs-API der COTOHA-API verwendet. ..
Da diese API den Ähnlichkeitsgrad anhand der semantischen Informationen der im Text enthaltenen Wörter berechnet, scheint es möglich zu sein, die Ähnlichkeit zwischen Texten mit unterschiedlichen Wörtern abzuschätzen.
Daher scheint Ikura abschätzen zu können, welche Bedeutung jedes Wort richtig verwendet.
import requests
import json
import numpy as np
BASE_URL = "https://api.ce-cotoha.com/api/dev/nlp/"
CLIENT_ID = ""
CLIENT_SECRET = ""
def get_token(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 similarity(s1, s2, access_token):
base_url = BASE_URL
headers = {
"Content-Type": "application/json",
"charset": "UTF-8",
"Authorization": "Bearer {}".format(access_token)
}
data = {
"s1": s1,
"s2": s2,
"type": "kuzure"
}
r = requests.post(base_url + "v1/similarity",
headers=headers,
data=json.dumps(data))
return r.json()["result"]["score"]
def said_ikurachan(sentence):
access_token = get_token(CLIENT_ID, CLIENT_SECRET)
ikurachan_words = ["Hallo", "Churn", "Baboo"]
similarity_arr = []
for word in ikurachan_words:
similarity_arr.append(similarity(sentence, word, access_token))
return ikurachan_words[np.argmax(np.array(similarity_arr))]
Zunächst aus dem Begrüßungssystem
said_ikurachan("Guten Morgen", access_token)
# => 'Hallo'
said_ikurachan("Hallo", access_token)
# => 'Hallo'
said_ikurachan("Guten Abend", access_token)
# => 'Hallo'
Die Begrüßung sieht mit "Hi" gut aus.
Als nächstes wollen wir sehen, wie das Zitat aussieht.
said_ikurachan("Was ist ein Genie 1%Inspiration und 99%Ist eine Anstrengung", access_token)
# => 'Churn'
said_ikurachan("Stay hungry, stay foolish", access_token)
# => 'Churn'
said_ikurachan("Die Erde war blau", access_token)
# => 'Churn'
Das Zitat kann "Abwanderung" sein.
Lassen Sie uns abschließend sehen, wie die Unzufriedenheit sein wird.
said_ikurachan("Warum muss ich für ihn kämpfen?")
# => 'Baboo'
said_ikurachan("Ist es wirklich sinnvoll, dies zu tun?")
# => 'Baboo'
said_ikurachan("Warum muss ich so etwas antreffen?")
# => 'Baboo'
Unzufriedenheit scheint "Baboo" zu sein.
Churn. Churn.
(Dieses Mal habe ich mithilfe der Ähnlichkeitsberechnungs-API der COTOHA-API geschätzt, welches Wort zu sagen ist, wenn das Wort, das wir sagten, Ikura-chan ist. Es ist nur eine Theorie, daher weiß ich nicht, ob dies wahr ist oder nicht. Ich bin froh, wenn Sie es als Referenz verwenden können.)
Überlebe die SNS-Ära mit sozialen Filtern
[^ 1]: Aus dem Abschnitt von Ikura Hano auf der offiziellen Website [^ 2]: Es scheint, dass es Zeiten gab, in denen die Arbeitsnummern Nr. 2433 bis Nr. 3991 unterschiedliche Wörter sprachen.