📝

日本語入力システムSumibiの開発 part3:普段使いしながら開発

2023/07/22に公開

Sumibiの普段使いの風景

前回からの続きです。

https://zenn.dev/kiyoka/articles/japanese-input-method-sumibi-1
https://zenn.dev/kiyoka/articles/japanese-input-method-sumibi-2

私はOpenAIのGPT-3.5/GPT-4のAPIを利用した日本語入力システム"Sumibi"を開発しています。
日本語入力システムSumibiの普段使いの様子を紹介します。
日々使いながら、足りないところを補っていくのが日本語入力システムのよい開発スタイルだと考えています。

利用頻度が高い用途から順に紹介します。

コードのコメントを書く

sumibi.elのソースコードのコメントを日本語で書きます。
sumibi.elは日本語入力システムなので、コメントは英語ではなく日本語で書いています。
image.png

コミットログを書く

sumibi.elのコメントログは一応英語で書きます。
MELPAへのプルリクエストなど、メンテナーが英語話者の場合は、コミットログが英語でないと、コミュニケーションができないためです。
日本語のプロジェクトだけでなく、いくつかOSSのコントリビューターもやっていますので、コミットログでは英語が必須です。

コミットログを書く手順は次のような感じです。

  1. まず、ローマ字で書く
hikisuu ga null ni naru bagu wo syuusei shita.
  1. 漢字かな混じり文に変換する
引数がnullになるバグを修正した。
  1. 英語に翻訳する
I fixed the bug where the argument becomes null.
  1. 英語の文章を確認して技術用語ではない単語を修正したり、主語を削除する
Fixed the bug where the argument becomes null.

image.png

英語ブログやOSSの英語ドキュメントを翻訳する

最近翻訳したのは、MELPAのMarkdown形式のドキュメントです。

gpt-3.5/gpt-4はMarkdown構文を解釈してくれていますが、翻訳中にMarkdown構文が壊れてしまうことがあります。
Markdown構文が壊れていないか、少しずつ翻訳しながら進んでいきます。
『小さい範囲を翻訳範囲をリージョン指定しては翻訳』という操作を繰り返して進めていきます。

Sumibiはバックグラウンドで翻訳できるので、複数の翻訳依頼を仕掛けておくことができます。
image.png

Mojoのドキュメントも翻訳しました。
Why mojo
こちらは勝手に公開していいものなのかわかりませんので、翻訳結果はローカルに持っています。

論文を翻訳する。

GPT-4とPaLM 2の技術レポートを翻訳しました。
こちらも勝手に公開していいものなのかわかりませんので、翻訳結果はローカルに持っています。

原文: GPT-4 Technical Report
image.png

原文: PaLM 2 Technical Report
image.png

まとめ

Sumibiの普段使いの様子を紹介しました。
まだまだSumibi単独ですべての文章を入力することはできませんが、もう少し改善を重ねることで実用レベルになりそうな気配があります。
gpt-3.5-turboしか使えない段階では、短い文節の入力(1文字や2文字のちょっとした修正)の変換精度が弱点でしたが、
gpt-4では、かなり性能が上がり弱点も克服されたように感じます。
最近、gpt-4のモデルが全ユーザーに解放されたこともあって、Sumibiがただのネタアプリから実用的なアプリになりました。
今後も色んなプロンプトを試してみながら、改善を続けていきます。

Discussion