形態素解析

形態素解析とは、文法的な情報の注記の無い自然言語のテキストデータから、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素の列に分割し、それぞれの形態素の品詞等を判別する作業である。

自然言語処理の分野における主要なテーマのひとつであり、機械翻訳やかな漢字変換など応用も多い。

もっぱら言語学的な観点を主として言語学で研究されている文法にもとづく解析もあれば、コンピュータ上の自然言語処理としてコンピュータでの扱いやすさに主眼を置いた解析もある。以下は後者のためのツールを用いた例で、「お待ちしております」という文を形態素解析した例である 。

自然言語以外の場合では、プログラミング言語などの場合は字句解析が相当する。

1. 英語の形態素解析の手法
--------------

英語の文は日本語とは異なり、予め単語と単語の区切りがほとんどの箇所で明確に示される。このため、単語分割の処理は日本語の場合ほど複雑である必要はなく、簡単なルールに基づく場合が多い。

例えば「It's a gift for Mr. Smith.」という文を解析することを考える。単語分割をすると以下のようになる。

it / 's / a / gift / for / mr. / smith / .

文全体を小文字化し、単語の位置により単語が区別されてしまうことを防ぐ
it's や don't 等の省略形を分割する
文末のピリオドを前の単語と切り離すit's の分割として it / 's にするか it / is にするかはしばしば議論の対象となるが、所有格末尾の 's が誤って is になることを防ぐために、 's にすることが多い。

品詞付与はルールに基づくものから統計に基づくものまで利用される。



2. 日本語の代表的な形態素解析の手法
-------------------

英語の場合と異なり、文節を得るのが目的となることが多い。大まかに言えば文から切り出した単語が属する品詞を辞書を用いて調べていき、結果得られた並びから正しく文節が構成される並びであるものを正解であるとするといったような方法を取る。

日本語文法では、たとえば動詞のあとに格助詞がくることはできないといったように、ほとんどの付属語について「このようなものの後には付く」「このようなものの後には付かない」という規則性があり、また動詞の活用はその後に来る品詞を制限することがある。このような性質を利用することによって単語の境界の判別を行う。具体的にこの性質を利用する方法には以下の2つがある:

規則による方法
確率的言語モデルをもちいる方法

2.1. 規則による形態素解析
---------------

長尾真らの1970年代後半の研究では、次のようなアルゴリズムによる形態素解析処理を構築した。

事前に用意しておいた辞書や規則をテーブル形式で読み込む。
入力文を読み込む。
慣用句テーブルとのマッチングを行う。最長一致法を使う。マッチングした部分は固定され、以降の解析では変更されない。
句読点と字種の変わり目で、文節を切り出す。これは文法上の文節ではない。
切り出された文節の中で、慣用句にマッチングしていない箇所について、ひらがな書き自立語テーブルなどとのマッチングを行う。このとき、接続条件を考慮せず、全ての可能性を洗い出す。
以上で出てきた慣用句や単語を接続条件に基づいて連鎖させていく。複数の連鎖がありうる場合、全てを出力する。
結果をファイルに書き出す。
未処理の文節があれば、5 に戻る。前提として、漢字で書かれた部分は基本的に切り分けず、そこが自立語になると想定している。従って、漢字で書かれた自立語の辞書は持たない。このとき使われるテーブルには、次のものがある。

慣用句テーブル
ひらがな部分の単語切り分け用テーブル
付属語テーブル
ひらがな自立語テーブル
活用語尾テーブル -
ひらがな語幹テーブル
特殊動詞テーブル
副詞テーブル
情報テーブル - 上記テーブル内の各項目に対応した辞書的情報
接続テーブル - 形態素間の相互接続関係を記述したテーブル。接続カテゴリ毎に、その前に出現可能な形態素のカテゴリや活用形が記されている。この中で、接続テーブルが規則に相当する。形態素解析における品詞の接続関係は必ずしも通常の文法通りではなく、解析の効率や、形態素の切り分けがなるべく100%となるよう考慮して設計される。このような規則を「文節構造モデル」と呼び、首藤公昭らの研究がある。

2.2. 確率的言語モデルによる形態素解析
---------------------

昨今の日本語や英語などの形態素解析では統計的な手法が利用される。主な手法に「ラティス上の経路予測」と「点予測」が存在する。

ラティス上の経路予測では、事前に生成可能な単語列  を辞書を使って網羅的に列挙し、各単語間の連結部において両単語が連結して出現する確率に相当するスコアを付与する。文全体でこのスコアの合計がもっとも高くなるような品詞列を答えとする。スコアの計算は隠れマルコフモデル  や条件付き確率場  などによりモデル化する。

次に点予測  による手法がある。点予測ではすべての文字の境界に対し、分割可能かどうかをサポートベクターマシン  等の分類器により判定する。分割可能な場合はその点が単語区切りとなる。分割判定には、分割点の周りの文字やその種類、部分文字列が単語辞書に含まれるかどうかといった情報が与えられる。品詞推定においても、ある判定箇所について、その単語と周りの単語から SVM などにより判定する。

点予測は、辞書を使って単語ラティスを生成する必要がないというメリットがある。このため、入力文中の単語が辞書に無い場合  でも、周りの文字列を使って単語らしい部分を識別可能な場合があり、辞書が貧弱でも比較的高い精度で解析できる。さらに、ラティスの生成には原理的に文の長さを//n//として//O//の時間を要するが、点予測では各文字間について判定するだけのため//O//の時間で済む。

いずれの手法でも、ある特定の言語の全世界における全文章データを元にモデルを作成することは事実上不可能であるし、さらに、そもそも文章化されたデータからモデルを学習したとしても、それが元となる文章の解析には最適であるものの、それ以外の文章には適しているかどうかは保証が無い事などから次の節で述べるような問題も発生する。

3. 日本語の形態素解析における諸問題
-------------------

日本語を形態素解析する際においては、以下の4つが大きな問題となる:

3.1. 単語の境界判別の問題
---------------

単語の境界を判別することはかな漢字変換の基礎となる技術である。しかし、単語の境界判別を正しく行うためには与えられた文以外の様々な知識、情報が必要となる場合があり、そのため解決が困難である。

たとえば「うらにわにはにわとりがいる」という文には、以下の様に文法的に正しい異なる読み方が存在する:

裏庭 / には / 鶏 / が / いる
裏庭 / には / 二 / 羽 / トリ / が / いる
裏 / に / ワニ / は / 鶏 / が / いる
裏庭 / に / 埴輪 / 取り / が / いる上記最後の文の意味解釈は、"埴輪取り"と呼ばれる人あるいは物が存在したという特殊な状況下では意味的にも解釈に成功するだろうが、一般にそんな例は全くといっていいほど無い。しかしそれは"埴輪取り"なるものが実際には存在しないという経験的な知識による人間らしい判断であって、コンピューターなどの計算機を用いた解析では、文法や単語の辞書的データを超えるようなそういった知識も導入したとすると必要な知識が膨大に用意される必要があり、現実的ではない。この文の様に、完璧な正解を得るにはその文がおかれている文脈や書き手の意図等の背景をくみとらねばならないため非常に難しい。

3.2. 品詞判別の問題
------------

文中の品詞が常に一意に確定できるわけではない。

たとえば名詞と形容動詞の間には「別」「イロイロ」など、形容動詞と形容詞の間にも「アタタカ」「ヤワラカ」という連続領域があるという指摘がある。　より具体的には「それとこれは話が別だよ」という文章の場合、「別だ」という形容動詞に「よ」という終助詞がついたもの、「別」という名詞に「だよ」という終助詞がついたものという２通りに解釈することができる。しかもこの場合にどちらで分けても、文章の意味は変わらない上に、形態素の区切りの位置も一定ということが保証されない。

このような品詞分類の曖昧さは他の言語でもよく見られる。たとえば英語で "It is light." という文章は、lightを「光」という名詞にも「軽い」という形容詞にも判別することができる。

3.3. 未知語の問題
-----------

形態素解析は普通、その言語の単語を収めた辞書を用いておこなわれる。解析対象の文中の辞書に含まれない単語を未知語と呼ぶ。日本語では漢字の列やカタカナの列はたとえ未知語であってもある程度単語として認識することができる。しかしそれが使えない場合、代表的な方法は「知っている単語が現れるまで読み飛ばす」というものだが、これは後の解析を狂わせてしまい、結果として頑健な解析ができなくなってしまう恐れがある。

3.4. ルーズな文法の問題
--------------

話し言葉や電子メールなどで使われる言葉は、ある特定のモデル化された文法による日本語からはかけ離れたものが多い。たとえば「そんなことは知らないでしょう」が「んなこた知らんしょ」に変化しうる。また電子メールなどでは形態素解析に用いられる辞書には載っていない略語やフェイスマークが使われていることも多い。

また、こういった文は校正が不十分なため、書き手の誤りが入っている場合が多くある。しかも、こういった誤りが繰り返されれば正用とみなされる場合すらある。このような文に対応した解析手法を頑健な解析と呼ぶ。このような文に対応するためには、正しい文が入力されるという前提の設計に基づく現在の形態素解析の手法を、誤りが含まれる様な文にも対処可能なように根本から見直す必要があるが、言語資源の不足のためあまり研究はされていない。

4. 日本語以外の言語の形態素解析
-----------------

英語を含む多くの言語では、単語はふつう空白によってわかち書きされる。このため文を形態素に区切るのは日本語に比べると比較的簡単である 。ドイツ語では複数の単語から合成された名詞が空白による区切りのない一つの単語として表現されるため、わかち書きを行う必要がある。中国語でも単語間の空白がないため、日本語と同様にわかち書きを行う必要がある。また英語や日本語では活用する品詞の種類が少数に限られるため、単語の活用形も含んだものをすべて辞書に収めることができるが、ロシア語、フィンランド語などでは活用はほぼすべての品詞が起こすため、これらの言語では辞書に活用形を全て収めるのは非現実的である。

5. 入手可能な英語の形態素解析エンジン
--------------------

5.1. フリーで入手可能なもの
----------------

Stanford POS Tagger、[1]

6. 入手可能な日本語の形態素解析エンジン
---------------------

6.1. フリーで入手可能なもの
----------------

フリーなライセンスで、自由に入手出来る。

ChaSen、[2] 
JUMAN、[3]
KAKASI、[4]
KyTea、[5] 
MeCab、[6] 
NMeCab、[7]
Sen、[8]、[9]
Igo 、[10]
Janome 、https://pypi.python.org/pypi/Janome
Kagome 、[11] 

6.2. 商用システム
-----------

Rosette形態素解析システム、[12] Amazon、MSN、楽天などで利用されており、世界で最も利用者の多い形態素解析エンジンであると言える。
形態素解析エンジン言語郎、[13]
日本語形態素解析MARIMO [14] 大規模な辞書を持たず、1000語程度の学習モデルのみで未知語、新語、流行語、略語、話し言葉に対応する。
日本語形態素解析Webサービス、[15]
形態素解析API