あらすじ
コンピュータと人を結ぶ窓口である入力プログラム(IME)は一見シンプルですが,その言語,特に日本語の扱いにはソフトウェアレベルの数多くの工夫が詰まっています。本書では,いまどきの日本語入力システムで利用されている変換アルゴリズムや機械学習といった技術を紐解きます。また,かな漢字変換エンジンの実装を通じて,いかにして変換精度を向上させるか,効率よく日本語を入力するかを丁寧に解説。広くソフトウェア開発者,プログラマの方々へ,新たな技術が続々と取り込まれているIMEのいま知っておきたい基本を紹介します。
...続きを読む感情タグBEST3
このページにはネタバレを含むレビューが表示されています
Posted by ブクログ
日本語入力(かな漢字変換)の基本技術の解説本。ここ数年で、最短経路問題としてビタビ+機械学習のアプローチで実用化が進んでいる様子。パーセプトロンや、(構造化)SVM、CRF等の解説もあるので、日本語入力に限らず、一般的な言語処理・機械学習の技術書としてもオススメ。
Posted by ブクログ
[読んだ理由]==================
タイトルが目についたので。最近の日本語変換ソフトがどういう実装になってるのかの参考になればと思って読んでみた。
[読んだ後の感想]==============
巷に流通しているIMEソフトの実装がどうなってるのかの具体的な話はあまりない(そんなの各企業の秘密だから当然といえば当然か)。それよりは辞書検索やデータ構造、統計機械学習などに用いられ得るポピュラーな手法をひと通り紹介してくれている感じ。大学の学部生が研究の参考に読むのとかに良さそうな内容(巻末の「付録」もそんな感じだった)。
[読書録]======================
■第一章:日本語と日本語入力システムの歩み
連文節変換:ひらがなで分をそのまま入力し、それをそのまま変換する方法。
・単語間の繋がりやすさや、文節自体の文節っぽさをスコア化…n文節最長一致法(接続強度法の1つ)
・隣接する単語の間の繋がりやすさをスコア化…ビタビアルゴリズム(動的計画法の1つ)
parameterのチューニングが肝心。90年代を境に人出によるルール整備から、統計・機械学習ベースに移行。ATOKはATOK2008から。
■第二章:日本語入力システムの概観
日本語入力システムを実装する場合、IMEはアプリケーションとは別プロセスにするメリットが大きい。しかし日本語以外のほとんどの言語では、そこまでする必要はない。日本語だけのためにどこまでやるかは要検討。
■第三章:かな漢字変換エンジンに用いられるデータ構造
セット:ある値が登録されているかどうかを確認出来るだけのデータ構造
マップ:あるキーが登録されている場合はそのキーに対して紐付けられた値を返すことができるデータ構造
ハッシュ値衝突の処理
・オープンアドレス法:2個目のキーに対しては別の場所に格納する。線形探査法など。
・チェイン法:キーの衝突した部分はリンクリストで持つ。
・カッコウハッシュ:先に入っている要素の方をどかす
よく使われるハッシュ関数:FNVハッシュ、murmurハッシュ
トライ:ツリー(木)の一種。テーブルや、ダブル配列、LOUDS、などで実装。
■第四章:かな漢字変換システムの実装
まずグラフを構築し、次にそのグラフの最短経路問題を解く。
ノードやエッジのスコアの学習方法:構造化パーセプトロン、
■第五章:統計・機械学習のアルゴリズムとその応用
構造学習問題:出力どうしの間に依存関係があるような問題。
変換精度の評価:適合率と再現率
■第六章:日本語入力のこれから