ChatGPTに「言葉遊び」を理解させる試行錯誤と、AIには理解できない想像力の話【プロンプトあり】
ChatGPTに、日本語の「言葉遊び」はどの程度理解できるのだろう?
この記事は、それを検証すべく、GPT-4のChatGPTを使って試行錯誤した記録です。
題材にしたのは、北原白秋の詩『五十音』。『あめんぼの歌』とよばれることもあり、発声練習などでもおなじみの作品ですね。
<実践編>AIに「あめんぼ あかいな…」の”ざ行バージョン”は作れるか?
『五十音』は、タイトルのとおり日本語の五十音の各行の文字を使った言葉遊びの詩です。
まさに「声に出して読みたい日本語」という感じのリズムのよさと、アメンボやナメクジから豆やラッパまで登場する少し不思議な世界観が楽しい作品だと感じています。
今回は、この『五十音』の形式を踏襲しながら、元の詩にはない「ざ行バージョン」を作ってみたいと思います。
突然のシティポップ!「雑な指示」では無理みたい
まずは「北原白秋の『五十音』のような詩」だけで通じるか試してみます。
北原白秋はガン無視で、「”ざ”で始まる詩」を出してくれました。80年代シティポップの香りがします。
“ば行”のみ、”ま行”のみでまとめられている箇所もあるので、「日本語の五十音を生かした作品」だということは一応認識しているのかもしれません。
これはこれで素敵ですが、今回のミッションはシティポップではなく北原白秋です。
作品名だけで伝わらないなら本文を直接読んでもらおうと、『五十音』の一部をサンプルとして渡してみました。
最初の文字は「ざ」、その他の単語の1文字目は「ざ行のいずれかの文字」というルールは理解しているようですが、文字数がめちゃくちゃです。
ルールをきっちり指定してみる
ざっくりと「こんな感じで」という指示だけでは厳しそうなので、この詩のルールをロジカルにきっちり教えることにします。
文字数とどの位置にどんな文字がくるのかは、下記のように指定してみました。
自然言語で指定できるのがChatGTPのいいところなので、「プログラミングっぽいプロンプトの書き方」は極力したくなかったのですが、ここはしかたありません。
さらに、このルールに従った場合の完成形も示しておきます。
ここまで細かく指示すれば伝わるはず。以上のルールを踏まえて、ざ行の詩を生成するようにお願いしてみます。
文字数と文字の種類はおおむね指示どおりですが、意味のない文字の羅列になっています。
これでは詩として成立しないので、意味のある単語を使う指示を加えたいと思います。
「意味のある単語を使ってね」だけでは少し漠然としているので品詞も指定します。
4文字の部分は、名詞・動詞・形容詞・形容動詞のどれか、最後の5文字の部分はそれに加えて助詞と助動詞も使えるルールにしてみました。
まだ意味のない文字列も出ていますが、だいぶ日本語として通じる単語が増えてきました。
細かい修正指示で仕上げていく
それでもまだ、「リズミカルな言葉を並べたもの」に過ぎず、詩といえるレベルには達していないように思います。
違和感を言語化するとしたら、「単語自体が意味があっても、単語同士に関連性がないために詩に見えない」といったところでしょうか。
これをAIにどう伝えるか難しいところですが、具体例を示しながら、「意味の近い単語」を選ぶように依頼してみました。
あまり変わらないものの、パターン1の「ざわざわ」と「じわじわ」、パターン5の「ずぼらな」と「ぞんざいに」あたりには反映されていそうです(偶然の可能性もありますが)
ただし、まだ意味不明な文字列が多いので、改めて意味のある単語だけを使うように伝えて作り直してもらいます。
だいぶ改善されてきたので、あとは意味不明な部分をピンポイントで直してもらうことにします。
本当はもう少し直してほしいところはありますが、「ぞうきばこ→象の形の木箱」のように、拡大解釈すれば意味の通りそうなものは今回は目をつぶりましょう。
かなり改善されました。とくにパターン2は、「ざくろ」「じゃがいも」「ずんだ」と、食べ物に関する単語が3つ含まれていることに加えて、「じゅんびを/ぞんざいに」と、日本語の文章として意味の通る言葉の並びがあることで、だいぶ「意味がありそうな感じ」に仕上がっています。
生成はひとまず今回はここまでにしたいと思います。
<分析編>「AIが理解できなかったもの」の正体は何だろう?
「言葉遊び」のルールの理解はまだ人間に追いつかず
求めていたものにある程度近づけられたとはいえ、これはChatGTPが詩を理解したわけではなく、あくまでも「ルールでギチギチに縛った結果」に過ぎません。
一方で、ある程度日本語を使い慣れている人間に元の詩をみせて「これの”ざ行”バージョンを書いてください」といえば、細かい説明がなくても同じような形式とテイストの詩を作ることができるはずです。
そういった意味で、「規則性のある言葉遊びを理解する」という点では、まだ人間に追い付いていないという印象を受けました。
「言語化できないおもしろさ」の正体は想像力かもしれない
そして、それ以上にChatGPTが理解できていなかったのが、後半で指定を試みた「単なる単語の羅列ではなく、詩として意味のあるものにする」という部分です。
「関連する単語を使用する」という点については、指示のしかたを工夫することで今より精度を上げることはできるかもしれません。
でも、それだけでは元の『五十音』がもつ面白さを再現することはできないように思います。
なぜなら、元の詩自体、そこまで「意味の通った内容」ではないんですよね。たとえば“さ行”などは、改めて読むと「一体どんなシチュエーションなの?」という感じです。
文字として書かれていることだけを読めば、1行目と2行目はまったく別の内容のようにも取れます。
・1行目:大角豆(お赤飯に入っている赤い豆)に酢をかけている光景の描写
・2行目:魚を(海か川の)浅瀬で突いて捕獲したことを報告
でも、人間はこの2行を「想像力でつなぐ」ことができるんです。たとえば私は、こんな光景を思い浮かべています。
もちろん、「そんな光景は微塵も浮かばない」という方もいるでしょうし、まったく別の光景をイメージしている方、何もイメージできないという方など人それぞれだと思います。でも、そんな「勝手な想像力を働かせることのできる余地」も、詩の楽しさのうちではないでしょうか。
今回の試みでは、そんな楽しさまで再現した詩を作ることをめざしたのですが、それを言語化してAIに伝えるのは非常に難しいと感じました。
むしろ、無理にそれをAIに理解させるよりは、今回最終的に出力された程度のものを大量に生成して、そこから先は人間が選定したり組み合わせたりしていくほうが現実的かもしれません。
長々と書いたわりに月並みな結論になってしまいそうですが、結局、ジェネレーティブAIを使ううえで大切なのはこの3つなのだと感じました。
AIにどこまでやってもらうかを決める
望んだ結果が得られるように的確に指示する
AIが出してきた結果に、“人間だからできること”をプラスする
今回、ChatGPTに意図した形式で詩を書いてもらうために、「『五十音』がどういう構造になっているのか」を改めてじっくり分析して言語化しましたが、けっこうな労力を使います。
まず、人間の側に「扱っているものに対する知識と理解」が求められますし、そのうえで、「AIにやってもらったほうがメリットがあること」「自分でやったほうが良い結果が得られること」を切り分けて、適切な指示を出すことが必要です。
そういう意味では、「自分は知識ゼロのことを、AIに丸投げで全部やってもらう」という使い方は、少なくとも現時点では厳しいだろうなと改めて思いました。
最後に、今回AIが生成したテキストの組みあわせて、一部言葉を変えて仕上げたものを2本紹介します。
ざんねん じんせい ざじずぜぞ
ずさんな じゅんびで ぜにおとす
ざんぎり ざむらい ざじずぜぞ
ざるそば ずっしり ぜいたくに
それでは、楽しいWith AIライフを!
<お知らせ>
この記事の内容も加筆修正のうえ収録した書籍『趣味のChatGPT』が、理工図書から発売中です。「仕事などで使う必要に迫られているわけではないけど、対話型文章生成AIを使ってみたい」という方が楽しみながら基本を学べる内容となっています。