ChatGPTは文字コードをどのように解釈しているか

土屋俊介氏:こんにちは。先ほど、発表が4分だと知った土屋です。PR TIMESというところで、機械学習のインターンをしています。

(スライドを示して)昨今、ChatGPTというものがメチャメチャはやっていますよね。私は使っていく中で、(ChatGPTが)文字コードをどのように解釈しているかが気になりました。なぜそんなニッチな話が気になるのかというと、自然言語処理とWebに関わっている以上、文字コードに関するプログラムをよく書くんです。その関係で気になったので調べてみました。

(スライドを示して)みんな知っているかもしれないですが、文字コード(と)はASCIIやUnicodeなどの、文字と数値を1対1に対応させることでコンピュータが処理できるようにするシステムのことです。

ChatGPTはUnicodeのどの部分を日本語と認識しているのか

というわけで、「Try/Catch!」でやってみようということで、こんなことをやってみました。

(スライドを示して)まず環境作成からですね。20$を払いたくなかったので、プログラムを作成しました。

ChatGPTに日本語の部分を質問してみました。予想としては、日本語のひらがなや、カタカナ、常用漢字を出してきそうだなと予想していました。

(スライドを示して)今調べてみたら、こんな感じでした。おもしろいのは「Fullwidth」というもので、これは全角英語なんですよ。英語圏の人はたぶんASCIIで使うから入らない。おもしろいなと思いました。

あと絵文字が入っていないんですよね。絵文字は日本の携帯の会社が作ったと思うのですが、それが入っていない(という)のは、絵文字の国際化を感じてエモくなりました。

(スライドを示して)Unicodeのカタカナの実装ですが、先ほどのやつはアイヌ語用に拡張されたカタカナ拡張が含まれていないので、注意が必要です。

ChatGPTは括弧を抽出できるか

そして(次に)、ChatGPTに括弧の処理を聞きました。なぜこれをやりたいかというと、実は括弧は100種類以上あって、メチャクチャ多いんですね。ですが括弧だけを抽出しようとすると、全部Unicodeを出さないといけないんですよ。CSVにできたらメチャクチャいいなと思ったので聞いてみました。

なんか微妙な結果でした。これは100種類ないですね。

「足りないぞ」と言ったら黙っちゃって、ちょっと悲しい感じになりました。

実技もやらせてみたのですが、この感じだとちょっとできていないですね。

ChatGPTは旧字体と新字体を変換できるか

最後に、旧字体と新字体を変換できるかを試してみました。これは何が問題かというと、日本語には旧字体と新字体があるのですが、それぞれ文字コードが違うので、アプリケーション上で問題が起こります。

例えば検索システムで自分の名前が出なかったり、あとは、同じものが違う文字コードと見なされるので、重複してリコメンドされちゃったりすることがあるんですね。これの変換も気合でやっている人が多いのですが、これがChatGPTでできたらとてもうれしいですよね。やってみました。

なんかできちゃったんですよ。見てもらえばわかると思うのですが、「會」と「圓」がちゃんと新字体になっていることがわかります。「櫻」も新字体にできています。

もうすべて理解しているのかなと思って正規表現を書かせてみたのですが、これはできないんですよ。

全部出せと命令したら、なぜかあと読みの正規表現に化けました。

このように、文字コードというものは、ChatGPT的にも難しいタスクなのかなと思いました。黒魔術ではあるのですが、一部解決できそうなタスクがあるので、これから自分でもいろいろやっていきたいなと思っています。

これで終わります。