あらすじ
コンピュータと人を結ぶ窓口である入力プログラム(IME)は一見シンプルですが,その言語,特に日本語の扱いにはソフトウェアレベルの数多くの工夫が詰まっています。本書では,いまどきの日本語入力システムで利用されている変換アルゴリズムや機械学習といった技術を紐解きます。また,かな漢字変換エンジンの実装を通じて,いかにして変換精度を向上させるか,効率よく日本語を入力するかを丁寧に解説。広くソフトウェア開発者,プログラマの方々へ,新たな技術が続々と取り込まれているIMEのいま知っておきたい基本を紹介します。
...続きを読む感情タグBEST3
Posted by ブクログ
Web+DB Press Plus 日本語入力を支える技術
変わり続けるコンピュータと言葉の世界
著:徳永 拓之
出版社:技術評論社
本書は、いくつかの時代をまたいで、日本語入力を、解説をしている
1977年最初のワープロが登場してから、半世紀足らずですが、驚異的な進化を続けています。
①から、③までを、本書はカバーしています。④は、現在のGPT-4の内容です。
①日本語がコンピュータに登場した時代
専用ワープロからPCのワープロソフトへ
汎用機で漢字プリンター登場
②PC普及、日本語フロントエンドプロセッサ時代
ジャストATOKvsマイクロソフトIME
③機械学習の登場と、言語モデルの登場(2012年ではここまで)
ディープラーニングの時代、Google日本語入力、音声認識等々
④そして、LLM(大規模言語モデル)、生成AIの時代へ
自然言語処理といわれる、自動翻訳、AIが報告書、小説を書く
■かな漢字変換について
入力された、かなを、形態素とよばれる、単位に分解して、ハッシュをつかって
かなと漢字に変換されていくアルゴリズムの解説書です
いかに速く、辞書を引いて、意味のある、文章に変換するか
メモリをうまく使うための、配列の使い方
文章を,木構造、グラフに分解して、再合成する
そのときの、速度を、コストという要素をもとに、優先度づけしていく
部分問題を解決するために、様々なアルゴリズムが投入されていく
さらに、言語モデルと、機械学習をつかって、変換の精度を高めていく
目次
はじめに
本書を読むに当たって
サンプルコードについて
用語について
謝辞
目次
第1章 日本語と日本語入力システムの歩み
1.1 コンピュータで日本語を扱うということ
1.2 日本語を入力するということ
1.3 日本語入力とかな漢字変換
1.4 日本語入力のはじまり
1.5 かな漢字変換のはじまり
1.6 単文節変換から連文節変換へ
1.7 2強時代の到来~統計・機械学習ベースのアルゴリズムへ
1.8 Web検索各社のかな漢字変換エンジンへの参入
1.9 携帯電話における日本語入力
1.10 まとめ
第2章 日本語入力システムの概観
2.1 ユーザ側から見た日本語入力
2.2 システム側から見た日本語入力
2.3 ひらがなの入力方法
2.4 文字入力フレームワークのアーキテクチャ
2.5 かな漢字変換エンジンのユーザインタフェース
2.6 かな漢字変換エンジンのモジュール構成
2.7 かな漢字変換器の作り方
2.8 まとめ
第3章 かな漢字変換エンジンに用いられるデータ構造
3.1 かな漢字変換とデータ構造
3.2 データ構造とは
3.3 かな漢字変換に用いるデータ構造
3.4 ハッシュテーブル
3.5 カッコウハッシュ
3.6 トライ
3.7 ダブル配列
3.8 LOUDS
3.9 その他データ構造のテクニック
3.10 ライブラリの入手について
3.11 まとめ
第4章 かな漢字変換システムの実装
4.1 かな漢字変換をどうやって実現するか
4.2 グラフの作成
4.3 最短経路問題を解く
4.4 単語間の線の距離を決める
4.5 学習用のデータを作る
4.6 まとめ
第5章 統計・機械学習のアルゴリズムとその応用
5.1 機械学習とは
5.2 二値分類
5.3 構造学習とかな漢字変換
5.4 構造化SVM
5.5 条件付き確率場(CRF)
5.6 統計的かな漢字変換とは
5.7 言語モデル
5.8 かな漢字モデル
5.9 変換精度を評価する
5.10 変換誤りへの対処
5.11 まとめ
第6章 日本語入力のこれから
6.1 日本語入力の未来予想
6.2 予測入力
6.3 かな漢字変換器の改良に向けて
6.4 今後の学習に向けて
6.5 まとめ
付録
A.1 数学的な基礎知識
A.2 確率の基礎知識
A.3 学習アルゴリズムの歴史
A.4 機械学習を分類する
A.5 いろいろな学習アルゴリズム
A.6 CRFの目的関数の勾配の導出
索引
出版社サイト
ISBN:9784774149936
判型:A5
ページ数:320ページ
定価:2570円(本体)
2012年03月05日初版第1刷発行
Posted by ブクログ
日本語入力(かな漢字変換)の基本技術の解説本。ここ数年で、最短経路問題としてビタビ+機械学習のアプローチで実用化が進んでいる様子。パーセプトロンや、(構造化)SVM、CRF等の解説もあるので、日本語入力に限らず、一般的な言語処理・機械学習の技術書としてもオススメ。
Posted by ブクログ
* 全体的にとてもいい本だと思った。筆者の知見を伝えようという意欲が感じられた。
** それぞれ説明に入る前に必要性について言及するように気をつけているように感じた。
* 今後も何度か読みなおすことになりそう。
* 付録に学習アルゴリズムの適用順序が書いてあったりするのもよかった。
* 3章のデータ構造辺りだけ、なんだか曖昧な感じがしたのが残念。
Posted by ブクログ
擬似コードがたくさん載っていてわかりやすい。
また、アルゴリズムの説明が多いので、深くまで日本語入力の仕組みをしることができる。
日本語入力を勉強する人だけでなく、自然言語処理を勉強する人は読むべき本。
Posted by ブクログ
NLP系の本は敷居が高くて敬遠していた。
しかし、少しづつこの辺を理解できるようになってきたし、
ちょっと検索などでN-Gramや辞書などを知る機会があったりNLPerとの交流などを経験して、ついに読んでみた。
日本語入力における処理の問題や様々なグラフの考え方、ビタビアルゴリズムなど、以前に比べてだいぶすっと入ってくるようになった。
SVMや構造化SVM、CRFなどについても詳細に言及されていて良書。
まあ、執筆陣を見てもそれは伝わるか。
とりあえず、自身の成長を少しだけ感じられて良かった。
■目次
★第1章 日本語と日本語入力システムの歩み
1.1 コンピュータで日本語を扱うということ
1.2 日本語を入力するということ
1.3 日本語入力とかな漢字変換
1.4 日本語入力のはじまり
1.5 かな漢字変換のはじまり
1.6 単文節変換から連文節変換へ
1.7 2強時代の到来~統計・機械学習ベースのアルゴリズムへ
1.8 Web検索各社のかな漢字変換エンジンへの参入
1.9 携帯電話における日本語入力
1.10 まとめ
★第2章 日本語入力システムの概観
2.1 ユーザ側から見た日本語入力
2.2 システム側から見た日本語入力
2.3 ひらがなの入力方法
2.4 文字入力フレームワークのアーキテクチャ
2.5 かな漢字変換エンジンのユーザインタフェース
2.6 かな漢字変換エンジンのモジュール構成
2.7 かな漢字変換器の作り方
2.8 まとめ
★第3章 かな漢字変換エンジンに用いられるデータ構造
3.1 かな漢字変換とデータ構造
3.2 データ構造とは
3.3 かな漢字変換に用いるデータ構造
3.4 ハッシュテーブル
3.5 カッコウハッシュ
3.6 トライ
3.7 ダブル配列
3.8 LOUDS
3.9 その他データ構造のテクニック
3.10 ライブラリの入手について
3.11 まとめ
★第4章 かな漢字変換システムの実装
4.1 かな漢字変換をどうやって実現するか
4.2 グラフの作成
4.3 最短経路問題を解く
4.4 単語間の線の距離を決める
4.5 学習用のデータを作る
4.6 まとめ
★第5章 統計・機械学習のアルゴリズムとその応用
5.1 機械学習とは
5.2 二値分類
5.3 構造学習とかな漢字変換
5.4 構造化SVM
5.5 条件付き確率場(CRF)
5.6 統計的かな漢字変換とは
5.7 言語モデル
5.8 かな漢字モデル
5.9 変換精度を評価する
5.10 変換誤りへの対処
5.11 まとめ
★第6章 日本語入力のこれから
6.1 日本語入力の未来予想
6.2 予測入力
6.3 かな漢字変換器の改良に向けて
6.4 今後の学習に向けて
6.5 まとめ
★付録
A.1 数学的な基礎知識
A.2 確率の基礎知識
A.3 学習アルゴリズムの歴史
A.4 機械学習を分類する
A.5 いろいろな学習アルゴリズム
A.6 CRFの目的関数の勾配の導出
Posted by ブクログ
文字の種類が英語より遥かに多く同音異義語も大量な日本語のかな漢字変換に関する本。文字列マッチングから機械学習までとにかく内容が濃い!一読しただけでは理解できない箇所も多々あった。今や人々が毎日当たり前に使っている道具に込められたエンジニアの魂に触れられる一冊。
Posted by ブクログ
日本語入力を行う際にどのようなアルゴリズムが使われているか擬似コード付きで解説している本。データ構造の話やプログラム実装時の注意点が説明されていて理解が進む。それでも解説が飛ぶところは理解し切れていない。
Posted by ブクログ
[読んだ理由]==================
タイトルが目についたので。最近の日本語変換ソフトがどういう実装になってるのかの参考になればと思って読んでみた。
[読んだ後の感想]==============
巷に流通しているIMEソフトの実装がどうなってるのかの具体的な話はあまりない(そんなの各企業の秘密だから当然といえば当然か)。それよりは辞書検索やデータ構造、統計機械学習などに用いられ得るポピュラーな手法をひと通り紹介してくれている感じ。大学の学部生が研究の参考に読むのとかに良さそうな内容(巻末の「付録」もそんな感じだった)。
[読書録]======================
■第一章:日本語と日本語入力システムの歩み
連文節変換:ひらがなで分をそのまま入力し、それをそのまま変換する方法。
・単語間の繋がりやすさや、文節自体の文節っぽさをスコア化…n文節最長一致法(接続強度法の1つ)
・隣接する単語の間の繋がりやすさをスコア化…ビタビアルゴリズム(動的計画法の1つ)
parameterのチューニングが肝心。90年代を境に人出によるルール整備から、統計・機械学習ベースに移行。ATOKはATOK2008から。
■第二章:日本語入力システムの概観
日本語入力システムを実装する場合、IMEはアプリケーションとは別プロセスにするメリットが大きい。しかし日本語以外のほとんどの言語では、そこまでする必要はない。日本語だけのためにどこまでやるかは要検討。
■第三章:かな漢字変換エンジンに用いられるデータ構造
セット:ある値が登録されているかどうかを確認出来るだけのデータ構造
マップ:あるキーが登録されている場合はそのキーに対して紐付けられた値を返すことができるデータ構造
ハッシュ値衝突の処理
・オープンアドレス法:2個目のキーに対しては別の場所に格納する。線形探査法など。
・チェイン法:キーの衝突した部分はリンクリストで持つ。
・カッコウハッシュ:先に入っている要素の方をどかす
よく使われるハッシュ関数:FNVハッシュ、murmurハッシュ
トライ:ツリー(木)の一種。テーブルや、ダブル配列、LOUDS、などで実装。
■第四章:かな漢字変換システムの実装
まずグラフを構築し、次にそのグラフの最短経路問題を解く。
ノードやエッジのスコアの学習方法:構造化パーセプトロン、
■第五章:統計・機械学習のアルゴリズムとその応用
構造学習問題:出力どうしの間に依存関係があるような問題。
変換精度の評価:適合率と再現率
■第六章:日本語入力のこれから
Posted by ブクログ
コンピュータの普及した今、いや今だからこそ
まだまだ変化を続ける日本語入力。
自然言語の特性として、絶対的な解法は存在しないのだが
それでもその時その時の実用の範囲で様々な技術が活用されている。
データ構造とアルゴリズムあたりの話は単純に面白かったけど、
その次の章は数式が多くて正直ついて行けなかった。
自分には数学能力が不足してるようだ。
分類や統計や評価なんてのは、チェスや将棋のAI技術もそんな感じなのだろうかと想像する。
資源を活かすためには、いかに切り捨てられる計算を切り捨てるか。
不要だから捨てるのではなく、効果が少ないからと割りきる。
誰もが利用しているシステムで、そんな不安定な試行ふぁ続けられてるのは面白い。
今後も技術的にどんどん変わっていくのだろうけど、
どんなふうに人の感覚まで近づいていくのか、はたまた人の感覚をも超える時が来るのだろうか。
個人がおいそれと足を踏み入れられる業界ではないけれど、
そのアプローチは大いに参考になる。
数式は自分では理解しきれなかったけど、サンプルの擬似コードも随所にあるので時間を置いて読み返してみたいと思う。