著者:田中 穂積[たなか・ほづみ](1941-2009) 知能情報学、計算言語学。自然言語処理。
NDC:007.636 機械翻訳
【目次】
序文(1989年4月18日 葉桜の美しい大岡山キャンパスにて 田中穂積) [i-iii]
目次 [v-ix]
第1章 はじめに 001
1.1 自然言語とコンピュータ 001
1.2 形熊素解析と統語解析 004
1.3 論理型プログラム言語と自然言語処理 006
第2章 統語解析 009
2.1 統語解析の目的と方法 009
2.1.1 基本用語 010
2.1.2 統語解析アルゴリズム 015
2.2 トップダウン縦型探索法 019
2.2.1 基本アルゴリズム 019
[解析例]
[トップダウン法と左再帰規則]
[縦型探索で全解を得る方法]
[規則の並びと統語解析]
2.2.2 ATN 025
[解析例]
2.3 トップダウン横型探索法 029
2.3.1 ア一リー法 029
[記法の定義]
[アーリー法のアルゴリズム]
[解析例]
2.3.2 アーリー法と統語解析結果の圧縮表現 041
2.3.3 アーリー法と左再帰規則 041
2.3.4 アーリー法とE生成規則 043
2.4 ポトムアップ横型探索法 044
2.4.1 CYK法 045
[CYK法のアルゴリズム]
[解析例]
2.4.2 ポトムアップ・チャート法 050
[逐次型チャート法]
[解析例]
[並列型チャート法]
[解析例]
[CYK法と並列型チャート法の比較]
2.4.3 チャートの圧縮表現 058
2.5 双方向縦型探索法 060
2.5.1 到達可能行列を用いた左隅分枝法 061
[到達可能行列]
[解析例]
2.6 双方向横型探索法 068
2.6.1 プラット・畝見法 069
[プラット・畝見法のアルゴリズム]
[解析例]
2.6.2 プラット・畝見法と逐次型チャート法の比較 072
2.6.3 プラット・畝見法の高速化 074
2.6.4 統語解析過程の統制 076
2.7 LR(k) 法と富田法 078
2.7.1 シフト・レデュース操作とスタック 080
2.7.2 LR(k) 法 083
[アイテム]
[品詞]
[クロージャ]
[FIRST関数]
[FOLLOW関数]
[GOTO関数]
[アイテム集合の集合]
[LRパーズ表の作成]
[解析例]
[到達可能行列とLRパーズ表]
2.7.3 富田法 098
[スタックの分岐と統合]
[解析例]
2.8 LL(k) 法 104
2.8.1 LL(k) 法のアルゴリズム 106
[LOOKAHEAD関数]
[LLパーズ表]
[解析例]
[LL(k)法の変種]
2.9 CFGの補強と自然言語の解析 109
2.9.1 自然言語の統語解析 109
2.9.2 補強文脈自由文法(補強CFG) 111
2.9.3 補強CFGの実例 115
[ATNGによる文法記述]
[拡張LINGOLによる文法記述]
[DCGによる文法記述]
2.9.4 関係代名詞節の解析 120
[ATNGのHOLD機構]
[HOLD機構と言語理論]
2.9.5 補強CFGと言語理論 127
2.10 統語解析結果の優先度 128
[LINGOLでの優先度の計算]
第3章 形態素解析 133
3.1 形熊素解析と統語解析 133
3.2 形態素解析の目的 134
3.3 膠着語の形態素解析 138
3.3.1 右方向最長一致法 138
3.3.2 字種切り法 139
3.3.3 接続表による形態素解析 140
3.3.4 CYK法を用いる形態素解析 143
[辞書引きによるCYK表の初期化]
[逐次型形態素解析アルゴリズム]
[解析例]
[形態素解析と統語解析の融合法]
3.3.5 ヒューリスティクスが用いた形熊素解析 151
第4章 Prologと自然言語処理 155
4.1 Prolog入門 156
4.1.1 Prologと自然言語 156
4.1.2 用語の定義と同一化 157
[用語の定義]
[同一化]
4.1.3 Prologの基本計算機構 163
[Prologの基本計算機構]
[Prologプログラムの実行例]
[Prologと手続き型プログラム言語]
[Prologと関数型プログラム言語]
[二つのリストを連結するプログラムappend]
4.1.4 バックトラック,カット記号,アサーション 175
[バックトラック]
[アサーションとリトラクト]
[カット記号]
4.1.5 補遺 180
[同一化操作“=”]
[univ操作“= . .”]
[call操作]
[論理和記号“;”]
[trueとfail]
[否定記号“\+”]
4.2 確定節文法DCG 185
4.3 トップダウン縦型探索法とProlog 191
[DCGのPrologプログラムへの変換]
[解析例]
[DCGとATNG]
[補強項による統語解析・意味解析・文脈解析の融合]
[他のDCG記述例とPrologプログラムへの変換]
4.4 双方向縦型探索法とProlog 200
4.4.1 BUPシステムの動作原理 201
[最も単純なゴール節の定義]
[DCGとBUP節]
[解析例]
4.4.2 BUPシステムの高速化 213
[成功した解析結果の再利用]
[成功結果と失敗結果の再利用]
4.4.3 XGS 216
4.4.4 XGSのBUPシステムでの実現 219
[Xリストの構造]
[XGSの変換]
[ゴール節の拡張]
[痕跡を持つ句構造の等位接続]
[スラッシュ記法と英語の疑問文]
[トップダウンな情報伝達]
4.4.5 熟語処理 227
[DCGからトライ構造化辞書への変換]
[辞書引き手続き]
4.4.6 自然言語処琿のためのソフトウェアシステムLang LAB 230
4.5 ポトムアップ横型探索法とProlog 231
4.5.1 SAXシステム 232
[SAXシステムとチャート法]
[SAXシステムの動作原理]
[識別子付きDCGとSAX節]
[解析例]
[SAX節の高速化]
4.5.2 SGLRシステム 242
[actionプログラム]
[reduceプログラム]
[gotoプログラム]
[mergestackプログラム]
[解析例]
[SAXシステムとの比較と今後の課題]
第5章 おわりに 253
付録 形式言語理論で用いる主な用語 [257-261]
参考文献 [263-270]
索引 [271-276]
【抜き書き】
□序文(pp. i-iii)。4段落目の「統語解析に関する最新の研究成果」とは、当時の生成文法のことだろうか。
人類の長い歴史の中で初めて登場した,自立する精神を持つかのごとぎ印象を与えるマシン,それがコンピュータである.コンピュータの本質は記号処理にあるが,最も人間くさい記号の典型は言葉(自然言語)である.従って,コンピュータと自然言語とは生まれながらにして相性が良いと結論することができる.自然言語を機械的に処理する研究は,コンピュータの誕生と共に開始されたと言って良い.そして,コンピュータ技術の目覚しい進展と共に,自然言語処理の研究が次第に活発になってきている.
現在のコンピュータの使用する言語は自然言語とは異なる.〔……〕人間とコンピュータとの間には,使用言語の相違に基づくセマンティックギャップが存在している.自然言語処理の究極の目的は,コンピュータに自然言語理解能力を賦与し,使用言語の相違に基づくセマンティックギャップを解消することにある.それにより,人間に対してより友好的なインタフェースを持つコンピュータの実現が期待されている.自然言語による対話システム,機械翻訳システム,仮名漢字変換システムなどはすべてこの範ちゅうに入る.
自然言語処理には様々な解析が含まれている.解析には,文法や辞書,更には一般常識を用いた推論が必要になる.自然言語を解析することを,一般にパージング(parsing)とよぶ.狭い意味でのパージングは,自然言語の文を構成する単語の品詞の並びが,文法に適っているかどうかを調べることである.これを統語解析(構文解析)とよぶ.統語解析には,文を構成する単語の認定が必要になる.語と語の間に空白を置かない言語の場合には,単語の認定は必ずしも容易ではない(それを理解するために,読者は「にわとりがいる」という文を構成する単語は何かを考えてみると良い).文を構成する単語の認定を形態素解析とよぶ.本書では,自然言語処理の入口に当たる形態素解析と統語解析を中心に説明する.
第2章の前半では,本書で用いる基本的な用語と統語解析の基本的な考え方とを説明する.本書が,自然言語処理を初めて勉強しようとする読者に対する入門書となることを念頭に置いたからである.後半では,統語解析の種々のアルゴリズムを,基本的なものから最新のものまで網羅的に,具体例を用いて説明する.統語解析アルゴリズムは,自然言語処理の他に,プログラム言語の研究から生まれたものも多い.本書では,それらを自然言語処理の観点からもう一度見直し,統語解析と意味解析・文脈解析とを相互に関連させて説明する.これから自然言語処理を学ぼうとする読者も,第2章を読み進むにつれて,自然言語の統語解析に関する最新の研究成果と今後の研究の方向性とを理解することができると思う.もっともこの欲張った目論見が成功したかどうかは定かではない.読者の御批判を仰ぎたいと思う.第2章は,第3章と第4章の理解の前提になっている.
第3章では形態素解析の基本的な考え,形態素解析のための種々のアルゴリズムを説明する.最新の形態素解析の手法が,典型的な統語解析の手法をベースにしていることから,敢えて第2章で統語解析を説明してから形態素解析を説明することにした.
第4章では,第2章で説明した種々の統語解析の手法が,論理型プログラム言語の枠組みの中で自然に実現可能なことを具体例を用いて説明する.そこではPrologとよぶプログラム言語と自然言語処理との整合性の良さを,様々な角度から説明する.第2章で説明した統語解析の種々のアルゴリズムが,Prologに組み込みの計算機構の中に自然に生かされていることを是非見てほしい.Prologは,わが国の第五世代コンピュータ計画で取り上げられた比較的新しい記号処理用(人工知能向き)言語である.〔……〕筆者は,第4章を読まれた読者が,一人でも多くPrologによる自然言語処理の良さを理解してほしいと思っている.〔……〕
第2章から第4章まで読み終えた読者は,この分野の研究に対して,わが国の研究者が多くの貢献をなしていることに気付くかも知れない.うれしいことにこれは単なる偶然ではない.
本書は,自然言語処理のほんの入口を説明したに過ぎない.自然言語処理は本質的に長期を要す研究課題である.本書を読まれた読者が,自然言語処理の分野に興味を持ち,一人でも多くこの未知の分野に参入されることを期待したい.そして本書により,統語解析を越え,意味解析・文脈解析など未解決で困難な問題の解決に立ち向かう読者が一人でも多く現れることを願っている.〔……〕本書では,言語学,心理学との関連についても触れたつもりである.将来の自然言語処理は,計算機科学の研究だけでなく,言語学,心理学,哲学の研究から多くを学ばなければならない.〔……〕1989年4月18日
葉桜の美しい大岡山キャンパスにて 田中穂積