自然言語処理とは、その言葉通り自然言語を処理する技術のことですが、そもそも”自然言語”とは何を指すのでしょうか。結論から言うと、自然言語とは人間が普段、会話や文章で用いる曖昧性を持った言語のことを指します。人間が話す日常会話では、同じ言葉を話していても、その言葉だけ考えていたら何通りもの解釈がでてくることも少なくありません。場合によっては、会話の間にある無言、がものすごく大きな意味を持っている場合もあるわけです。曖昧性がとてもあり、そのため「自然に話す言葉」という意味で自然言語と呼ばれています。また、自然言語の逆にあたるものがプログラミング言語であり、プログラミング言語は、完全に曖昧性がなく一字一句正確に記載されている必要があります。
そして現在、自然言語処理の分野に対する関心や期待が寄せられていますが、同じくディープラーニングを活用した画像認識技術や音声認識技術と比べると、実用化のレベルはそれほど高くないのが現状です。自然言語処理の最近のチャットボットなどでのコールセンターでの対応は、利用ケースが限られているのであらかじめ会話の内容を想定してはいますが、かなり広まってきた感があります。そして近年になり一気に発展したのが機械翻訳の分野でしょう。欧米言語間では、人間と同等レベルの性能を実現しており、英語と日本語の間における翻訳もかなり実用レベルに近づいていることを実感されている方も多いでしょう。
自然言語処理の仕組み
さて、こうした曖昧な言葉を処理していく自然言語処理における主な技術要素は、次のようになります。1から4までそれぞれ詳細に見ていきましょう。
形態素解析
形態素解析とは、文章全体を品詞単位に分割をし、各単語が意味をもつ必要最小限の単位に分ける方法です。例えば、「透明な海と山が好きだ」を分割すると次のようになります。
こうすることで”形態素”という単位で、意味のある情報を取得することができるようになります。
構文解析
構文解析は、形態素解析をして分割した単語同士の関係性について解析を行う方法です。例えば、「透明な海と山が好きだ」という文章ですが、これはよく見ると2通りの意味が取れます。透明なのは海だけなのか、それとも海と山両方なのか。これを以下のような構造を示すことで文章の意味を理解することができます。
意味解析
意味解析は、構文解析を基に文章の正しい意味を解釈する方法です。例えば「透明な海と山が好きだ」という文章では、先の通り二つの解釈をすることができましたが、他の事例を見ていくと透明な山は存在しないことが分かります。従って正しい文章では、「透明であるのは海だけ」ということが分かります。
文脈解析
文脈解析は、対象とする文章のみならず他の文章に関しても解釈をする方法です。例えば、「私はそれが好きだ」という文章では、「それ」が指す内容が分かりません。対象とする文章の前後を解釈することで初めて、「それ」が指す内容を理解することができます。
現在の活用事例
ここまで自然言語処理の仕組みついて説明してきましたが、実際にはどのように活用されているのかについて、いくつかの事例を紹介させていただきます。
非構造化データの処理
CSVやExcelなど、「列」と「行」を持つようなデータのことを構造化データと呼び、一般的にAIが活用できるのはこの構造化データを指します。一方でPDFやWord、PowerPointなどの自由度の高いデータのことを非構造化データと言います。自然言語処理技術はこういった非構造化データを解析し、AIが活用できるように加工することができます。
検索エンジンの最適化
GoogleやYahooを始めとする検索エンジンは、ユーザーが検索したキーワードを基に関連性の高いサイトを昇順に表示してくれます。これはWebサイトに含まれている文章を自然言語処理技術によって解析されているからこそ可能となっています。
機械翻訳
Google翻訳やDeepLを始めとして、近年機械翻訳の精度が非常に高まっています。本来、文字の形も文章の構造も異なる言語に対して、双方の意味を一致させる機械翻訳は自然言語処理技術があってこそ成せるものです。
まとめ
以上ここまで自然言語処理の仕組みやその活用事例について説明させていただきました。近年自然言語処理の技術精度が上がるにつれて機械翻訳や検索エンジンを始めとしてAIが文章を0から作成するという事例まで上がっており、今後様々な分野での活用可能性が高まっています。しかしながら一方で人間が文章を作成する際に持つ感情まではまだ解析できていないのが現状です。今後、人間が言葉を発する裏で持つ感情までも解析できるようになると、人間とAIとで真の対話ができる日が来るかもしれません。