post Image
コロナ社「文脈解析」本のレビュー

はじめに

自然言語処理シリーズの「文脈解析」本を手に入れたので、早速レビューします。
自分自身は、大学院の頃に自然言語処理を専攻していて、文の感情を推定する研究を行っていました。
文脈解析に関しても興味を持っていたのですが、結局手を付けられずにいたのでこの機会に読んでみました。

文脈解析

言語処理とは

言語処理は、人の言葉の意味をコンピュータに理解させる処理のことで、
いわゆる、最近流行りの人工知能技術の一分野に相当するものです。
この本は、その中でも「言葉の意味」に焦点を当て、
意味とはどういうもので、コンピュータにどのように解かせるかについて説明しています。
言語処理をやったことない人でも読めるように分かりやすく書いてあります。

本で扱っている内容

「述語項構造解析」「共参照・照応解析」「談話構造解析」の3つの内容を扱っています。

それぞれを簡単に説明すると、「述語項構造解析」は例えば、TOEICの本である文を読んでいる時に、
その述語の主語が誰か、目的語がどれかといったものをコンピュータに当てさせる処理のことです。

「共参照・照応解析」は例えば、Stack Overflowを見て頭を悩ませているところに、
代名詞のitがでてきた際に、それがなにを指しているかをコンピュータに当てさせる処理のことです。

「談話構造解析」は例えば、小説を一文一文ゆっくりと読んでいる時に、
それらの文がどういう関係で繋がってるかをコンピュータに当てさせる処理のことです。

この本では、これらを総称して文脈解析と呼んでいます。

感想

全体的な印象としては、実例が豊富に用いられていて、
それぞれの章でどんな問題を解こうとしているかが非常に明快に書いてあり読みやすかったです。
実際にツールで解析を行った際の結果も載ってており、処理のイメージが湧きます。

ただ、それぞれの問題をどういった手法で解くべきかの考察が薄く、
機械学習などの最近の手法で解く際にどういった課題があるかを明らかにしてほしかったです。
それを補うという意味で、同シリーズの「言語処理のための機械学習入門」と一緒に読むとよいかもしれません。

各章のレビュー

「述語項構造解析」

この章は、他の章への橋渡しになっており、”意味”をどう解釈するべきかについて詳しく書いてあります。
その中で、述語とその項(主語や目的語など)を特定する問題を定義しその難しさを実例を用い説明してあります。
日本語ならではの難しさがあることもよく分かりました。
ただ、色々と課題が列挙されている割に、各課題にどう対処するかあまり書かれていなかったのが残念です。

途中から、過去の研究でコンピュータにどう解かせるタスク(問題)として定義されてきたか述べてあります。
それぞれのタスクで、異なる問題設定になっており、どういう点に気を付ければよいか述べてありよかったです。

後半では、表現の裏側にある深層格というものに対し役割を付与するタスクが説明されています。
最後に具体的な文をツールを使って解析させたときの結果が説明されており、よかったです。
述語項構造解析が、含意関係認識などの応用へ繋がっていることもよく分かりました。

「共参照・照応解析」

この章も前章と同じく、共参照解析および照応解析の問題定義が実例とともにしっかり定義されており、
なにをコンピュータに解かせようとしているのかがよく分かりました。
特に、両者の問題は密接に関係したものであり、どこが同じでどこが違うかをベン図で丁寧に説明されていました。
先ほどの、述語項構造解析と比べ、共参照解析はそのタスク設定自体が研究者間で揺れており、
それぞれの思想でコーパス(データ)が整備されてあり、注意しなければいけない点があることが分かりました。

この本は手法を中心に解説をしているのではなく、
研究者の思想に基づいた問題定義と、それに対応するコーパスを中心に説明が書かれています。
どの問題定義にも例外が存在しそれぞれの立場で語られているのはよかったです。

途中から、具体的な解析手法が述べられており、
人の知識に基づいて作られたルールベースの手法の説明が書いてあります。
そして、その課題点を挙げて、それを克服するための機械学習を用いた手法へと説明が展開されています。
特徴量(素性)の話に加えて、学習を上手く進めるための正例と負例のバランスの話などが書かれています。
ここでは、課題の克服のための技術の系譜が説明されており面白かったです。

後半では、日本語によくある主語の省略に対して、
その主語がなにを指しているかを解析するゼロ照応解析の説明が書かれています。
解析手順が書いており、その中でどういった難しさを含んでいるか指摘されています。
そして、その解析が正しいかを評価する方法がかなり綿密に記載されています。
各評価方法の課題点、具体例に対する評価結果などが載ってあり参考になりました。
最後に、照応解析のツールとしてKNPの結果が表示されており解析に対するイメージが湧きました。

「談話構造解析」

談話構造解析は、前章までと比較して幅広い文脈を扱った解析となります。
文章を談話単位という塊に分けた際に、それらが一貫した意味の繋がりを成しているかを解析します。
この処理は昔から考えられていましたが、どういう問題設定として解くべきか迷走していた分野だったと思います。

それを現時点まで、どういう問題定義として世の中の人が解こうと試みてきたかが書かれています。
談話構造解析は、談話単位の分割と、談話単位の分類とに問題が大きく分けられます。
前者の談話単位分割に関しては、接続詞や節が大きな手掛かりとなり一定の成果が得られているそうです。
そのため、内容としては主に後者の談話単位の分類に焦点が当たっています。

そこでは、談話の構造に関する過去の研究が四つ述べられています。
例えば、修辞構造理論では、談話の中心要素とその周辺の関係をボトムアップに推定していく話が書かれています。
他に、論文などの順序性が明確な文章に対しては、議論区画化という方法が紹介されていました。
関係分類の具体的な手法もいくつか紹介されており、
分類問題へ帰着させる方法であったり、部分木の選択問題に帰着させる方法などが述べてありました。

上記は、二つの談話単位がどういった関係にあるかといった問題でしたが、
それよりも広い文脈に対して、首尾一貫性があるかを解析する問題も述べてあります。
この章では分野が未成熟ということで、ツールでの実例の紹介はなかったのですが、
自動要約への応用や、小論文の論理展開の採点など、これからに続く話が書いてあってよかったです。

おわりに

総評すると、それぞれの章で、意味に対する問題定義について丁寧に説明されており、
それを世の中の人がどのように解こうとしてきたかの系譜が書かれており、非常に参考になります。
また、ツールでどう解析されるのか、どれぐらいの精度が出るのかも、示されており良かったです。

言語処理を専門としていない人でも読めるように書かれており、
今後のより深い、人工知能技術の発展に関心がある方には一読の価値があると思います。


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。