文脈自由文法とn-gram関係と統計とか
むぅ。あれか? これってDPマッチングとかもそのうち説明せんとあかんのか?
ちょい確認してたら、少し不安になった。まぁ不安と言っても、「なろう」の技術的、あるいは表現の制限下での不安なんですけど。絵、描くのめんどい。あ、絵はあるっちゃあるのか。でもどっちにしろ「なろう」の表現の制限がめんどい。
あ、今更ですけど、日本語の解析をするには文脈自由文法を使う必要はありません。まぁ結局似たようなものになりますけど「係り受け文法」とかを使うのも便利です。
もう一つ。前々回、「先生 は 自転車 で 学校 に 行k ita」と分かち書きをしましたけど、普通日本語だとこういう分かち書きはしません。このあたり、結構面倒。「先生」だって「この先生きのこるか」みたいに「先」と「生」に分かれてるかもしれないし。「は」と書いてあっても「は」かもしれないし、「歯」かもしれないし、「葉」かもしれないしなどなどなどなど。2、3年前に「東北大停電」みたいなネットの記事の見出しがありましたけど。これ「『東北大』停電」なのか、「東北『大停電』」なのか、見た目じゃわからない。それでも人間はだいたいなんとかしてますけどね。計算機にやらせるのは面倒だったりします。でも面倒なので飛ばします。
では本題。
次の例文を見てみましょう。
This is a pen
This is a book
これを受理する文法を書いてみます。
S -> NP VP
NP -> N
NP -> Ar N
VP -> V NP
Arは冠詞。
普通はもっと面倒だけど、上の二文だけを対象にしてるのでこんだけ。
何も考えずに書いたけど、ちょうどいい例が入ってた。
さて、先に紹介した文脈自由文法だと、確定した書き換え規則を「一度に一つずつ」使って、トップダウンでもボトムアップでも書き換えていきます。
でも、この例の場合だとNPからの書き換え規則が二つあります。普通はもっと他の規則もあるだろうし、他の書き換え規則もたくさんあるわけですが。
で、「一度に一つずつ」というやりかたは、全ての書き換え規則に対して同じ扱いをします。でも、実際には、全ての書き換え規則を同じ扱いなわけはありません。「同じ扱い」というのは、ここでは「その使用頻度が同じ」という意味と思ってください。
そこで、処理を平均としては速くするとか、よりもっともらしい解析を可能にするとか、そういう理由があって、書き換え規則に確率をつけたりもします。
まぁ、
0.3: NP -> N
0.7: NP -> Ar N
みたいな感じ。
これできっちり説明しようとすると、うーむ。まぁ今はそういう「確率文脈自由文法」というものがあると思っておいてください。
次、次。
言葉を分析するさいにはn-gramというものもよく用いられます。
n-gramのnには、1とか2とか3とか4とか5とか入ります。
これについては「宮沢弘の科学エッセイ」の「人間は考えているのか?」[*1]の下の方で、アルファベットを例に書いたことでもあります。
上の二つの例文だと、1-gramは、「this」「is」「a」「pen」「book」の単独での出現確率です。
2-gramは「this」があったときに、次に「is」が来る確率。
あるいは「is」があったときに、次に「a」が来る確率。
以下同様
3-gramは「this」と「is」があったときに、次に「a」が来る確率。
あるいは「is」と「a」があったときに、次に「pen」が来る確率とか「book」が来る確率。
4-gramは「this」と「is」と「a」があったときに、次に「pen」が来る確率とか、「book」が来る確率
この後も、5-gram, 6-gramとずっと作れるけど、以下同様。
これ、nの数が増えるほど、精度みたいなものはよくなります。そこを確認するには単語を相手にするよりアルファベットだけを相手にする方が確認しやすくなるので、「人間は考えているのか?」ではアルファベットを例にしときました。
文脈自由文法を書くのも大変ですが、n-gramはn-gramで大変です。
たとえば、ある言葉に3万個の単語があるとしましょう。
1-gramだと3万個の単語についての表を作ればOKです。まぁ信頼できる表を作るのに、膨大な試料が必要ですが。この試料をコーパスとか呼びます。最近コーパスに基づく辞書とかいう言いかたを聞いたことがあるんじゃないかと思いますが、そのコーパスです。で、そのコーパスの実態は、まぁ何でもいいというか。新聞とか小説とかwikipediaとか、そもそもwebが使われたりします。もう単純に量が多いほど嬉しいという世界です。質より量。ともかく量。
次に2-gramだと、3万 x 3万 = 9億の項目からなる表を作ります。
3-gramだと、3万 x 3万 x 3万 = 27兆の項目からなる表を作ります。
はっはっは。まぁ理想を言えばの話ですが。実際には、まず出てこない組合せなんてのもあるわけですが。で、その「まず出てこない組合せ」も、解析対象としてはもしかしたら出てくるかもしれないわけです。困ったもんだ。そのあたりは3-gramになかったら、2-gramを使ってとかまぁ何とかしようとします。
で、解析する際には4-gramとかの方がもっと嬉しかったりするわけですが、9億の項目の信頼できる確率の表を作るのに必要なコーパスの量や、27兆の項目の信頼できる確率の表を作るのに必要なコーパスの量もかなりのものになることは想像に難くないとおもいます。なので、ないわけじゃないですが4-gram以上は、そもそも表を作るのが難しかったりします。案外3-gramでもなんとかなるしね、という面もありますが。
ま、こっちを使った解析も……うーむ。やはり必要かなぁ。
ところで、お気付きでしょうか。文脈自由文法ではNPとか句に抽象化のようなことをしています。それに対しして、今紹介したn-gramだとそういう抽象化はしていません。前々回紹介した書き換え規則には「NP → NP と NP」とかありました。これ、まんまの再帰によってNPを構成する単語の数が無限に増やせます。
そうなると、n-gramでちゃんと解析するのって……と思われるかもしれません。まぁ確かに無理があります。
じゃ、どうするかというと、単語と句を組み合わせたn-gramを作るという方法があります。
えーと、ピダハン語という言葉があります。それを使う民族の文化は滅亡の危機に瀕していますが。
ところで、人類学関係も言語関係も、研究している人は、その対象には不干渉という立場を取っています。よく知られている例だと、ドゴン族のシリウスの伴星の話とかあります。干渉しちゃうことで、観察できなくなっちゃう。もうね、「干渉しちゃあかん」というのを身に染みて経験してるわけです。
なんで、現在できることと言えば、ともかく「記録を残す」ことだけです。ピダハン語に限らず、絶滅の危機にある言葉はたくさんあります。なので、そっちの方をやっている人は、とにかく記録を取りまくってるみたい。
というわけで、ピダハン語の話に戻ります。ピダハン語、話題になってますね。文脈自由文法って再帰でなりたってるじゃないですか。でもピダハン語には再帰がないらしい。謎です。下手をすると、普遍文法が覆るかもしれない。今までのところうまくモデルが作れていそうなのに。
でも、そのピダハン語を使っている民族に、ピダハン語を使い続けろ、外からの文明なんか受け入れるな、そんなことは言えません。記録も、もう今はどうなんだろうなぁ。
まぁ言葉の科学としての落しどころとしては、再帰は潜在的なものであって、ほとんどの場合顕在化しているけど、顕在化しないこともあるというあたりにうまいこと落ち着いてくれると、みんなハッピーなんですけどね。
あはは。言葉の科学とか言ってたけど、案外これ面倒だな。
*1: http://book1.adouzi.eu.org/n9931cp/5/




