あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

日本語入力ソフト・日本語変換エンジンに関する色々。歴史とかオンラインIMEとか

MozcのビルドやAnthyの辞書強化などをしたことで、ちょっと日本語入力ソフトあるいは日本語変換エンジンに興味が出てきた。

https://www.ospn.jp/osc2016-kyoto/pdf/OSC2016_Kyoto_openmanyo.pdfwww.ospn.jp

www.slideshare.net

同じ著者、組織のものだと思う。

日本語入力ソフトの歴史とそれぞれのソフトのアルゴリズムについて説明されている。

Anthy以前:
●1987年:FreeWnn
●1990年:Canna
●2001年:Anthy

今時のかな漢字変換
●2010年:Mozc
●2013年:libkkc

という感じでの変遷があるようだ。

実際にはSKKやPRIME、そしてもちろんMS IMEなどもあるのでもうちょっと複雑なのだろう。

FreeWnnは今でもAndroidの日本語入力アプリのベースに使われていたりする。

Wnnって「うんぬ」って読むんだ。

知らなかった。

Cannaはバージョン2とか3あたりの初期のPuppy Linux日本語版では標準の日本語変換エンジンだった。

その後はAnthyに置き換えられた。

また、有志の人がrootで使えるMozcのSFSファイルが提供されており、それを使っている人が多いと思う。

あくまでもこのスライドを作った人の主観な訳だが、Anthy以前と以後で別れている。

Anthyは京大マイコンクラブで開発され、IPAの平成13年度未踏ソフトウェア創造事業として採択されている。

今では主要な開発者は身を引いており、ほぼ開発終了となっているようだが、Debianがメンテナンスを引き継いでいるのだそうだ。

Uim を使って日本語を入力 - ArchWiki

Teams/DebianAnthy - Debian Wiki

DebianベースのUbuntuで現在でも、ibusuim、fcitxでAnthyが使えるパッケージが提供されているのはそのためなのかも知れない。

Mozcが使えないという事態が起こったとき、セカンドチョイスとして考えるのはやはりAnthyだと思う。

Cannaよりも変換精度が良くて、使いやすいということで選ばれてきたのだろうと思う。

また、初期に提供されたMozcは、Windows向けに提供されていたGoogle日本語入力に比べて、辞書が貧相だったのか変換精度が悪かった。

今ではその辺の問題もほとんど気にならなくなったが、それ以前はAnthyを選ぶ人も少なくなかったと思う。


さらに使いやすくすることを目的にModified Anthy (anthy-ut)というものも作られていた。

Anthyはほぼ開発終了なので、今でもModified Anthy (anthy-ut)やG-HAL氏のパッチを当てたAnthyというものは、元のAnthyよりも優れているのだと思う。

この前、Anthyの辞書を強化して随分と使いやすくなったが、このModified Anthyをちょっと使ってみたい気もする。

憩いの場のPPAリポジトリにあるのはUbunt 13.04で、しかも32bit版のパッケージのものしかない。

使おうと思ったら、自分でパッチを当ててビルドする必要がある。

Anthyがおバカになる理由は入力語句を学習したファイルについて、後に入力された語句によって前の学習が削除されることにあるとの考えがある。

後の語句の解釈と学習が有効なら、より精度が上がるのだろうが、逆だった場合に前の学習結果が消えてしまうことで精度が下がるということのようだ。

そのため、Modified Anthyでは学習ファイルのサイズを大きくするとか学習時の文章の解釈の変更などの改良がされているようだ。

同じ考えで、通常のAnthyでも以下のような対応作があるらしい。

マスタカの ChangeLog メモ / Anthy

これは学習語句を記録しているファイルについて追記はできるが削除はできなくするという方法らしい。


日本語入力cannaを現代に蘇らせる アホな評判もなんのその - Linux

この人のように辞書さえしっかりしたものを用意すれば、Cannaの方が良いという人もいる。

Cannaは16.04でもパッケージは提供されているようで、使おうと思えば使えるのかもしれない。

Puppy LinuxではCannaなのかkinput2scimの関係なのか、アプリの入力欄で方向キーなどいくつかのキーを押した場合に動作がおかしくなるということがあった。

変換精度以外のところで不具合があるようだとちょっと普段使うのは躊躇してしまう。

ここにも変換エンジンの歴史が書かれているので勉強になる。

MozcはAnthyとPRIMEの開発者が作ったものだというのはとても興味深い。


SocialIME(2016年にサービスを終了したそうだが)などネットワークごしに利用する日本語入力ソフトもある。

特にブラウザ上で使えるオンラインIMEは、海外のパソコンなど、日本語入力が使えないOS、マシン環境などで日本語で文章を入力する時にはこれを使うのが便利だ。

入力した文字や文章がネットワークを通じて外部のサーバへ送信されてしまうので注意が必要だ。

有名なものとしてAjax IMEというものがあった。

ChaSen.org

あったのだが、今調べてみたら本家のAjax IMEは「Internal Server Error」で使えなくなっていた…。

そして、なんとJavascriptを使ってローカルで日本語変換ができるタイプのAjax IMEが作られていた。

Ajax IME: Web-based Japanese Input Method

文章を変換して変換がおかしくても方向キーでおかしい部分に戻ったり文節を区切り直したりすることができないようだし、長音を表す「ー」を入力するとスペースで変換してくれないなど、決して便利とは言えないが、短い文節ごとに変換するなら十分に使える。

ブラウザ上でローカルでもこれだけのことができるようになっているのだなと感心した。

もう一つ、ブラウザで使えるもの、あるいはネットワークごしに入力データを送信することで使える日本語入力で有名なのはGoogle Japanese Inputである。

Try Google Input Tools online – Google Input Tools

こちらは文節ごとに変換候補が出て、方向キーで文節を移動でき、かなり使いやすい。

Mozc,Google日本語入力と同じ技術が使われているのだろうから、変換精度も高い。

絵文字などの特殊記号が使えるところも魅力だ。

この機能を使うAPIが公開されており、それを利用したソフトウェアもたくさんある。

SKKの辞書として使うことで変換精度を大幅に向上させているものもあるようだ。

この他、Baidu IMEもオンライン版がある。

オンライン IME | Baidu IME - 日本語入力システム -

「オンライン IME を起動」というボタンを押すとWebページ内にローカルアプリと同じようにIMEツールバーが表示されるのがおもしろい。

顔文字が入力できたり、「記者が汽車で帰社した」が一発で変換できるところも注目すべき点だ。

ローカルアプリにも関わらず、パスワードやクレジットカード情報などを含む入力データの不正送信事件を起こしたBaiduのものなのでちょっと怖い気もする。

直接関係ないが、Android端末の黎明期にいち早く登場し、とても使いやすかったSimejiがBaiduに買収され、入力データの不正送信事件を起こしたのは残念だった。

直接、使えるデモページは無いが、Yahoo!Japanの変換ソフトもAPIが公開されている。

テキスト解析:かな漢字変換 - Yahoo!デベロッパーネットワーク

それを利用していると思われるWebサービスの一つがこれ

Japanese IME

これもかなり変換精度が高い。


冒頭のスライドなどでも指摘されているように、現在ではMozcあるいはGoogle日本語入力一択といった状況にあるように思う。

確かにWindowsでもLinuxでもAndroidでも使える上、変換精度もとても高い。

これさえあれば何もいらないという感じだ。

ただちょっとさびしい気もする。

改めてMozc以外の日本語入力ソフトを利用するとメモリ消費量の少なさや入力の手軽さのような使い心地の違いがある。

uimscim、fcitxといった入力メソッドとの相性、入力対象のアプリとの相性もあって、スポット入力がちょっとおかしいなどそれぞれの変換エンジンでちょっとした不具合やクセもある。

変換エンジンそのものの不具合や能力の問題ではないのでそれで変換エンジンの良し悪しを評価するのはちょっとフェアでは無い気もするが、使用する際の使いやすさの問題は小さくない。

日本語入力ソフトにはそれぞれ特徴があって使っていておもしろいというのもある。

SKKなどは代表的なものだろう。

漢字とひらがなの切れ目を自分で指定するのは独特で、変換ソフトがひらがなの羅列から漢字にすべき語句とそうでない語句、送り仮名などを判断する必要がなくなるので、構造がシンプルで動作も軽いソフトになっている。

私も一時期、使っていた。

特にAndroid版のSKKはおもしろかった。

http://ray-mizuki.la.coocan.jp/software/skk_jp.htmlray-mizuki.la.coocan.jp

バージョン2.3あたりまでを対象にしているので今でも使えるかどうか分からない。

バージョン2.3のころにはあまり良い日本語入力ソフトは無かった。

しばらくしてGoogle日本語入力もでてきたが、古い端末には重すぎた。

メモリが足りなくて、入力先のアプリが落ちたり、入力にものすごく時間がかかったりした。

特に今、使っているアプリがGoogle日本語入力が起動したがために落ちるというのは、まったく本末転倒だった。

もともと古い端末で使えるものではなかったのに文句を言うのもおかしいが。

SKK for Androidは軽くてちゃんと使えば変換も適切で使いやすかったのだ。


AndroidでもGoogle日本語入力が多く利用されていると思うが、スマホに最初から搭載されているものを使っている人もいるし、メモリ消費量や処理速度の関係で軽さを求める人もいる。

そのこともあってか、PCとは違って結構、色々な日本語入力アプリがある。

もっとも、変換精度向上よりも入力方法に工夫をこらしているものが多い印象だが。

ベースがWnnのものが少なくないのも興味深い。

色々、試してみると結構、楽しい。

PCもそういう選択肢があると良いと思う。


Mozcを使っていて思うのは、MozcやGoogle日本語入力が一般的になってから、入力スタイルが変わったように感じることだ。

サジェスト機能、ATOKでは推測変換とか省入力機能というらしいが、数文字入力した段階で辞書や過去の入力データから可能性の高そうな単語や短い文章が出てくる機能がある。

これがあることで、入力時間が短縮され、サジェストされる範囲の短い単語や文節をすいすい入力していくスタイルになった。

以前の、長々とひらがなのまま文章を書いて、スペースキーや変換キーを押して文章全体を変換させて、変換時間が遅いことにイライラし、誤変換や文節の区切りのおかしさに腹を立てながら、修正していくという入力スタイルは一体何だったのだろう。

サジェストするにも文章の解析やMozcの場合は検索ワードの分析が必要だろうが、サジェスト機能が搭載、充実していれば、連文節の変換精度の高さなどはあまり問題にならないかも知れないと思う。

AnthyCannaにもそういう機能があれば、Mozcにこだわらなくても良くなるかもしれない。

Google日本語入力は検索ワードからいろいろ学習しているのでたまにとんでもない変換候補がサジェストされるようだが・・・。

Google日本語入力の一生使わないような予測変換が不意打ち過ぎる - Togetterまとめ


全く新しい日本語入力ソフトがないかというとそうでもない。

2013年、新しい日本語変換エンジンとしてlibkkcとそれを利用した入力ソフトが出てきたそうだ。

Ubuntuではibus-kkcとしてしかパッケージが提供されていないようだが、fcitxで使えるならちょっと試してみたい。

最近はAIで変換精度の向上をはかる試みもあるらしい。

ニューラルかな漢字変換 - Qiita

また、WnnAnthyを生み出した京都から新しい日本語変換ソフトも登場している。

www.slideshare.net

Releases · hashimom/Genji · GitHub

こういうものを使った使いやすい日本語入力ソフトが出てくると、もしかしたらMozc一強の勢力図は変わるかも知れない。


こんな感じで、ちょっと色々調べてみた。

日本語入力ソフトの歴史はとても興味深かった。

やっぱりMozcが出てきたことでそれを使う人が圧倒的に多くなって、そちらで不満もないものだから、その他の日本語入力ソフトに対する需要が少なく、多くのものの開発が止まってしまっているものが多いのは残念だ。

しかし、少ないものの新しい日本語入力、日本語変換エンジンも出てきていて、期待ができそうということもわかった。

日本語入力ソフトと言っても奥が深いものなのだということがわかった。


数年前にはLinux向けのATOKもあった。

Linux向けATOK(Yahoo!ショッピング)

Linux向けATOK(Amazon)

2007年の製品で、さらに32bit向けしか提供されていない。

今でも根強い支持があり、何とか新しいバージョンのLinuxディストリビューションでも使いつづけようとしている人たちがいる。

よほど使いやすいんだろうなと思う。

Linux向けATOKが再び発売されることはあるのだろうか。

広告を非表示にする