形態素解析
テンプレート:Sidebar with heading backgrounds 形態素解析(けいたいそかいせき、Morphological Analysis)とは、コンピュータ等の計算機を用いた自然言語処理の基礎技術のひとつ。かな漢字変換等にも応用されている。
対象言語の文法の知識(文法のルールの集まり)や辞書(品詞等の情報付きの単語リスト)を情報源として用い、自然言語で書かれた文を形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの品詞を判別する作業を指す。
以下は「お待ちしております」という文を形態素解析した例である (形態素解析ツールには「茶筌」を使用した)。
文字列 | 読み | 原形 | 品詞の種類 | 活用の種類 | 活用形 |
---|---|---|---|---|---|
お待ち | オマチ | お待ち | 名詞-サ変接続 | ||
し | シ | する | 動詞-自立 | サ変・スル | 連用形 |
て | テ | て | 助詞-接続助詞 | ||
おり | オリ | おる | 動詞-非自立 | 五段・ラ行 | 連用形 |
ます | マス | ます | 助動詞 | 特殊・マス | 基本形 |
。 | 。 | 。 | 記号-句点 |
目次
[非表示]日本語の代表的な形態素解析の手法
大まかに言えば文から切り出した単語が属する品詞を辞典を用いて調べていき、結果得られた品詞の並びから文法的に正しい並びであるものを正解であるとするという方法を取る。
一般的に多くの自然言語には品詞の接続に制限が存在する(例えば日本語では動詞のあとに格助詞がくることはできない。「ドアを開けるを」などは不可)。この性質を利用することによって単語の境界の判別を行う。具体的にこの性質を利用する方法には以下の2つがある:
規則による形態素解析
長尾真らの1970年代後半の研究[1][2]では、次のようなアルゴリズムによる形態素解析処理を構築した。
- 事前に用意しておいた辞書や規則をテーブル形式で読み込む。
- 入力文を読み込む。
- 慣用句テーブルとのマッチングを行う。最長一致法を使う。マッチングした部分は固定され、以降の解析では変更されない。
- 句読点と字種の変わり目(基本的にひらがなから漢字に変わる箇所)で、文節を切り出す。これは文法上の文節ではない。
- 切り出された文節の中で、慣用句にマッチングしていない箇所について、ひらがな書き自立語テーブルなどとのマッチングを行う。このとき、接続条件を考慮せず、全ての可能性を洗い出す。
- 以上で出てきた慣用句や単語を接続条件に基づいて連鎖させていく。複数の連鎖がありうる場合、全てを出力する。
- 結果をファイルに書き出す。
- 未処理の文節があれば、5 に戻る。
前提として、漢字で書かれた部分は基本的に切り分けず、そこが自立語(あるいは自立語の語幹)になると想定している。従って、漢字で書かれた自立語の辞書(テーブル)は持たない。このとき使われるテーブルには、次のものがある。
- 慣用句テーブル
- ひらがな部分の単語切り分け用テーブル
- 付属語テーブル
- ひらがな自立語テーブル
- 活用語尾テーブル -
- ひらがな語幹テーブル
- 特殊動詞テーブル
- 副詞テーブル
- 情報テーブル - 上記テーブル内の各項目に対応した辞書的情報
- 接続テーブル - 形態素間の相互接続関係を記述したテーブル。接続カテゴリ(品詞)毎に、その前に出現可能な形態素のカテゴリや活用形が記されている。
この中で、接続テーブルが規則に相当する。形態素解析における品詞の接続関係は必ずしも通常の文法通りではなく、解析の効率や、形態素の切り分けがなるべく100%となる(切り分け不能とならない)よう考慮して設計される。このような規則を「文節構造モデル」と呼び、首藤公昭らの研究がある[3][4]。
確率的言語モデルによる形態素解析
現在、日本語や英語などの形態素解析でもっとも有力とされるものは隠れマルコフモデル (HMM, Hidden Markov Model) による統計的な方法である。HMM は多くの言語における形態素の「つながり具合」を比較的簡単にモデル化できることがわかっている。具体的には入力文から生成可能な単語列を網羅的に列挙し、各単語間の連結部において両単語が連結して出現する確率に相当するスコアを付与する。文全体でこのスコアの合計がもっとも高くなるような品詞列を答えとする。
ところが、ある特定の言語の全世界における全文章データを元にHMMを抽出することは事実上不可能であるし、さらに、そもそも文章化されたデータからHMMを抽出したとしても、それが元となる文章の解析には最適であるものの、それ以外の(たとえばHMMから見ればまったく手付かずで未知の、今から解析しようとする)文章には適しているかどうかは保証が無い事などなどから次の節で述べるような問題も発生する。
日本語の形態素解析における諸問題
日本語を形態素解析する際においては、以下の4つが大きな問題となる:
単語の境界判別の問題
単語の境界を判別することはかな漢字変換の基礎となる技術である。しかし、単語の境界判別を正しく行うためには与えられた文以外の様々な知識、情報が必要となる場合があり、そのため解決が困難である。
たとえば「うらにわにはにわとりがいる」という文には、以下の様に(意味的には解釈に失敗しようとも)文法的に正しい異なる読み方が存在する(本当はもっとある):
- 裏庭 / には / 鶏 / が / いる
- 裏庭 / には / 二 / 羽 / トリ / が / いる
- 裏 / に / ワニ / は / 鶏 / が / いる
- 裏庭 / に / 埴輪 / 取り / が / いる
上記最後の文の意味解釈は、"埴輪取り"と呼ばれる人あるいは物が存在したという特殊な状況下では意味的にも解釈に成功するだろうが、一般にそんな例は全くといっていいほど無い。しかしそれは"埴輪取り"なるものが実際には存在しないという経験的な知識による人間らしい判断であって、コンピューターなどの計算機を用いた解析では、文法や単語の辞書的データを超えるようなそういった知識も導入したとすると必要な知識が膨大に用意される必要があり、現実的ではない。この文の様に、完璧な正解を得るにはその文がおかれている文脈や書き手の意図等の背景をくみとらねばならないため非常に難しい。
品詞判別の問題
品詞判別の困難さは日本語よりも英語で顕著である。たとえば単語 "time" は「時間」という名詞としての意味のほかにも「 - 倍する」という動詞としての意味もあるため、これをどちらの意味にとるかによって文の文法的構造や導かれる意味がまったく違うものになってしまう。
品詞を見分けることは形態素解析の次の段階である構文解析にとって非常に重要であるが、英語では品詞の種類が文の構造と密接に関連しているため、これらを同時に行う方法も研究されている。
未知語の問題
形態素解析は普通、その言語の単語を収めた辞書を用いておこなわれる。解析対象の文中の辞書に含まれない単語を未知語と呼ぶ。日本語では漢字の列やカタカナの列はたとえ未知語であってもある程度単語として認識することができる。しかしそれが使えない場合、代表的な方法は「知っている単語が現れるまでよみとばす」というものだが、これは後の解析を狂わせてしまい、結果として頑健な解析(より多くの文を解析可能であること)ができなくなってしまう恐れがある。
ルーズな文法の問題
話し言葉や電子メールなどで使われる言葉は、(たとえば小中学校で習うような)ある特定のモデル化された文法による日本語からはかけ離れたものが多い。たとえば「そんなことは知らないでしょう」が「んなこた知らんしょ」に変化しうる。また電子メールなどでは形態素解析に用いられる辞書には載っていない略語やフェイスマークが使われていることも多い(しかもそれらは一般に常用されるがために日々増えている)。
また、こういった文は校正が不十分なため、書き手の誤りが入っている場合が多くある。しかも、こういった誤りが繰り返されれば正用とみなされる場合すらある。このような文に対応した解析手法を頑健な解析と呼ぶ。このような文に対応するためには、正しい文が入力されるという前提の設計に基づく現在の形態素解析の手法を、誤りが含まれる様な文にも対処可能なように根本から見直す必要があるが、言語資源の不足のためあまり研究はされていない。
日本語以外の言語の形態素解析
英語を含む多くの言語では、単語はふつう空白によってわかち書きされる。このため文を形態素に区切るのは日本語に比べると比較的簡単である (合成語の品詞や、形態素の品詞を見分ける問題は依然として残る)。ドイツ語では複数の単語から合成された名詞が空白による区切りのない一つの単語として表現されるため、わかち書きを行う必要がある。中国語や朝鮮語は日本語と同様にわかち書きを行う必要がある。また英語や日本語では活用する品詞の種類が少数に限られるため、単語の活用形も含んだものをすべて辞書に収めることができるが、ロシア語、フィンランド語などでは活用はほぼすべての品詞が起こすため、これらの言語では辞書に活用形を全て収めるのは非現実的である。
入手可能な日本語の形態素解析エンジン
フリーで入手可能なもの
フリーなライセンスで、自由に入手出来る。
- KAKASI(kanji kana simple inverter)、kakasi.namazu.org
- MeCab(和布蕪)、mecab.sourceforge.net
- ChaSen(茶筌)、chasen.naist.jp
- JUMAN、nlp.kuee.kyoto-u.ac.jp
- Sen(MeCabのJavaへの移植)、ultimania.org、sen.dev.java.net
- 日本語形態素解析Webサービス(Yahoo!デベロッパーネットワーク)、developer.yahoo.co.jp
- NMeCab(MeCabの.NETへの移植)、http://sourceforge.jp/projects/nmecab/
- Igo (Java形態素解析器)、igo.sourceforge.jp
- KyTea - 京都テキスト解析ツールキット(「キューティー」)、日本語など、単語(または形態素)分割を必要とする言語のための一般的なテキスト解析器。
市販されているもの
- Rosette形態素解析システム、Basis Technology
- Amazon、MSN、楽天などで利用されており、世界で最も利用者の多い形態素解析エンジンであると言える。
- 形態素解析エンジン言語郎、Zoo Corporation
- 日本語形態素解析MARIMO ムーター株式会社
- 大規模な辞書を持たず、1000語程度の学習モデルのみで未知語、新語、流行語、略語、話し言葉に対応する。
形態素解析辞書(解析エンジンと合わせて利用)
フリーで入手可能なもの
- ipadic :ChaSen用辞書。
- NAIST-jdic :ChaSen,MeCab用の辞書。
- UniDic :MeCab用の辞書。
脚注・出典
関連項目
参考文献
- 長尾真編、『講座 現代の言語7 言語の機械処理』、三省堂、1984年、ISBN 4-385-30667-2
外部リンク
- 形態素解析の基礎 大西祥代、廣安知之、三木光範
- 形態素解析と分かち書き処理 保田明夫
- 日本語形態素解析のための文節構造モデルと機能語性複単語表現辞書 ことばの森・工房 首藤公昭