自然言語処理とは、文章や会話を処理する技術のことを言います。ところで、なぜ自然というのでしょう?
答えをお話する前に、その逆にあたるものがプログラミング言語です。完全に曖昧性がなく一字一句正確に記載されている必要があり、いわゆる機械言語といえるかもしれませんね。その反対に、人間が話す日常会話では、同じ言葉を話していても、その言葉だけ考えていたら何通りもの解釈がでてくることも少なくありません。場合によっては、会話の間にある無言、がものすごく大きな意味を持っている場合もあるわけです。曖昧性がとてもあり、そのため自然に話す言葉という意味で自然言語と呼ばれています。
とても期待が持たれる自然言語でのAIですが、ディープラーニングは、画像認識や音声認識の分野ではかなり人間並みの認識ができるようになってきましたが、それと比較すると自然言語の分野ではまだそのレベルまでには至っていません。次の発展分野と言えるでしょう。
最近のチャットボットなどでのコールセンターでの対応は、利用ケースが限られているのであらかじめ会話の内容を想定してはいますが、かなり広まってきた感があります。そして近年になり一気に発展したのが機械翻訳の分野でしょう。欧米言語間では、人間と同等レベルの性能を実現しており、英語と日本語の間における翻訳もかなり実用レベルに近づいていることを実感されているかたも多いでしょう。
さて、こうした曖昧な言葉を処理していく自然言語処理における主な技術要素は、次のようになります。
1 形態素解析
まず、文章全体を単語単位に分割をします。このときに各単語が意味をもつ必要最小限の単位に分けます。例えば、「青い海の大きな地球」を分割すると次のようになります。
こうすることで形態素という単位で、意味のある情報を取得することができるようになります。
2 構文解析
次に、先ほど分割した単語間同士の関係性について解析を行います。
「青い海の大きな地球」という文章ですが、これはよく見ますと2通りの意味が取れます。
はたして、大きいのは、海なのか?地球なのか?
これを以下のように構造を書くことで明確にすることができます。このように候補を用意していきます。
3 意味解析
構文解析をしたら次が正しい意味を解釈します。構文解析では、まだ一つの文章に対して、複数の候補がでてきたに過ぎません。これを文章全体の中から、正しい選択を行う必要があります。
4 文脈解析
最後に、意味解析まで行った複数の文章の間のつながりを分析します。
文章の中にある「これは」という単語は、はるか前に出ていた文章の中にあるものを意味していることもあるわけです。
このような手順でAIは文章を認識しています。意味解析と文脈解析については、進化著しい部分でもありますので、また別な機会に触れるようにしたいと思います。
このようにして、人間が自然に話す文章は、曖昧さをたくさん含んでいます。だからこそ、人間は想像力豊かになったと言えるかもしれませんが、コンピューターにとっては迷惑千万・・・
そんな自然言語処理の分野は、ますます魅力に満ちている期待の分野といえるでしょう。
allAi.jpでは、さらに役に立つ情報を発信していきますので、どうぞよろしくお願いいたします。