brand new note

ジャズ屋が技術の話をするところ

日本語入力についてざっくり調べてみる

普段CentOSでslack使って色々メモしてると、windowsIME(input method editor)に比べてありえないくらい変換ミスが多いんですね。そんな漢字の使い方しねえだろみたいなのが未だにゴロゴロしてて、中身どうなってんだと。もっとましにならんのかと。あんまり実装力はないけどさすがにこれは困るなあと。というわけで純粋に日本語入力を支える技術が気になって、とっかかりの部分を調べることにしました。


日本語入力技術の祖は40年前

www.toshiba-clip.com

www.atok.com

世界初の日本語入力対応ワープロが登場したのは40年ほど前。「JW-10」は事務机ほどの筐体で、当時の価格で630万円。当時はそもそも漢字を専用システムの画面に出力するための研究もしなければならず、日本語入力の開発は困難を極めたそうです。英語と違うので同音異義語をひとつひとつ辞書データに登録しなければならないし、最適な用語に一発で変換する為の技術開発はそこから何年もかけて行われたものなのです。


本もあるっぽい

日本語入力を支える技術 ?変わり続けるコンピュータと言葉の世界 (WEB+DB PRESS plus)

日本語入力を支える技術 ?変わり続けるコンピュータと言葉の世界 (WEB+DB PRESS plus)

実装に向けた本ではないんですがこんなのもあるようで。2012年の本ですが、評価を見る限り流行の機械学習の入門としても良さそうです。とはいえ中身は結構難しいので読むには多少の数学力が必要です。


キーワード

そもそもなんですが、IMEの開発や変換機能というのは自然言語処理技術の応用なんだそうです。そういえば、ここ数年はスマホだけでなくPCでも予測入力機能が使いやすくなってきましたよね。あれはクラウドからネットの流行語なんかを拾ってくる技術と組み合わせることによって行われるものです。時代の波に合わせて様々な技術が組み合わされてより便利に、しかしより複雑になっているんだなあという印象を受けます。

また、現在自然言語に関する研究の最先端でホットな部分は翻訳機能で、来る東京オリンピックに向けた翻訳技術の改善が進められているようです。調べてて出てきたキーワードがこんな感じ。

自分のCentOSの変換機能の中がどうなっているのか確かめたかっただけなのに、世界は広いですね。なんだか無知すぎてだいぶしんどい。。。

Linuxの日本語入力の実装

本題に戻ります。日本語入力の実装に関する記事が全然見つからない。linuxの日本語入力の設定方法に関する記事はいくらでも出てくるのに。。。

...などと考えてたんですが、結局聞いたことのある単語をふわっとしか理解していなかったのが良くなかったみたいです。

このへんの記事が参考になりそうですね。

そもそも日本語入力を支えている技術には大きく「インプットメソッド」と「変換ツール」の2つがあります。インプットメソッドというのは、文字の種類が多すぎてキーボードが足りない現象を打破するために作られたものです。例えば「sa」って入力したら「さ」になる、これがインプットメソッドの仕事。ツールで言うとibusとかfcitxとかです。で、これだとひらがなしか打てないので入力を変換ツールに渡します。ここで「さ」が「差」になる。これをやってるのがmozcとかkkcとかAnthyです。

f:id:frazz:20180504180100j:plain

恥ずかしながら動けばいいやの精神でやってて、ここが頭の中でぐちゃぐちゃだったんでちょっとすっきりしました。自分の環境ではibusとkkcが使われています。変換ソフトの変遷については上のページにスライドが載せられていますので、そちらが参考になります。

で、実装の部分についてはここを参考にすればいいんだなということが分かりました。はあーなんでここまで来るのにこんなに時間かかっちゃったんだろ。奥が深いですね。