日本語の形態素解析
日本語処理における処理のひとつ。一般的に自然言語処理は形態素解析・構文解析・意味解析の三つの段階に分かれるとされるが、日本語は省略表現が多いため「何が省略されているか」の推定を行なう必要もあり、構文解析や意味解析との境界はやや不明確である。
構文解析・意味解析・運用まで配慮すると形態素解析の精度が上がる。
かな漢字変換の場合、「解析する文字列が長いほど変換精度が上がる」のが入力効率の上からは望ましいが、形態素解析のロジックが未熟で、候補の選択がこなれていない場合、どうしても入力単位も短くなるという悪循環がある。早急に改善するのが望ましい。
概要[編集]
解析が困難な例としては、「連体形+『です』」の形がある。
「危ないです」は形容詞の連体形「危ない」が用言(助動詞)「です」に係っていることになる。「連体形+体言」「連用形+用言」の形が文法的であり、「連体形+用言」「連用形+体言」といった形は非・文法的である。
ここで「危ない+(省略された名詞)+です」と解釈すれば文法的である。そこで準体助詞の「の/ん」を補うと「危ないのです」「危ないんです」となって文法的な解釈ができる。
同様に「取ってくれ」では「『くれ』は連用形であって未然形でも終止形でも命令形でもないため非・文法的」ということになるが「くれ」が「くれたまえ」の省略と考えると文法的な解釈ができる。
あるいは「美味しかったです」は連体形「美味しかった」と用言「です」が接続したものだが、そこで「美味しかったのです」とすると、「連体形+ 『準体助詞「の/ん」』 +『です』」となって文法的には正しくなるものの、こんどは状況にそぐわなくなる場合がある(目前に提供してくれた人物がいる場合など)。そこで「美味しゅうございました」と言いかえるかどうかという判断にも関連してくる。このあたりが運用がらみの話である。
日本語のネイティブな話者はいちいちこんなことまで考えてはおらず、その点は日本語処理システム開発者も同様なので、かな漢字変換システムの変換精度はなかなか上がらない。
形態素解析の対象としては、用言の活用・体言および助詞の接続・その他と大まかに三つに分かれるが、この分類もまた大雑把なものであり、その境界は曖昧である。
用言の活用[編集]
形態素解析の対象として重要なものとしては、動詞と形容詞がある。その他の助動詞や形態素に関しては、個別に論じた方がよい。
動詞[編集]
動詞のうち規則活用動詞は大きく分けて二種類ある。いわゆる語幹にあたる部分が母音で終わる「一段活用動詞」と、ほぼ(活用の型を示す指標となる)子音で終わる五段活用動詞(現代語。文語文法では四段活用動詞)である。ただし、後述するように、「発音の変化によって指標音が消失により母音末尾動詞となったが、活用型が五段活用である」という「五段活用動詞ワ行音」などもある。 母音末尾動詞である i 音末・e 音末の動詞はいわゆる一段活用動詞であり、かな書きしたいわゆる語幹もその母音で終わっているので紛れがない。打消形で「ない」を取った部分が語幹である(詳細は実装の項で詳述する)。 i 音末のものは「上一段動詞」、e 音末のものは「下一段動詞」と呼ばれる。
- 上一は「居る(i)」「着る(ki)」「見る(mi)」
- 下一は「得る(e)」「出る(de)」「経る(he)」
などが例である。
現代語の文法の子音末尾動詞である五段活用動詞は、末尾が「て/で」(過去または完了時制の連用形)「た/だ」(同じく連体形)の場合は指標音が消失することがあるため、かな書きすると(変化しない部分であるはずの)語幹に指標音が含まれないため「カ行・ガ行」「サ行」などと別立てで区別されていて、学習者の負担となっている。そのため日本語学校では「語幹はアルファベットで憶えろ」と指導されることも多いという。
これら規則活用動詞に対して、不規則活用動詞と呼ばれるものがある。「サ行変格活用動詞」と呼ばれる「する」と「カ行変格活用動詞」は、活用をまるごと記憶(体得)するのが通例とされる。「言う/謂う/云う」は規則に従うなら「いいて」となるはずだが、実際には「いって」となる。これが「ゆって」であれば、u 音末なので正則である。「行く/往く/逝く」も同様であり、規則に従うなら「いいて」となるはずだが、実際には「いって」となる。これが「ゆきて」であれば正則なので、「いく」は口語的で「ゆく」は文語的であるともいえる。
これ以外に、文語の活用をそのまま残した「乞う/請う」「問う」がある。
現在でいう「五段ワ行音末尾動詞」の成立には複雑な事情がある。かつては「四段ハ行音末尾動詞」だったが、指標である h 音がほぼ消失しまったので聞き取れなくなり、行き場を失った結果活用形をほぼ継承しながらも「a・o・u 音末尾動詞」というニッチに定住したという事情がある。そのため「買わない」を「買はない」、「追わない」を「追はない」、「喰わない」を「喰はない」と表記しても「いまどきそういう書き方をする人は珍しい」とは思われても、(少なくとも成人に対しては)「間違いだ」と断じられることはほぼない。「それを言ったら『は』を『わ』と発音する『を』を『お』と発音する、『へ』を『え』と発音するのも間違いか」という話にはなる。
なお、(多くの社会人にとっては思い出したくもないだろうが)学校教育では日本語の(規則活用する)動詞の活用形「未然・連用・終止・連体・仮定・命令」の六種だと教えられてきたが、近年では十種類ほどあるというのが定説となりつつある。すなわち、
- 未然形
- 打消形
- 連用形現在時制
- 連用形過去または完了時制
- 終止形
- 連体形現在時制
- 連体形過去または完了時制
- 已然形
- 仮定形
- 命令形
である。
これ以外に「ます」「ませ」に接続する場合(「ござる」「くださる」「なさる」)に音韻変化が起きる(「ござります」→「ございます」、「くださります」→「くださいます」、「なさります」→「なさいます」)が、これは辞書的に処理すれば間にあうので、現在のパソコン環境ではほとんど問題にはならない。
このうち、「終止形」は文語では使われたが、現代口語の文法においては形容詞の終止形とともに現在ではほとんど使われることがない。学校教育では「動詞・形容詞の終止形は連体形と同じ」と教えられるが、「のだ」「のです」が省略された「連体形の終止用法」であると考えると、日本語の構文解析においては話が簡単になる。
形容詞[編集]
形容詞は基本的に母音末尾のものしかないが、a 音末尾の形容詞については厄介な部分がある。
基本的には、
- a 音末尾形容詞
- o ・ u 音末尾形容詞
- i 音末尾形容詞
- シ音末尾形容詞
- エ音末尾形容詞
の五種しかないのだが、文語的な表現と絡むとややこしい話があり、古典も視野に入れるとさらに複雑になる。
語例としては、
- 「赤い(aka-i)」「有難い(arigata-i)」「髙い(taka-i)」「早い(haya-i)」」
- 「青い(ao-i)」「遅い(oso-i)」「黒い(kuro-i)」「白い(siro-i)」
- 「憎い(niku)-i」「低い(hiku-i)」
- 「みみっちい(mimi'ti-i)」(用例は少ない。強いて挙げれば「ばっちい」「ばばっちい」「ずるっちい」か?)
- 「美しい(utukusi-i)」「寂しい(sabisi-i)」など用例多数
- 「幽けし(kasoke-si)」「猛し(take-si)」「むくつけし(mukutuke-si)」(用例は少ない)
がある。 活用形としては、
- 連用形
- 終止形
- 連体形
の三つがあるが、「終止形」は、現代国語文法では文語文法の終止形が「よし!」「美味し!」などと使われることば稀にあるのみである。
「連用形」は助詞「くあり」「かり」「けり」に接続する形と考えられるが、これを活用形と考えて徒に活用表を大きくする教育者もいる。
「連体形」は動詞とともに「連体形の終止用法」に使われるため、「連体形と終止形は形が同じ」と(間違って)教えられていることも多い。
すでに述べたように、a 音末尾形容詞には「末尾音が変化する」という性質があるため、処理系の実装(本記事は、日本語処理の下位記事である)において、開発者の負担になる。「a から o に音韻変化」するため、「a 音末尾の形容詞を日本語処理用の辞書データとして利用しようと思うと、「ローマ字表記で片づければ簡単なのに、かな表記で文法定義をしようとすると『a 音の直前の子音まで含めて品詞分類をしなければならない』」という面倒臭さがある。そうなると「かな漢字変換」においてしばしば用いられる「接続テーブル法」ではテーブルが品詞分類の自乗になるため、文法記述の管理の手間が増える。[1]。
「ありがとうございます」では、「有難い」の指標音である a 音が o 音に変化している。「おはようございます」においても同様である。そうなると「音節単位の文字である『かな』のテキストデータ」を解析するにあたっては、「辞書に書かれた語幹データから、検索キーになる部分」を抽出するための何らかの手段が必要になる。でなければ辞書管理業務が捗らないわけだが、日本語処理システムはどうしても大規模になるため、処理系と文法記述と辞書管理を一人で統括することには無理があるため、予算が潤沢でなければ維持できないという制約がある。このため、「バブル経済の崩壊後の失われた三十年」によって、日本語処理システムの開発プロジェクトはほぼ絶滅に追込まれた。
総論[編集]
上記の理由から、「漢字かな交じりのテキストデータの用言の形態素解析処理は、いったん(正規化した)ローマ字に変換すると開発工数が節約できる」「ただし和欧混植のデータが来たときには、すでにテキストデータに変換されたものとして扱うことになるため、ローマ字入力において英単語が混じっていたりする場合は、見捨てざるを得ない」というのが現状である。すなわち、「program」は「puroguramu」と入力しなければ「プログラム」とはならず、「総ルビ表示が即時可能なワードプロセッサ」が市場に普及するのは(おそらくは)五年以上先の話である。
その他の用言[編集]
助動詞と形態素の二種類がある。
助動詞「です」「ます」は活用するが、規則活用はしないので、活用表をそのままデータテーブルとして持つしかない。
形態素としては、「受動・尊敬」「可能」「使役」の形態素がある。
「書く(kak)」の可能形は「書ける(kak-er)」であり、「見る(mi)」の可能形は「見られる(mi-rarer)」である。これにより指標音が変わり、活用型が変化する(つまり、五段活用ラ行音末尾動詞となる)。
使役形は、基本的には「書く」の使役形は「書かせる(kak-ase)」であり、「見る」の使役系は「見させる(mi-sase)」であるとされることが多い。
受動・尊敬形は「書かれる(kak-are)」であり、「見られる(mi-rare)」である。
ところがどっこい、「書かされる(kak-as-are)」とか「見させられる(mi-sas-are)」とかは説明できない。すなわち、使役形は、「書く」の使役形は「書かす(kak-as)」、「見る」の使役系は「見さす(mi-sas)」が一般的だということになる。「書かせられる」とか「見させられる」が一般的である文化圏もあるかもしれないが、既存のテキストデータを分析してから主張していただきたく思う。
動詞の打消型においては「ない」が語尾として接続するとされているが、実質的には形態素「ない」が接続して形容詞化するというのが正しかろうと思われる。でないと「書く(kak-u」の変化「書かない(kak-ana)」(形容詞化)「書かん(kak-an)」「書かぬ(kak-anu)」(連体形に変化)が統一的に処理できない。
体言と助詞[編集]
助詞には大きく分けて三種ある。
- 格助詞:対格「を」・与格「に」、「で」「から」「まで」「へ」「に」など
- とりたて詞:「は」「が」
- 接続助詞:「や」「と」「か」「とか」「も」
である。
格助詞の対格「を」・与格「に」ととりたて詞「は」「が」が干渉する以外は大勢に影響は与えないが、構文解析において動詞のシソーラスを作る際には重視される。
体言のシソーラスを作製する際にはその語彙数の多さが問題になる。ある程度(千五百語程度か)語彙が集まったらそれを使って「辞書に載っていない体言」を抽出するツールを作れば、一万五千語くらいまでは(数週間はかかるが)集められる。この先にあるのが、「読みがなを振る」「ジャンル別に分類する」といった辞書管理の手間と、「いくらデータをくべてもなかなか新しい語が見つからない」という点である。反面、漢語では語彙が増える速度がなかなか落ちないため、長尾真先生は「怖くなってやめた」という。
とはいえ、一人の人間が知っている語彙は三万五千語程度と云われており、二十万語の辞書のうち八割程度は一生に一度も使わない。
脚注[編集]
分類と語例[編集]
動詞[編集]
語例としては、
カ行「書く(kak-u)」「聞く(kik-u)」「割く(sak-u)」 ガ行「喘ぐ(aeg-u)」「泳ぐ(oyog-u)」「嗅ぐ(kag-u)」 サ行「貸す(kas-u)」「指す(sas-u)」「足す(tas-u)」「渡す(watas-u)」 タ行「勝つ(kat-u)」「立つ(tat-u)」「待つ(mat-u)」 ナ行「死ぬ(sin-u)」「去ぬ(in-u)」の二語のみ マ行「噛む(kam-u)」「病む(yam-u)」「読む(yom)」 ラ行「切る(kir-u)」「刈る(kar-u)」「取る(tor-u)」
などがある。