ここでは、自然言語処理の対象言語として日本語が難しいかどうか、 つまり、英語や中国語、その他の言語と日本語はどちらが処理しやすいかについて考えます。
まず、すぐに分かると思いますが、外国語として習得するのが難しいある言語があったとして、 その言語の自然言語処理も難しいということはありません。その逆(言語処理が難しいから 言語学習も難しい)も成り立ちません。つまり、両者はほとんど関係ありません。
これは人間とコンピューターの得意・不得意が違うからです。
確かに文字コードの心配がない英語から比べれば面倒ですが、 Unicode時代に入ってからはあまり気にならなくなってきました。
これもよく言われます。英語は分かち書き(単語と単語の間に空白を入れる)しているから簡単だ、 日本語は単語分割が必要で難しいという意見です。
これについてはある程度正しいですが、下記に注意が必要です。以下、空白で区切られた文字列の塊をトークンと呼びます。
以上まとめると、分かち書きする言語は必ずしも簡単とは限りません。日本語、韓国語、中国語、英語で 比べると、単語分割が難しいのは難しい順に、中国語、韓国語、日本語、英語の順だと思います。
いえ、これも比較の問題で、簡単な側面と難しい側面があります。 日本語の形態素解析は研究が進んでいてすでにツール化されているのでそういう意味では簡単ですが、 ここではそもそも日本語の形態素解析が課題として難しいかどうかを考えます。
俶刧しい吝嗷は堊寐っぽく彜れてしまった。
この文、たぶん意味が分かる方はいないと思いますが、「俶刧しい」が形容詞で、 「吝嗷」は名詞、「堊寐っぽく」は副詞(または形容詞の連用形)、 「彜れて」は動詞なのが容易に分かると思います。 日本語には活用と助詞があるために、意味が全く分からなくても単語の区切りや 品詞は容易に分かります。これが英語になるとそうはいきません。
Sprintle flod megly bkraws tiwaglate.
例えば上の文のどれが動詞でどれが名詞なのかは(いくつか可能性は列挙できますが) 特定することはできません。 このように、日本語の形態素解析のうち品詞付与は比較的簡単で、機械で処理しても 間違うことはあまりありません。
(ちなみに、上記の日本語も英語もすべて架空の単語です)
これは確かに難しい部分があります。一番困るのは主語の省略で、
「うちのおじいちゃんこの前入院してさ」 「そりゃ大変だ。大丈夫?」
みたいな例文で「大丈夫?」の主語は誰が読んでもおじいちゃんですが、コンピューターはこれが理解できず、 例えば英語に翻訳すると “Are you all right?” になってしまいます。こういった省略の補完は 研究課題にもなっていていくつかの研究成果はありますが、まだ機械翻訳などで実用段階には入っていないのが現状です。
さて、これが他の言語と比べてどうかと言えば、例えば韓国語では日本語と同程度に省略がありますし、 英語は省略が少ないかわりに代名詞や代動詞(do)が多用されるので全く何もない日本語から見れば楽ですが、 あまり問題の難しさは変わっていない気もします。
これはある程度正しいです。
情報処理の観点で言えばちょうど順列と組み合わせの関係に相当し、順列が決まっていると組み合わせの数は 減るので処理しやすくなります。例えば構文解析を行う時に日本語は語順の自由度が高いので英語よりも 構文規則をたくさん作らなければならず、一般に複雑になります。
ただ、他の言語と比べるとまた少し話が変わり、例えば韓国語は日本語と同様の語順の自由度がありますので、 この面での処理の難しさは全く同じです。中国語は日本語・韓国語と英語の中間ぐらいの自由度なので、 語順の多様さという意味では両者の中間ぐらいだと思います。
いえ、そんなこともありません。確かに英語よりは言語資源も研究者も少ないですが、 日本語はかなり大きな言語あるいは重要な言語で、例えば言語の経済力を見ると英語、中国語に次ぐ3位です(下記参照)。
私の印象では、研究者の数、データの豊富さ共にだいたい上記ランキングの順序になっている気がするので、 日本語はかなり恵まれた環境にあり、また研究の進んでいる言語です。
ちなみに、私の印象では世界でまともに自然言語処理ができるのは10言語ぐらいで、 それ以外の言語はコーパスもほとんどない、研究者もほとんどいない、形態素解析器もない という言語が多いです。教員時代に Tigrinya という言語(知っていますか?)の言語処理をやりましたが、 ほぼ何もない状態からのスタートでした。
日本語の自然言語処理は難しい側面も易しい側面もあります。 言語そのものの難しさの他に言語資源の整備など社会的な側面も含めて総合的に考えれば、 英語処理よりは難しいがその次ぐらいに易しい、あるいは環境が整備されている言語だと思います。