構文解析

自然言語処理シリーズ 9

構文解析

本書では自然言語処理の様々な場面で必要となる機械学習,動的計画法,探索法,文法理論など構文解析の基礎技術について解説した。

ジャンル
発行年月日
2017/08/10
判型
A5
ページ数
186ページ
ISBN
978-4-339-02759-4
  • 内容紹介
  • まえがき
  • 目次
  • レビュー
  • 著者紹介

構文解析技術は,機械学習,動的計画法,探索法,文法理論などといった自然言語処理の様々な場面で必要となる多くの技術の上に成り立っている。本書では構文解析の基礎技術についてわかりやすく解説した。

構文解析というのは不思議な研究分野である。日本語や英語といった自然言語に内在する(と考えられている)真の構文構造を見たことのある人間は誰もいない。それでも構文解析を研究する人達は,言語現象に対する観察や内省によって,それらが存在するものとし,その構造をうまく表現するためのモデルやそれを解析するための手法を日々精力的に研究している。

構文解析が多くの研究者を引き付ける理由はなんだろうか。一つの理由は,言語がもつ構造やそれを表現するための枠組みそのものに対する単純な好奇心のようにも思われる。人間の知的な活動を支える大きな柱の一つである言語が,本質的にどのような構造をもっていて,それを計算機でどのように表現できるのか,ということは多くの研究者にとって心躍る話題であろう。もう一つの大きな理由は,構文構造を解析することが,自然言語処理の多くのアプリケーションにおいて有用だと信じられているからである。実際,大量のテキストからさまざまな情報を抽出するためのシステムや,計算機が自然言語で質問に答えるシステムでは,構文解析が入力テキストに対する前処理として利用されることが多い。したがって,構文解析の技術が向上すれば,広範な自然言語処理アプリケーションの性能が向上することになる。
かくも魅力的な構文解析というテーマであるが,ひとたびその分野の研究論文を読もうとすると,初学者は多くの壁に突き当たることになる。構文解析に関する最近の論文の多くは,離散最適化や機械学習,言語理論といったそれぞれ比較的独立に発展してきた複数の分野の知識を前提としていて,ある一つの教科書を読めば必要な前提知識が一通りそろうようにはなっていない。構文解析の研究者は,それらの多岐にわたる知識を論文を読みながら徐々に身に付けていくのだが,それはとても時間のかかるプロセスである。

本書では,理工系の学部3年生程度の知識をもった読者が,構文解析に関係する最近の研究論文を読むために必要な知識を,ワンストップで得られるようなものを目指した。構文解析に必要な機械学習技術などについても,特段の前提知識を必要とすることなく理解できるよう,できるだけ丁寧に記述することを心がけた。著者の力量不足によりその目標がすべて理想的に実現できたわけではないが,構文解析技術に関するまとまった情報を類書では得られない形で提供できているのではないかと考えている。

本書を書くきっかけを与えていただき,また草稿の段階から丁寧に査読をしていただいた奥村学先生とコロナ社の方々に感謝する。能地宏さんには原稿の細かいところまでチェックしていただいた。最後に,週末の稿書きを長きにわたって暖かく見守ってくれた家族に大いに感謝したい。

2017年6月 著者

1. はじめに
1.1 構文解析とは
1.2 なぜ構文解析を学ぶのか
1.3 本書の構成

2. 品詞解析と機械学習
2.1 品詞解析の役割
2.2 機械学習による品詞タグ付け
2.3 隠れマルコフモデル
 2.3.1 確率モデル
 2.3.2 Viterbiアルゴリズム
2.4 最大エントロピーモデル
2.5 最大エントロピーマルコフモデル(MEMM)
2.6 条件付き確率場(CRF)
2.7 構造化パーセプトロン
2.8 ビーム探索
2.9 生コーパスを利用した学習
 2.9.1 自己学習
 2.9.2 クラスタリング
2.10 浅い構文解析
2.11 日本語形態素解析
2.12 英語以外の言語
2.13 近年の動向

3. 句構造解析
3.1 句構造
3.2 文脈自由文法
 3.2.1 CKYアルゴリズム
 3.2.2 Earley法
3.3 確率文脈自由文法
 3.3.1 PCFGを用いたCKYアルゴリズム
 3.3.2 内側外側(Inside-Outside)アルゴリズム
3.4 確率文脈自由文法の拡張
 3.4.1 語彙化
 3.4.2 非終端記号の詳細化
3.5 識別モデルによる再順位付け
3.6 遷移型モデルによる句構造解析
3.7 評価法
3.8 近年の動向

4. 依存構造解析
4.1 依存構造とは
4.2 CKY法
4.3 Eisner法
4.4 MST法
4.5 遷移型依存構造解析
4.6 日本語構文解析
4.7 評価法
4.8 近年の動向
 4.8.1 高次の関係を用いた解析
 4.8.2 疑似非交差解析

5. 文法理論,深い構文解析
5.1 組合せ範疇文法(CCG)
5.2 主辞駆動句構造文法(HPSG)
5.3 深い構文解析
5.4 Supertagging
5.5 文法獲得
5.6 意味役割付与,格解析,述語項構造解析
5.7 Semantic Parsing
5.8 評価法
5.9 近年の動向

6. 構文解析の応用
6.1 情報抽出
6.2 単語クラスタリング
6.3 評判解析
6.4 機械翻訳
6.5 テキスト間含意関係認識

7. 構文解析ツール
7.1 Stanford Parser
7.2 Berkeley Parser
7.3 BLLIP Parser
7.4 ZPar
7.5 SyntaxNet
7.6 Mate
7.7 TurboParser
7.8 MaltParser
7.9 MSTParser
7.10 C&C Parser
7.11 EasyCCG
7.12 OpenCCG
7.13 Enju
7.14 KNP
7.15 CaboCha
7.16 KyTea
7.17 Jigg

8. ツリーバンク
8.1 Penn Treebank
8.2 Prague Dependency Treebank
8.3 Universal Dependencies
8.4 京都大学テキストコーパス
8.5 NAISTテキストコーパス
8.6 BCCWJ
8.7 PropBank

引用・参考文献
索引

読者モニターレビュー(‎@hiro5585様)

 構文解析とは,文の背後にある「構造」を抽出する処理のことを指します。
 例えば,どの単語とどの単語が一つのまとまりなのかであったり,どの単語がどの単語に係っているかなどを見つけることです。
 一方で,抽出した「構造」に「意味」を与えるのが文脈解析です。
今の例だと,ある単語が別の単語に係っている時に,どういう意味のある関係かを推定するのが文脈解析です。
 詳細はこちらに書いたので,詳しく知りたい方はこちらも読んでみて下さい(Qiitaサイト)。

 以下は,要点になります。
 自然言語処理シリーズの「文脈解析」本では,意味の概念やタスク設定などに重きを置いていましたが,この本では現実に解くことに主眼を置いており,手法の話が詳細に述べてあります。
 特に,系列に対する構造を推定する手法が説明されてあり,言語処理などの系列を扱うタスクに対する,機械学習の適用の仕方が学べます。
 内容はまず,シンプルなタスクに対して,機械学習をどう適用できるか説明して,その後に,その手法の課題点を挙げて,どのような改善がされているか説明しています。そのため,ストーリーを追いながら,手法が発展してきた経緯が分かるようになっています。
 「言語処理のための機械学習入門」で説明が少なかった,構造に対する手法の解説が詳しく書いてあり,非常に有益な情報が含まれていると思います。

 主立った章を簡単に俯瞰すると以下のような感じです。
 ①品詞解析と機械学習
 文の各単語に,どのように品詞を割り当てるか説明されてあり,品詞解析を題材にして,機械学習の基礎が学べるようになっています。
 ②句構造解析
 文を入力とし,句同士の包含関係を階層的にまとめあげる処理について説明されています。文をまとめあげるための文法について説明されてあり,実例からその挙動を理解できるようになっています。
 ③依存構造解析
 句同士の関係がどのようになっているかを解析するための手法が書かれており,句構造より更に上位の概念を取り扱う方法について述べてあります。

 この本では,機械学習を現実のタスクにどのように適用するかが書かれてあり,系列に対する特徴量の扱いや,構造の抽出方法など,他書にない内容が含まれています。
 より現実的に問題を解く方法について学びたい方や,人工知能に関するより深い技術を理解したい方に適した書だと思います。

amazonレビュー

奥村 学(オクムラ マナブ)

人工知能関連書籍 特設ページ開設中!人工知能関連の書籍をまとめました。