自然言語処理と数理計画

風邪をひいてしまいました。小町さんのブログで最適化の話が出ていましたので、床に臥せりながら CList/NLPer が数理計画を勉強するにはどの本を読むべきか、ということを考えていました。

数理計画がどういった問題を扱いうるのかというところでは、松井ら『入門オペレーションズ・リサーチ』は例を挙げて平易に、数理計画の応用としての OR の要点を解説しており、入門書はこれで決定でしょう。ただし誤字脱字の類が甚だ多いため、正誤表が必須です。二冊目が難しいところですが、今野ら『整数計画法と組合せ最適化』は実践的な内容で、ソルバが中でどのように動いているか把握するのに好適です。ただし内容が少し古いです。基本的なことがわかったら藤澤ら『応用に役立つ50の最適化問題』がいいでしょう。これは最適化問題のうち商業上有益な応用を持つものが列挙されていて、解法についても解説されています。 CL/NLP に身近なところとしては SVM の話も出ています。コルテらの大著『組合せ最適化』は、スタミナがあれば冒頭から読破していくのもいいですが、最初は辞典的に読んだ方がよいのではないかと思います(シュプリンガーの和書事業譲渡の影響で月末に丸善から再出版されます)。他にいい本があれば是非教えてください!

数理計画を使って言語処理をするメリットは以下のようなところかなと思います。

  1. 他分野の知見を援用できる。問題を抽象化すると表面的には全く無関係に見える問題に共通の構造が表れます。そのため、広範な分野の知見を使って目の前の問題に取り組むことができます。
  2. 複雑なプログラムを書かなくてよい。問題を数理計画として表現することができれば、ソルバと呼ばれる専用のソフトを使ってその問題を解くことができます。
  3. 潰しが利く。例えば、自動要約は施設配置問題、係り受け解析は最短経路問題、機械翻訳は巡回セールスマン問題と見なすことができ、電話会社からみると、これらはそれぞれ、局舎を配置する問題、全局舎を接続する問題、頑健に全局舎を接続する問題(円環状に局舎を接続すると一カ所接続が途絶えても全局舎間の接続は維持されます)になります。人事異動に頑健になるわけですね。

あとは、私個人としては、何らかの現象をシミュレーションする、ということに強い関心があります。そのため、計算言語学自然言語処理を、言語現象を計算機を使ってシミュレーションするもの、と見なした方がやる気が出るんですね。もちろん、シミュレーションの対象である言語現象にも関心があります。アプローチ(シミュレーション)と対象(言語現象)いずれにも興味があるから、自然言語処理が好きなんでしょうね。