ChatGPT (GPT-4)は逆読みがニガテ?【逆読みを生成するPythonスクリプトつき】

仕事で、文字列を逆読み、逆から並べる必要があった。SHINGODZILLAならALLIZDOGNIHS、takashihamajiならijamahihsakatだ。もちろん別にこういう単語の文字を逆順に並べる仕事をしているわけではなく、DNA配列を逆順で並べた論文の図表を作成する必要があったので、そういう操作がしたかったのである。

専門用語ではこの逆読みは倒語anadromeと呼ばれることもあるようだ。「おんな→ナオン」も倒語らしいので微妙に違いそうだ。「逆読み」「倒語」「anadrome」の範囲の微妙な差異をご教示いただける方がおられましたらぜひコメントでご教示ください。ありがとうございます!

ChatGPT (GPT-4)は文字列の操作に長けているという印象があったので、早速投げてみた。

the reversed sequence of "takashihamaji"
(takashihamajiの逆配列を作って)

すると

The reversed sequence of "takashihamaji" would be "ijamahisakat".
(takashihamajiの逆配列はijamahisakatでしょ)

と返された。もちろんウソである。ijamahisakatをもういちど逆にするとtakasihamajiである。hが抜けている。

全然できないじゃん……

冒頭で書いたように、もちろん最初はDNA配列だったのだが、あきらかに違っていたのでローマ字で試したのだ。文字列をいくつか変えて試してみてもそうだった。最初は正しそうな雰囲気の配列を出力するのだが、合間合間でウソを混ぜ込んでくる。

これもhallucinationなのかな? ハルシネーションといえば、事実に対する質問に対して堂々とウソッパチを回答として提示してきやがることとして知られるが、こうしたこともあるのだろう。定義としては決してハズレていないように思う。

おそらくGPT(-4)がやるのは文字列の逐一の変換・演算というよりも、もっとファジーな、文法のような規則をエミュレートするものなのだろう。

仕方ないのでやり方を変えて、Pythonのスクリプトを書いてと言った。

make a python script to generate the reversed sequence of "takashihamaji"

すると即座に組んでくれた。

def reverse_string(input_string):
    return input_string[::-1]

string = "takashihamaji"
reversed_string = reverse_string(string)
print(reversed_string)

これを利用して事なきを得た。

わたしのプログラミング能力は、目的の機能を達成するスクリプトをフロムスクラッチで組む経験がないために発想に苦労するのだが、組まれているスクリプトが大体どう動いているのかを理解することはできる

言い換えるなら、簡単なスクリプトであれば、書いてあるものがだいたいどういう感じで動くか、それが正しそうか、というのは感じることができる。だからChatGPTでスクリプトを作らせて、それを修正したりすることで用を足すことができるようになってとてもありがたい。

この記事が気に入ったらサポートをしてみませんか?