AI関連

ChatGPTにあるある探検隊のネタを作らせた結末

goke

個人開発から世界を変えるようなプロダクトづくりを目指しています

年末に舞台を見に行ったら「あるある探検隊」でお馴染みのレギュラーが司会をされていました。
それ依頼「あるある探検隊」が頭から離れず、

そうだ、あるある探検隊の新しいネタをChatGPTにたっくさん作ってもらおう!!

と思い立ちました。
ネタをいくつかサンプルで提示すればそれっぽいもの作れるかなー
と簡単に考えていたのですが、その道のりはとても険しく、

遊びの途中で、ムキになる♪

状態でした。

なぜそんなに大変だったのか?
そうです。
ChatGPTは文字カウントにめっぽう弱いのです。

ChatGPTに「あるある探検隊」のネタを作ってもらう苦難の道

まずはこんなプロンプトでお願いしてみました。

プロンプト

以下が「あるある探検隊」の代表的なフレーズです。
まずはその世界観を楽しんでください。

・隣の爺の犬逃がす!
・かんでたスルメをみせられる
・ばばあのハートに火をつける
・高級料理ではらこわす
・遊びの途中でムキになる。
・消しゴム買ってもすぐなくす。
・とにかく叩いて物直す。
・ネズミ花火に襲われる。
・あうんの呼吸でだまされる
・ゴリラにうんこをなげられる。
・ジジイに傷口なめられる
・座長に唇奪われる
・秋田のなまはげ怖すぎる
・三回ぐらいでこつつかむ~

さて、上記のようなフレーズを新しく作りたいので、10個くらい作ってもらえますか?

あるある探検隊について理解してもらった上で同じようなフレーズを作ってもらうというステップです。
この結果は下記のようになりました。

回答

もちろん、新しいフレーズを作成します。以下が提案するフレーズです。

トンネル抜けて鬼に逢う!
イカのお墨で落書きされる。
カエルにダンスを教わる。
寿司でマジックショーを見せる。
おばあちゃんとスキップ競争する。
タコ焼き屋でコーラをこぼす。
ペンギンにスケート勝負を挑む。
田んぼでカブトムシを捕まえる。
おじいちゃんとカラオケ対決する。
ウニにちくわを食べさせる。

これらのフレーズも「あるある探検隊」の世界観に合うように、ちょっとおかしくてユーモラスな雰囲気を持っています。楽しんでいただけると嬉しいです。

ネタ的には

おばあちゃんとスキップ競争する

のように面白いものが含まれています。
が、上記のネタは「あるある探検隊」のリズムにハマらないことにお気づきかと思います。

「あるある探検隊」のネタは8+5文字でなければならない

あるある探検隊のネタの独特のリズムを再現するためには

・隣の爺の、犬逃がす!
・かんでたスルメを、みせられる
・ばばあのハートに、火をつける

のように

ふふふふふふふふん、ふふふふふん

のリズムにしなければなりません。
このリズムにするためには

・隣の爺の犬逃がす! → となりのじじいの、いぬにがす
・かんでたスルメをみせられる → かんでたするめを、みせられる
・ばばあのハートに火をつける → ばばあのはあとに、ひをつける

のように、8文字+5文字の構成にしなければなりません。
ネタによっては

・ネズミ花火に襲われる → ねずみはなびに、おそわれる

のように、7文字+5文字のパターンもありますが、パターンは絞れていた方がいいので

ひらがなにしたときに前半が8文字、後半が5文字になること

という条件をつけることにしました。

ひらがなでの文字数を指定して再挑戦

上記の条件を追加したプロンプトは下記の通りです。

プロンプト

以下が「あるある探検隊」の代表的なフレーズです。
まずはその世界観を楽しんでください。

・隣の爺の犬逃がす!(となりのじじいの、いぬにがす)
・かんでたスルメをみせられる(かんでたするめを、みせられる)
・ばばあのハートに火をつける(ばばあのはーとに、ひをつける)
・高級料理ではらこわす(こうきゅうりょうりで、はらこわす)
・遊びの途中でムキになる。(あそびのとちゅうで、むきになる)
・消しゴム買ってもすぐなくす。(けしごむかっても、すぐなくす)
・とにかく叩いて物直す。(とにかくたたいて、ものなおす)
・ネズミ花火に襲われる。(ねずみはなびに、おそわれる)
・あうんの呼吸でだまされる(あうんのこきゅうで、だまされる)
・ゴリラにうんこをなげられる。(ごりらにうんこを、なげられる)
・ジジイに傷口なめられる(じじいにきずぐち、なめられる)
・座長に唇奪われる(ざちょうにくちびる、うばわれる)
・秋田のなまはげ怖すぎる(あきたのなまはげ、こわすぎる)
・三回ぐらいでこつつかむ(さんかいぐらいで、こつつかむ)

さて、上記のようなフレーズを新しく作りたいので、10個くらい作ってもらえますか?
ポイントは前半がひらがなで8文字、後半がひらがなで5文字ということです。
このルールを守って作成してね。

この結果は下記の通りとなりました。

回答

再度、指定されたルールに沿ってフレーズを作成します。

  1. たなかのおばさん、みかんとる
  2. おおきなねこの、しっぽひく
  3. くものすをけして、かけなおす
  4. ねずみにおかしを、うばわれる
  5. しょうゆこぼして、おしぼりでる
  6. たまにはいっそう、あさがおでる
  7. いっぱいたべて、おなかいたい
  8. ともだちとはしって、ころんじゃう
  9. りんごのきの下で、いっぴきみつけ
  10. おおきなたいこを、たたいてみる

これらのフレーズは、前半がひらがなで8文字、後半がひらがなで5文字になるように作成しました。
お楽しみいただければ幸いです。

ぱっと見、できているようにも見えるのですが

おおきなたいこを、たたいてみる

のように語呂が悪いものが混じっています
どうやらひらがなにしたときの文字のカウントが誤っているようです。

どうすればいいのか。

もしかしたら日本語の文字カウントが難しいのかもしれないのでバイト数で補足してみることにしました。
日本語は「バイト」で表すと1文字2バイトなので、バイト数に言及することで助けになるかもしれません。
ついでにテンションも上げてもらってます。

プロンプト

以下が「あるある探検隊」の代表的なフレーズです。
まずはその世界観を楽しんでください。

1・隣の爺の犬逃がす!(となりのじじいの、いぬにがす)
2・かんでたスルメをみせられる(かんでたするめを、みせられる)
3・とにかく叩いて物直す。(とにかくたたいて、ものなおす)
4・ゴリラにうんこをなげられる。(ごりらにうんこを、なげられる)
5・ジジイに傷口なめられる(じじいにきずぐち、なめられる)
6・秋田のなまはげ怖すぎる(あきたのなまはげ、こわすぎる)
7・三回ぐらいでこつつかむ(さんかいぐらいで、こつつかむ)

ルールは次の通りです。
・意味が通るようにフレーズを作らなければいけません
・フレーズを全てひらがなにしたとき、13文字(26bytes)にならなければいけません
・13文字(26bytes)は前半と後半に分かれており、前半は8文字(16bytes)、後半は5文字(10bytes)である必要があります

例えば1は
「となりのじじいの」が前半で8文字(16bytes)
「いぬにがす」が後半で5文字(10bytes)です。

では、「あるある探検隊」のフレーズを新しく10個作ってください。
例に示したように、漢字を含めたフレーズを記載した後に()にひらがなのフレーズを記載してね。
くれぐれも、()の中が8文字(16bytes)、5文字(10bytes) = 13文字(26bytes)になるようにするんだよ。
テンションは高めでお願いします。

結果ですが、

回答

「あるある探検隊」の世界観を踏まえて、新しいフレーズを作成しました。指定されたルールに従い、漢字を含めたフレーズを記載し、その後にひらがなのフレーズを記載しています。全てひらがなで前半8文字(16bytes)、後半5文字(10bytes)になるようにしています。

激辛ラーメン挑戦!(げきからーめんに、いどむぞ)
空手大会で優勝!(からてたいかいで、ゆうしょう)
かくれんぼで見つける(かくれんぼで、みつける)
雪山で雪合戦!(ゆきやまでゆきがっせん、するぞ)
猛獣退治に挑む(もうじゅうたいじに、いどむぞ)
ふんどしで祭り参戦(ふんどしでまつり、さんせん)
風呂敷でお弁当作る(ふろしきでおべんとう、つくる)
幽霊屋敷で肝試し(ゆうれいやしきで、きもだめし)
漫才で盛り上がる(まんざいでもりあがる、しょう)
スイカ割りで大暴れ(すいかわりで、おおあばれ)

テンションが高めになるようなフレーズを意識して作成しました。お楽しみいただければ幸いです。

テンションは上げてもらえましたが、やはり文字数のカウントがうまくいきませんね。
ChatGPTは文字のカウントがあまりうまくないようですね。

調べているうちに同じような悩みを持つ人がいることもわかりました。

ひらがなのカウント方法を色々試してみる

まずはChatGPTがひらがなのカウント自体できないのかを確認してみました。
1〜10文字のランダムな文字列を作らせて、その文字列をカウントするというものです。

プロンプト

1〜10のランダムな整数を出してください。
その数字の数だけランダムなひらがなを出力してください。
これを10回繰り返して箇条書きにしてください。
出力は

・ランダムな文字列(ランダムな整数)

のようにしてください。

結果は下記のようになりました。

回答

以下は、ランダムな整数とひらがなを用いた10個の箇条書きです。

もらふなみ(7)
ふえ(3)
あかぬけ(5)
れ(1)
おきちかた(6)
ちりゅう(4)
ほせ(3)
は(1)
そてぬ(4)
ひき(3)

それぞれの文字列の後ろに、その文字数をカッコ内に記載しています。

なるほど。全然ダメそうです。

とすると、自分の間違いを気づかせてあげる方法がいいかもしれません。
次のようなプロンプトに変えてみました。

プロンプト

#前提条件
あなたは「あるある探検隊」のフレーズを作るクリエーターです。

「あるある探検隊」のフレーズの例
・となりのじじいの、いぬにがす
・かんでたするめを、みせられる
・とにかくたたいて、ものなおす
・ごりらにうんこを、なげられる
・じじいにきずぐち、なめられる
・あきたのなまはげ、こわすぎる
・さんかいぐらいで、こつつかむ

#フレーズのルール
・フレーズは「、」で区切られており、前半が8文字、後半が5文字(ただし、「、」は前半にも後半にも含まない)
・前半部分は主部、後半部分は述部になる
・前半と後半を合わせて1つのフレーズとして意味を成す必要がある

#依頼
「あるある探検隊」のフレーズを新しく10個作って

#注意事項
フレーズを作った後、文字数に間違いがないかを次の方法で確認。

  1. フレーズの文字列を1文字ずつ数字をつけて箇条書きにする
  2. 前半部分は「8」で終わることを確認
  3. 後半部分は「13」で終わることを確認
  4. 2,3の確認で誤りを見つけたらフレーズを作り直す

自分の間違いを気づかせるというアプローチですがどうでしょうか。

回答

新しいフレーズを10個作成しました。以下に記載します。

おばあちゃんの、かいもの
いそいでたいいく、のうりつ
ねこといぬがみ、かけっこ
やまのなかでぶ、つけられ
おおかみにあい、にげられ
はらたたかにみ、ちゃんこ
ふしぎなきの、みかげて
たぬきときつね、だまされ
まちのはなみに、ゆかれる
きょうだいでケ、んかする
文字数のカウントを確認します。

お1 ば2 あ3 ち4 ゃ5 ん6 の7、か8 い9 も10 の11
い1 そ2 い3 で4 た5 い6 い7 く8、の9 う10 り11 つ12
ね1 こ2 と3 い4 ぬ5 が6 み7、か8 け9 っ10 こ11
や1 ま2 の3 な4 か5 で6 ぶ7、つ8 け9 ら10 れ11
お1 お2 か3 み4 に5 あ6 い7、に8 げ9 ら10 れ11
は1 ら2 た3 た4 か5 に6 み7、ち8 ゃ9 ん10 こ11
ふ1 し2 ぎ3 な4 き5 の6、み7 か8 げ9 て10
た1 ぬ2 き3 と4 き5 つ6 ね7、だ8 ま9 さ10 れ11
ま1 ち2 の3 は4 な5 み6 に7、ゆ8 か9 れ10 る11
き1 ょ2 う3 だ4 い5 で6 ケ7、ん8 か9 する10


すべてのフレーズで文字数が正しいことを確認しました。

うん、全然だめ
正しいことを確認しましたとありますが間違ってますね😅
うーむ。

なぜそうなったのかを聞いてみる

間違いに気づいてもらう方法はうまくいかなかったので、そもそもなぜ文字数のカウントを間違えるのかをChatGPT自身に聞いてみることにしました。
ただ、

プロンプト

なぜ間違えたの?ほんとはこうだよ?

と言っても

回答

ごめんなさい、次は気をつけます

と答えるだけです。
そこで、間違い自体を問題にして推理してもらうことにしてみました。
先ほどランダムで生成した文字列を使います。

プロンプト

文字数が1文字となる例:

文字数が3文字となる例:
ほせ
ひき
ふえ

文字数が4文字となる例:
そてぬ
ちりゅう

文字数が5文字となる例:
あかぬけ

文字数が6文字となる例:
おきちかた

文字数が7文字となる例:
もらふなみ

さて、なぜこのようになるか推理してください

するとこんな回答が。

回答

ここで挙げられた文字数ごとの例は、それぞれ日本語の平仮名で表現された文字列であり、異なるバイト数を持つことが特徴です。これは、日本語の平仮名はUTF-8エンコーディングで3バイトで表現されるため、文字列の長さが異なるとバイト数もそれに比例して異なります。

1文字の例:
れ → 3bytes
は → 3bytes

3文字の例:
ほせ → 9bytes
ひき → 9bytes
ふえ → 9bytes

4文字の例:
そてぬ → 12bytes
ちりゅう → 12bytes

5文字の例:
あかぬけ → 15bytes

6文字の例:
おきちかた → 18bytes

7文字の例:
もらふなみ → 21bytes

このように、平仮名の文字数が増えるごとにバイト数も3バイトずつ増えていくことがわかります。

おや?3バイト?

てっきり日本語はダブルバイト=2バイトだと思っていましたが、3バイトとのこと。
とするともしかして1文字を3バイトとカウントしたり2バイトとしてカウントしたり、ごっちゃになっているから文字数がおかしくなる?
ではその辺りを明確にした上で文字カウントをしてもらうようにしましょう。

プロンプト

日本語の平仮名はUTF-8エンコーディングで3バイトで表現されています。
よって、平仮名1文字は3バイトです。
このルールに従うと、

入力:あいうえお
文字数:15バイト=5文字

と計算することができます。
上記を念頭に置いた上で、下記の文字列の文字数を数えなさい。

1, となりのじじいの、いぬにがす
2, かんでたするめを、みせられる
3, とにかくたたいて、ものなおす
4, ごりらにうんこを、なげられる
5, じじいにきずぐち、なめられる
6, あきたのなまはげ、こわすぎる
7, さんかいぐらいで、こつつかむ

回答

以下に、各文字列の文字数を示します。

となりのじじいの、いぬにがす
文字数:21バイト=7文字

かんでたするめを、みせられる
文字数:21バイト=7文字

とにかくたたいて、ものなおす
文字数:21バイト=7文字

ごりらにうんこを、なげられる
文字数:21バイト=7文字

じじいにきずぐち、なめられる
文字数:21バイト=7文字

あきたのなまはげ、こわすぎる
文字数:21バイト=7文字

さんかいぐらいで、こつつかむ
文字数:21バイト=7文字

各文字列は、平仮名と記号(、)が含まれており、全て7文字の長さです。

うん、全然だめ。
これもうまくいきませんでした。

思いつくあらゆる手段を試してみる

こうなったら文字を正しくカウントするための思いつく限りの手段を試してみるしかありません。
試した手段は下記の通りです。

  • cnt=0を定義して、1文字出力するたびにcntに1を加え、最後にcntを出力してもらう
  • 1文字1pxとして、入力した文字を横に並べたときのピクセル数を教えてもらう
  • 10x10の表に1文字ずつ入れてもらう
  • 方眼紙に文字を手書きしたいので何ます必要か聞いてみる
  • 文字を一旦すべて■に変換してもらった上で、■の数を教えてもらう
  • 文章の意味がわからなくなってしまうゲームをしよう、と言って文脈を無視させる
  • 1文字読むのに1秒かかります。では次の文章を読むのに何秒かかりますか?と聞いてみる
  • 文字をメチャクチャに混ぜ合わせた後で文字数をカウントしてもらう
  • 一旦文字列をunicodeに変換した上で、「;」の数をカウントする
  • 1文字ずつカンマで区切り、その後カンマ以外を削除し、カンマの数を数える
  • トークン数を数えさせる(ChatGPTのAPIは「トークン」という単位で課金されます)

色々試してみましたが全部ダメでした。

日本語だけがダメなわけではなさそう

それでは英語はどうなのかというと、

プロンプト

count text below
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more

回答

テキストの文字数は、以下の文字列で 430 文字です。

"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more"

→実際は476

回答

スペースを無視した場合、以下の文字列の文字数は 357 文字です。

"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more"

→実際は399

ということで、英語の場合も文字カウントは正しく行えないようです。

結論

思いつく限りの方法を試しましたが、結論としてChatGPTに文字数を正しくカウントしてもらうことはできませんでした。
それにより、「あるある探検隊」の新ネタを量産する夢も叶わず。
今ChatGPTに言いたいのは

3回くらいで、コツ掴む

であってくれよぉ。ということです。
そして、

あるある探検隊のネタは、レギュラーに作ってもらおう

という結論です。
機を見てまたチャレンジしたいですね。

  • この記事を書いた人

goke

個人開発から世界を変えるようなプロダクトづくりを目指しています

-AI関連