構文解析

この記事の補足の 3. を読んで「どこか論点がずれている」と思っていたが,どのようにずれているかわからず悶々としていた.やっとわかったので,ここで指摘しておこう.

自然言語では,ひとつの文に対する(文法的な)解釈が一通りとは限らない.たとえば,有名なところで,「ここではきものをぬぐ」は,次のように二通りに解釈できる.まあ,この文に関していえば漢字を使えば解決するわけだが,漢字を使ってもだめなこともある.

  • ここ(名詞)-で(格助詞)-は(係助詞)-きもの(名詞)-を(格助詞)-ぬぐ(動詞)
  • ここ(名詞)-で(格助詞)-はきもの(名詞)-を(格助詞)-ぬぐ(動詞)

一意に解釈できないわけだから,決定的(deterministic)に構文解析するなど最初から無理である.まあ,「文法が決められない」という記述には「文の一意解釈性を保証できない」という意図も含まれるのかもしれないが.

ちなみに,自然言語でも directional に構文解析することは可能である.たとえば,Earley parser は万能だが,左から右に一単語ずつ読みながら解析する(前方とか後方とかにジャンプすることもない).たぶん GLR も directional ではないかな.CYK はちがう.

ところで,件の記事自体は読みやすくわかりやすい.