AIには、音声認識や画像認識などの技術がありますが、自然言語処理という技術もあるのをご存知でしょうか。音声認識や画像処理は、我々の生活に身近なところでも利用されているためイメージが付きやすいかもしれませんが、自然言語処理はあまり耳にする機会が少ないでしょう。
とはいえ、自然言語処理が活用されている事例はすでにいくつもあり、今後われわれの日常生活を大きく変える可能性を秘めたAI技術です。本記事では、言葉の意味から仕組み、そして活用事例まで自然言語処理をまんべんなく解説していきます。
目次
自然言語処理とは
自然言語処理とは、AI技術である音声認識や画像認識などの機械学習のうちの1種です。英語でNatural Language Processingと表現される自然言語処理は、頭文字を取って「NLP」と略されることもあります。
また自然言語処理は、言語認識や言語識別という言葉で表されることもありますが、そもそも自然言語とはどういった意味なのでしょうか。
自然言語とは人間の言葉
自然言語とは、われわれ人間が普段の何気ない日常会話で使っている言葉のことをいいます。人間の使う言葉は非常に自由度が大きく、言葉の選び方や語順、表現方法などが少しずつ異なります。
言葉の意味にゆらぎや曖昧な部分が多く含まれるため、コンピュータが自然言語を正しく理解するのは非常に難しいのです。たとえば、例として「あなたはきれいなはなにみずをあげた」という文章を考えてみましょう。
人間なら、「あなたは、きれいな花に水をあげた」という文章として理解し、花を枯らさないために水をかけてあげたのだ、と解釈します。しかし、コンピュータは”花”を”鼻”と誤解してしまったり、”水をあげた”を単純に”水を花の位置まで引き上げた”と勘違いする可能性もあるのです。
人の鼻に水はかけないだろう、花に水をあげるのだから枯らさないためだろう、というのは、あくまでこれまでの人生経験から人間として意味を絞り込んでいるに過ぎないということです。加えて自然言語には、主にコミュニケーションで使う「話し言葉」と教科書などの書物に使われる「書き言葉」があり、微妙に表現方法などもニュアンスが変わりますよね。
話し言葉は双方向で言葉をやり取りするので、相手の話し方や表情も含めて言葉を使いますが、書き言葉では一方通行の伝達になるので意味を通すために補足する言葉が多いです。また、話し言葉とひとくくりにしていますが、話す相手やシチュエーションでも表現方法は変わります。もちろん、書き言葉もビジネスメールや書籍の場合と、SNSやラインでのやり取りでは、言葉の使い方は大きく異なるでしょう。
さらには、日本語と英語で主語述語の順序が違うように、使われる言語によっても語順や表現方法が変わります。
自然言語処理はコンピュータが人間の言葉を理解すること
自然言語処理とは、コンピュータが人間の言葉である自然言語を正しい意味で理解するAI技術をいいます。上記で説明したように、非常に複雑な自然言語をコンピュータが理解するのはかなりハードルが高いです。
そもそも言語は数値ではありませんので、アルゴリズムやプログラムに適用できるデータ形式に変換しなければなりません。もちろん、言葉が使われているシチュエーションや場所、前後の文脈などさまざまな情報を分析して、総合的に評価を行い意味を断定していく必要があります。
特に、日本語は主語が省略されたり、同じ意味でも時と場合によって主語・述語・形容詞の語順が入れ替わったりするため、非常に自然言語処理が難しい言語の1つです。では、具体的に自然言語処理でAIがどのような仕組みで人間の言葉を理解しているのか、次の章で詳しく解説していきます。
自然言語処理の仕組み
自然言語処理の仕組みの解説に入る前に、自然言語処理に欠かせない2つの技術を理解しておきましょう。
自然言語処理の2つの技術
自然言語処理は、以下の2つの技術を前提に処理が進められます。
- 機械可読辞書
- コーパス
機械可読辞書
機械可読辞書とは、コンピュータが人間の言葉を理解するために必要な辞書を指します。人間が利用する辞書とは異なり、コンピュータが理解することに特化して設定された辞書で、文字をコンピュータが読み取れる統一された規格となっています。
コーパス
コーパスとは、言葉の使い方を記録・蓄積して構造化している膨大なデータの集合体です。言い換えれば、コンピュータの言葉の引き出しであり、文章の構造や品詞などを理解して、1つ1つの言語を理解して分解できるようタグ付けする工程で必須となります。
自然言語処理の仕組みと流れ
自然言語処理は、機械可読辞書とコーパスを利用しながら、以下の流れで処理を進めていきます。
- 形態素解析
- 構文解析
- 意味解析
- 文脈解析
形態素解析
まずは形態素分析で、文章を1つ1つ意味する最小単位である形態素に分解して、それぞれの単語に品詞などの情報を割り当てていきます。基本的に、文章はすべて形態素の複合体で形成されており、先ほどの例文だと「あなた」「は」「きれい」「な」「花」「に」「水」「を」「あげた」という形態素から構成されているのです。
形態素分析を行うことで、文章内にどのような意味の品詞が含まれているか、名詞や動詞・形容といった形でデータとして抽出・振り分けができます。日本語の形態素解析では、文節構造モデルと確率的言語モデルという大きく2つのモデルが利用されます。
構文解析
形態素に分解された単語同士の関係性を解析して、文節の区切りや修飾関係を理解するのが構文解析です。文節の区切りは、隣接する単語同士の関係性を分析して、どこまでの単語が1つの分節になっているかを判別します。
例文で見ると、「あなた」「は」で1つの名詞句、「きれい」「な」「花」「に」で1つの形容詞句、といった形で文節を理解が進んでいくのです。そしてその文節ごとに、主語・述語・形容詞・副詞がどの単語に意味としてかかっているのか、修飾関係を各単語同士で解析を行います。
たとえば、「あなたは」は「あげた」にかかっていますし、「花に」は「きれいな」がかかって、さらに「あげた」にかかえていますよね。
意味解析
構文解析まで終わると、文章の構成が理解できるので、ここからは実際に文章の意味合いや内容を解釈する意味解析の工程へと進んでいきます。意味解析で、「きれい」と「はな」、そして「はな」と「水」の関係性が高いが、「あなた」と「水」の関連性は低いといったように解釈を模索します。
このような意味解析の過程によって、「はな」=「花」であり、「鼻」ではないのが正しい解釈である、とコンピュータが断定できるのです。
文脈解析
最後に文脈解析で、前後の複数の文章へ形態素解析と意味解析を行って、それぞれの文章同士の関係性を分析していきます。ここでは、機械可読辞書やコーパスに加えて、実際の文章データを大量に学習させ、ディープラーニングを用いての解析が必要です。
この文脈解析が、自然言語処理の中で非常に難しい部分で、いまだに実用的なモデルができ上がっていないという現状があります。
4つの自然言語処理の活用事例
自然言語処理といわれても、あまりイメージが沸かないという人も多いかもしれませんが、すでにさまざまな用途で活用がすでに始まっています。
実際に自然言語処理が活用されている、次の4つの事例を紹介していきましょう。
- 機械翻訳
- チャットボット
- テキストマイニング
- 記事執筆
機械翻訳
日本語から英語への英訳など、言語間の翻訳をコンピュータが行う機械翻訳に、自然言語処理は活用されています。Googleで翻訳を利用したことのある人は多いでしょう。この翻訳こそが、機械翻訳です。
以前は、ただ単に1つ1つの単語を訳したのもを組み合わせて文章にしていた機械翻訳ですが、AIの力を借りたことで非常に精度が上がっています。たとえば、文章中にwillが含まれた英文を日本語訳したとしても、日本語として訳す必要がなければ、わざわざ「するだろう」と訳すことはありません。
文脈を自然言語処理で理解して、あえてwillの日本語訳を入れない判断をしているのです。Googleは、毎日考えられないほどの人が言語で検索をしているので、そのビッグデータを活用してこの自然言語処理を実現しています。
今でもすでにある程度は可能ですが、将来的にはスマホさえあれば英語が話せなくても、スムーズに海外旅行を楽しめるようになるでしょう。英語を含めた外国語に苦手意識の強い日本人にとっては、とてもありがたいAI技術ですね。
AIチャットボット
サービス問い合わせなどで最近利用が増えてきたAIチャットボットですが、自然言語処理でさらなるレベルアップが図られています。チャットボットは、質問の文章から質問の内容をコンピュータが理解して、そのままコンピュータが適切な回答を返すものです。
ラインなどのSNSでも気軽にやり取りができるので、利用者にとっても質問がしやすい環境が整っています。また、企業側としてもオペレータが必要なくなるため、業務効率改善や人手不足の解消に役立つということで、大手企業だけでなく中小企業でも急速に導入が進んでいます。
ただ、これまでのチャットボットは、あらかじめコンピュータに質問と回答のセットでテンプレートを設定しておいて、質問内にある言葉を拾って近い回答を定型文で返しているに過ぎませんでした。これが、AIチャットボットになったことで、より高精度な回答かつ人間が使う言葉に近い言葉で応対してくれるようになります。
現在は、まだ自然言語処理をうまく利用したAIチャットボットは少ないですが、自然言語処理がより高度化してくれば、親和性の高いAIチャットボットでの活躍は間違いないでしょう。
テキストマイニング
自然言語処理の活用事例で外せないソリューションの1つが、テキストマイニングです。テキストマイニングとは、膨大な利用者が特にルールなしで自由に記述していく大量の文章データの中から、有益な情報を抽出する技術のことです。
コールセンターなどに寄せられるクレームや要望、ツイッターなどのSNSでの書き込みなどから、ユーザーのニーズやシーズを読み取るために利用されます。多く利用されている言葉から、関連性の高い言葉のつながりなどをマッピングするので、自然言語処理が最適なわけです。
記事執筆
2016年に中部経済新聞の朝刊に、AIが執筆した記事を掲載して話題になりましたが、まさに自然言語処理が活用された事例です。記事の内容は中部経済新聞の過去70年の歴史を振り返ったもので、AIは過去の記事を学習して記事の文体や癖などを読み取って記事を執筆しました。
実際に人が書いた記事と遜色ない文章で意味も問題なくとおり、有益な情報も盛り込まれており、自然言語処理の有用性が世間に認識された出来事の1つです。
自然言語処理はAIの中でも発展途上
自然言語処理は人間の言葉をコンピュータが正しく理解するAI技術ですが、人間の言葉は非常に難解であるため、技術的にはまだまだ発展途上の段階です。実際に、自然言語処理において長い文章を理解するときに欠かせない、文脈解析のモデルは現在も実用性の高いものがありません。
しかしながら、自然言語処理はすでにさまざまなビジネスやサービスへ利用が始まっており、実際にその有用性から人々へ利便性を提供しています。コンピュータと会話しているのに気づかない、そんな時代が来ることを自然言語処理の技術向上とともに期待したいです。