2020年版。SKKでGoogle日本語入力の辞書を使う

だいぶ時間経過してるけど、今の状況どうなんだと調べてみた。

SKKGoogle日本語入力

日本語IMEは、連文節変換がフツーである。連文節変換は、文章を頭から文末までばーーーっと入力すると、文字や単語の区切り、「てにおは」や品詞の種類を解析して、単語は適宜で漢字やカタカナに変換してくれる仕組み。連文節変換の精度が、すなわちIMEの評価でもあった。WindwosのMS IMEとか、Google日本語入力ATOKMacことえり、などなど多々ある。

SKKは日本語IMEのひとつ。SKKは、文字や単語の区切り、「てにおは」や品詞の種類の解析は人間にやらせて、ひらがなを漢字に変換する単語変換だけやるという、人と機械の責任分界点をズラしたことに設計上の特色がある。実装の元祖はEmacsのDDSKKで、Emacsの外では使えない制約がある。連文節変換をめちゃめちゃ頑張って変換精度を上げようとする数多のIMEと異なり、キーバーインドや操作性を再現させて、OSやプラットフォームの作法に従うだけで移植ができるため、 *nix, Windows, Mac に移植されている。(簡単に移植できるわけではない)

SKKの多くの実装では、SKK自体がローカルファイルを辞書として読むことによる変換だけでなく、SKK辞書サーバーというものを別途起動させて利用できるようになっている。

qiita.com

ところでGoogle日本語入力は、Google利用規約に則って収集した猛烈な量のデータを活用し、日本語としての行儀の良さとか正しさは放り投げて、インターネッツ的な実用に振り切った連文節変換を実現している。SKKを使っていると、流行り言葉はどうしても変換がダルくて、スパッと出るGoogle日本語入力が羨ましくなることが多々ある。

www.google.co.jp

Googleは、Google日本語入力のために用意しているGoogle側のサーバーAPIを公開している。

www.google.co.jp internet.watch.impress.co.jp

話を繋げてると、SKK辞書サーバーを作り、その中身ではGoogleAPIから変換結果を貰う実装が可能である。これをRubyで実現したのが以下であった。

blog.sushi.money

というのが2011年までの話で、長かったが、2020年の今はどうだろう。

Mac & Windows なら Rubygoogle-ime-skk

そこそこ年月が経過しているのに、今でもRubyインタプリタを手元に入れれば gem install で入るし、起動して利用できる。なので MacWindows では、これ使ったらよいですねという話である。

Ubuntu なら yaskkserv

C++で実装された yaskkserv というSKK辞書サーバーが存在してる。これもGoogleAPIから変換結果を取ってきている。 *nix 向けに実装されてる。根性でmake installしてもよい。Ubuntuならaptに用意されている。他はわからないけど、パッケージマネージャーから簡単にインストールできそうな気がする。

github.com umiushi.org

Ubuntuなら yaskkserv を apt で入れて使うのが、現時点で最も簡単な、SKKGoogle日本語入力の辞書を使う方法である。

$ sudo apt install yaskkserv

設定ファイルは /etc/default/yaskkserv に置かれるので sudo vi などしてイジる。

起動停止は init スクリプト経由で操作できる。

$ sudo /etc/inti.d/yaskkserv status
$ sudo /etc/inti.d/yaskkserv restart
$ sudo /etc/inti.d/yaskkserv status

ansibleならこんな雰囲気でセットアップできる。

github.com

ibus-skk の設定画面で、SKKサーバーとして localhost:1178 を追加したら使えるようになる。

f:id:sasasin_net:20200606184442p:plain

今後はどうなるだろう

  • Googleが、APIを有料にするとか、APIトークン必要にしますよとか、APIに破壊的で非互換な変更を入れたり、APIを停止したら、もう無理でしょう
  • Rubygoogle-ime-skk は、いつの日か、Rubyシンタックスや何か互換性の問題で動かなくなるだろうけど、たぶん誰かが直す、OSSなんだし
  • yaskkserv は、今後も特に何もなく使えそう
  • yaskkserv の作者が、Rustで yaskkserv2 というのを製作中なようで、座して待つ。

github.com