Help us understand the problem. What is going on with this article?

あなたの言葉をイクラちゃんが喋るとどうなるのか?

はじめに

毎週日曜よる6時30分にフジテレビで放送されている「サザエさん」というアニメの登場人物に「イクラちゃん」というキャラクターがいます。

イクラちゃんは年齢が1歳半くらいで基本的に以下の3つの言葉しか話すことができません。1 2

  • ハーイ
  • チャーン
  • バブー

では、私たちが普段話している言葉をイクラちゃんが話すとどの言葉を発するのか。
今回は一説として、類似度を基に推定してみようと思います。

実装方法

COTOHA API類似度算出APIを利用しました。

このAPIはテキストに含まれる単語の意味情報を用いて類似度を算出しているため、異なった単語を含むテキスト間の類似性も推定することができるそうです。

そのため、イクラちゃんがそれぞれの言葉をどのような意味で使い分けているかを含めて推定できそうですね。

ソースコードはこちら

CLIENT_ID, CLIENT_SECRETはご自身で取得したものをご利用ください。
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 = ["ハーイ", "チャーン", "バブー"]
  similarity_arr = []
  for word in ikurachan_words:
    similarity_arr.append(similarity(sentence, word, access_token))
  return ikurachan_words[np.argmax(np.array(similarity_arr))]


実行結果

まずは挨拶系から

said_ikurachan("おはようございます", access_token)
# => 'ハーイ'

said_ikurachan("こんにちは", access_token)
# => 'ハーイ'

said_ikurachan("こんばんは", access_token)
# => 'ハーイ'

挨拶は「ハーイ」でよさそうですね。

次に、名言がどのようになるかを見てみましょう。

said_ikurachan("天才とは1%のひらめきと99%の努力である", access_token)
# => 'チャーン'

said_ikurachan("Stay hungry, stay foolish", access_token)
# => 'チャーン'

said_ikurachan("地球は青かった", access_token)
# => 'チャーン'

名言は「チャーン」でよいかもしれません。

最後に、不満がどのようになるかを見てみましょう。

said_ikurachan("なんであいつのために俺が苦労しないといけないんだ")
# => 'バブー'

said_ikurachan("本当にやる意味あるのかなこれ")
# => 'バブー'

said_ikurachan("なんで自分だけこんな目に遭わないといけないのか")
# => 'バブー'

不満は「バブー」となりそうですね。

おわりに

チャーン。チャーン。

(今回は私たちが発している言葉がイクラちゃんだったらどの言葉を発するかについて、COTOHA APIの類似度算出APIを利用して推定しました。あくまで一説ですのでこれが真実かどうかは分かりませんが、参考になれば幸いです。)

参考

社会性フィルターでSNS時代を生き抜く


  1. 公式サイトの波野イクラの項より 

  2. 作品番号No.2433からNo.3991までは別の言葉を喋る回があったそうです。 

kuracux
stmn-co
名古屋のITスタートアップベンチャーです。「一人でも多くの人に、感動を届け、幸せを広める。」の経営理念のもと、 エンゲージメント経営コンサルティング「TUNAG」などのサービスを展開しています。
https://stmn.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした