形態素解析
形態素解析(けいたいそかいせき、Morphological Analysis)とは、文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業である。
自然言語処理の分野における主要なテーマのひとつであり、機械翻訳やかな漢字変換など応用も多い(もちろん、かな漢字変換の場合は入力が通常の文と異なり全てひらがなであり、その先に続く文章もその時点では存在しないなどの理由で、内容は機械翻訳の場合とは異なったものになる)。
もっぱら言語学的な観点を主として言語学で研究されている文法にもとづく解析もあれば、コンピュータ上の自然言語処理としてコンピュータでの扱いやすさに主眼を置いた解析もある。以下は後者のためのツールを用いた例で、「お待ちしております」という文を形態素解析した例である (「茶筌」を使用した)。
自然言語以外の場合では、プログラミング言語などの場合は字句解析が相当する。
ipadic :ChaSen用辞書。
NAIST-jdic :ChaSen,MeCab用の辞書。
UniDic :MeCab用の辞書。
単語の境界を判別することはかな漢字変換の基礎となる技術である。しかし、単語の境界判別を正しく行うためには与えられた文以外の様々な知識、情報が必要となる場合があり、そのため解決が困難である。
たとえば「うらにわにはにわとりがいる」という文には、以下の様に(意味的には解釈に失敗しようとも)文法的に正しい異なる読み方が存在する(本当はもっとある):
裏庭 / には / 鶏 / が / いる
裏庭 / には / 二 / 羽 / トリ / が / いる
裏 / に / ワニ / は / 鶏 / が / いる
裏庭 / に / 埴輪 / 取り / が / いる
上記最後の文の意味解釈は、"埴輪取り"と呼ばれる人あるいは物が存在したという特殊な状況下では意味的にも解釈に成功するだろうが、一般にそんな例は全くといっていいほど無い。しかしそれは"埴輪取り"なるものが実際には存在しないという経験的な知識による人間らしい判断であって、コンピューターなどの計算機を用いた解析では、文法や単語の辞書的データを超えるようなそういった知識も導入したとすると必要な知識が膨大に用意される必要があり、現実的ではない。この文の様に、完璧な正解を得るにはその文がおかれている文脈や書き手の意図等の背景をくみとらねばならないため非常に難しい。
フリーなライセンスで、自由に入手出来る。
ChaSen(茶筌)、chasen.naist.jp (ラティス上の経路予測、HMM)
JUMAN、nlp.kuee.kyoto-u.ac.jp
KAKASI(kanji kana simple inverter)、kakasi.namazu.org
KyTea(キューティー)、http://www.phontron.com/kytea/ (点予測、線形分類)
MeCab(和布蕪)、taku910.github.io/mecab (ラティス上の経路予測、CRF) NMeCab(MeCabの.NETへの移植)、github.com Sen(MeCabのJavaへの移植)、ultimania.org、sen.dev.java.net Igo (MeCab互換、Java形態素解析器)、igo.sourceforge.jp
Janome (Python)、https://pypi.python.org/pypi/Janome
Kagome (Go)、github.com/ikawaha/kagome (ラティス上の経路予測、辞書の切り替えで韓国語の形態素解析も可能)