言語処理の分野から見た生成文法の位置づけ

みたいなのを書けば最初っぽいのかもしれない。

言語処理の研究室で一か月ほど過ごして、理論言語学とか、殊に生成文法がどのような位置づけとして見られてるかを簡単に述べておこうと思う。

当初の予定だと、論文を紹介したりできればと思ったんだけど、それは次回以降で。

この記事において、生成文法は僕らが勉強していた統語論と呼ばれる分野と、その周辺を乱暴に包含した意味合いだと思ってくれるとうれしい。

 

 

結論から言うと、ぶっちゃけ生成文法はほとんど言語処理の世界で重んじられていない。ほとんど、というのは、一部チョムスキー言語学観を持つ人もいるからだ。これはまあ当たり前のことで、そもそも生成文法とは畑が違うから、チョムスキーは名前だけ知ってるけど生成文法はよくわからん、なんて人もざらにいる。ただ、安心してほしいのは言語処理をやってる人間も等しく言語に対して魅力を感じていて、なんか、言語の謎を解明したいね、という使命感に駆られているということ。

いつかはコンピューターが言語の意味理解、獲得を可能とし、それを理論言語学的な意味での言語獲得にフィードバックしていければいいなあ、という話はしょっちゅうしている。

そこで話題になるのは、「どうやって理論言語畑の人に言語処理の話を理解してもらうか」といった障壁なんだけど、このブログを通して、なんとなくその壁を削っていけたらと思う。

 

 

生成文法と言語処理の話に戻ろう。

かつて、生成文法自然言語処理に対して影響を及ぼしていたという事実は確かにあるようで、言語にツリーを与えるという発想は(それでも稀にだけど)見ることがある。

たとえばLSTM(ディープラーニングの一種だと思ってくれるといい)にツリー構造を与えることで、意味理解の助けになる、なんて論文もある(さっき見つけた)。

それでもごく一部の人がツリー構造にこだわってるという印象が強く、生成文法はまさに宗教の一派、という扱いである。

科学なんて宗教だし、そんな扱いも畑が違えば当然だなとも思うけど、やっぱりちょっと寂しい。

こちらの分野でツリーというと、やっぱりアルゴリズム的な二分探索木みたいなイメージが強く、どうしても生成文法もある種の「ツール」として見られがちである。

確かにツールだけど、理系の人はどうしても「答を返す関数」みたいに感じてしまってるらしい。

ある言語に対して構造を一意に返してくれるなんて、そんな関数があるなら僕らが知りたいくらいなのに。

 

なんで理論言語学的な考え方があんまり根づいてないのか、というのは割と明白。

大きな違いは、言語処理的にはあらゆる素性を数字にしないとそもそも話が始まらないという点。

統語論のLinearizeあたりの議論でもあったように、生成文法で与える構造は人間が恣意的に決めてる部分がある。

しかも、恣意的に決めている部分がかなり重要だったりする。

たとえば、a prety womanに対してどういう構造を与えるかを考える。

人間が見ればwomanをとりあえずコアミーニングにするか、と構造もすぐにかける。

逆に言えば、コアミーニングが見つからない限り構造はかけない。

機械にはそのコアミーニングを見つけるという作業ができないので、どうしても統計的にそれを推測する、みたいな手法に陥ってしまう。

仮にコアミーニングが見つけられたとしても、その精度は曖昧性に関するものを完全に取り除いても100%になり得ない。所詮コンピューターに言語は理解できていないからだ。

先の例だと、womanをコアに据えてもまだa prety [woman]が決まっただけで、その先でも統計的に考える必要がある。99%の精度でコアを見つけられる手法が仮にあったとして、それでも一文の中で一回くらいはミスをするような確率だと思う。

これじゃ使い物にならない。

 

ということで、人間がコアを発見できるという大前提に立っている生成文法は、「考え方はいいけど、実用的じゃないよね」と二の次にされてしまう。

 

じゃあ、言語処理の分野はどうやって言語を扱ってるのか。

僕らの受けた授業で一番理解の助けになるのはLFGかな。いまはLFGですら古典となってしまったけど。

結局、語の意味ってのを数字にしないといけないので、LFGの記述的な部分も煙たがられる。

そんなことより、単語の共起確率[1]を並べてベクトルにしたほうが、人手で素性を書く必要もないしよっぽど扱いやすい。

言語処理の分野では、極力人間が取り決める部分を排除したいという方向に向かっているので、やっぱり生成文法とは相いれない部分がある。

 

 じゃあ、この先どうやって共存していけばいいのか。

 

…を、この二年間でかんがえられたらいいなあ。

意味役割はかなり熱い分野で、生成文法のそれとは勝手が違うけど、統計的に名詞や動詞のタグ、係り受け(意味役割関係みたいなの)を解析したりする論文はよく見る。

もちろん、理系なので数値勝負なところがあって、いかにして既存の手法より優れた制度で解析できるか、が勝負になっている。

そういう点でも、統語論の我が道を行くっていう感じとはかなり雰囲気が違っている。

 

そんな中、僕は文系らしく我が道を行く精神でがつがつ研究していこうと思う。

精度が出なくても、楽しいと思えることをしたいね。

 

 

まあ、こんな感じでいいんじゃないかな。

とりあえず適当に書きなぐってみたので、何か気になることとかあれば記事中で指摘してください。

まだ勉強中なので、用語は嘘ついてるかも。

 

[1]共起確率 ある単語wが、w \subset sとなるような文sの中で、 w_i (\not= w)と共起する確率。n-gramとかで計算することが多い。興味があればまた今度書きます。