📝

日本語入力システムSumibiの開発 part1:開発再び

2023/05/11に公開

日本語入力システムSumibiの開発再び

私は、過去に日本語入力システムを複数開発したことがあります。1作品目はSumibi.orgという名前のものです。Google検索をたどれば以下のような記録が見つかりました。
https://www.itmedia.co.jp/bizid/articles/0911/04/news084.html
Sumibi.orgはローマ字を分かち書きで書くと、日本語の文章に変換してくれるシステムです。
当時は、海外のホテルの英語版Windowsで日本語変換するシステムとして利用されていましたが、私個人はEmacsから日本語を入力するために利用していました。
そのソースコードはGitHubリポジトリに残っていますが、現在は稼働しているサーバーがインターネット上に存在していません。

最新のAI技術の進歩に目を向けると、ChatGPT(GPT-3.5、GPT-4)のような新たな技術が登場しています。このような進化した技術を用いれば、かつては困難だったことが今では実現可能となると感じました。それが新たなSumibiの開発に向けたインスピレーションとなりました。
その間にも開発した作品として、"Sekka"というシステムがありますが、今回の話題とは直接的な関連性はないので、ここでは触れません。

そして今回、私が開発した新たなシステムは、"Sumibi"と命名しました。これは初めての作品である"Sumibi.org"から名称を引き継いだもので、私の開発したシステムとしては3作品目ということになります。

2008年当時の作品(Sumibi.org)

以下のような構成でした。
非常に古めかしい技術で驚きます。
image.png

クライアント サーバー アルゴリズム
JavaScript/Emacs Lisp Apache httpd + Gauche(cgi) + MySQL tri-gram

2023年の作品(Sumibi)

ローマ字を分かち書きで書く入力方法は"Sumibi.org"と同じであるため、"Sumibi"という名前にしました。日本語変換はOpenAI APIを使っています。自前の変換サーバーは持っていません。いわゆるGPTプロンプトエンジニアリングによって、ローマ字を日本語に変換します。
image.png

クライアント サーバー アルゴリズム
Emacs Lisp OpenAI API GPT-3.5/GPT-4

※私はまだGPT-4のウェイトリストに並んでいる状態で、GPT-4は試していませんがEmacs Lispクライアントの設定でGPT-4にすれば利用できます。

GPTを使った開発をしてみた感想

GPTの恐るべきパワー

GPTは自然言語処理のエンジンとして恐るべきパワーを持っています。
はじめはローマ字を日本語に変換するものとして開発するつもりでしたが、「あなたはローマ字とひらがなを日本語に変換するアシスタントです。」というプロンプトをGPTに投げると、なぜか英語の文章も日本語に翻訳してくれることが分かりました。結果的に日本語入力システムの枠を超えて、日本語と英語の相互翻訳もできるシステムになってしまいました。

プロンプトエンジニアリングの生産性が高すぎる

GPTに「あなたはローマ字とひらがなを日本語に変換するアシスタントです。」や「あなたは、与えられた文章を英語に翻訳するアシスタントです。」などのお願いをするだけで、自然言語処理のアルゴリズムを一切書かなくても変換や翻訳ができてしまいます。人間に残された作業はUIを実装するだけです。

人間が一文字ずつ書くという行為は今後も続くのか

時々、私が入力した文章をかな混じり文に変換するだけではあきたらず、勝手に変更したりしてくるので、日本語を自分の手で一文字ずつ書くという行為自体も考え直す時期に来ているかもしれないと思うようになりました。私のような文筆家でもない技術者には、言葉選びに慎重になる必要もないため十分ではないかと思っています。


次回の記事では、GPT-3.5のプロンプトエンジニアリングのことを書いてみたいと思います。

Discussion