nomuran's diary

野村直之のはてな日記(後継ブログ)です

自然言語処理ソフトウェアについて

 一昔前の『情報処理』(情報処理学会誌;私は1985年入会)に、東工大田中穂積教授(当時)と江原さん(NHK技研;当時)の共著で、自然言語処理がソフトウェアのデータ処理モデルとしては超簡単なのに、なぜ、いかに難しいかを表現した記事がありました。
 
・超簡単なところ:
 機械翻訳を例にとっても、入力は、単純なシンボル列(文字列と考えても素性付単語列と考えても)であり、出力も同じシンボル列(英語が日本語に変わったりするだけ)であるから、外部仕様の記述、要求仕様(各言語で文法的で意味的に同等で、等)は超簡単。
 
・何が難しくしているか:
 一言で言えば、【曖昧性】と戦うことこそが課題だから。
表層(形態に近い層)から深層(意味や含み・意図に近い層)に至るまで、何層にも渡り、しかも各層ごとに多種多彩な【曖昧性】が存在。曖昧性は互いに依存関係があり、文脈、ときには文脈外の状況・常識によって解消される。おのおの同じ種類の曖昧性A*とB*が、時にはA*が先に、時にはB*が先に解消され、それを待って初めてもう片方以下が解消される、という仕組みが要求される。
  
 曖昧性をモデル化し、適切に生成、表現するだけでも一般には一大事です。そして、さかのぼれば、チョムスキーが定式化した文法クラス上(ここでの計算複雑度の表現には明示的にはword list上の曖昧性は現れていない)で、様々なアイディアによる制御アルゴリズムが提案され、様々な情報源、計算方式(エンジン)を巧みに併用して効率よく適切な順番で尤もらしい解を選んでいく必要があります。

 さらにセマンティック技術の場合、正解の定義自体が困難、という問題が加わります。
研究者といえども、優れたバランス感覚、エンジニアリング・センスが無いと、いったい何をやっているのかわからなくなる。常に産業上の応用、御利益を意識していないと、無意味なオリンピックレコードの追求になってしまうことさえある。かといって、普通のソフトウェアをうまく作るのとも違ったセンスが必要。

 辞書的なものや統計的な情報の蓄積が価値の源泉である場合、その生態系、ライフサイクルを意識する必要もある。これには、どちらかというと、技術というより、ビジネスモデル、サプライ・チェーン管理をうまく回すようなセンスが必要。


 以上の前提に対して、自社には大きなアドバンテージがある、と本気で宣言できる会社はあまり多くない、と考えられます。