自然言語処理とは?
自然言語処理とは、自然言語の言語としての特性を踏まえて、コンピュータに処理をさせる技術のことです。
自然言語というのは、私たち人間が日常書いたり話したりしている日本語や英語のような、自然な言語のことです。
私たちは日常的に、あまりに見事に言葉を使いこなしているので強く意識することはありませんが、実は、自然言語は「意味を曖昧なまま表現するツール」であり、そのために「一つの文に対して複数の解釈ができる」という特性を持っています。
👉参考記事:『自然言語処理とは何か?自然言語とプログラミング言語の違いを知ろう!』
自然言語の曖昧さへの対応
自然言語に対する人間のアプローチ
自然言語は非常に曖昧なツールです。
この曖昧さは、「情報を短くスッキリ伝達できる」という便利なメリットがある一方で、情報の受け手による解釈の違いを生むリスクを孕んでもいます。
例えば、次の例を見てください。
この例では、「自分」という単語が「彼女」か「彼」のどちらを意味しているのかが曖昧なために、捉え方によって、解釈に違いが生まれてしまっています。
こういった問題に対して、普段、私たち人間は、次のようなやり方で自然言語の曖昧さを克服しようとしています。
- 前後の文脈から意味を推測する
- 相手との関係性から意味を推測する
- 過去の出来事の記憶や経験から類推する
- 発話者の顔色や表情、周囲の人の「空気」を読み取る
機械学習による自然言語処理のアプローチ
しかし、残念ながら、現状の科学技術では、今述べたような人間のアプローチを機械がそのまま獲得・利用することは困難です。
したがって、コンピュータを利用する機械学習の分野では、自然言語を曖昧なまま取り扱うのではなく、言葉や文の集合から、できる限り曖昧さがなくなるように判断していく必要があります。
そして、そのための方法として考えられるのが、「ある語と周辺の語との、共起性(きょうきせい)を見る」というアプローチです。
「共起」とは、「文章中に、ある文字列とある文字列が同時に出現すること」を指します。
この「共起」の確率が高いほど、ある単語と単語、文節と文節などの「共起性が高い」といい、自然言語処理では、共起性の高さによって単語や文節などの意味を確定させにいくのです。
少しわかりにくいので、身近なものに例えてみましょう
C君は、Bさんのことが気になっています。
けれど、いつもニコニコしているBさんは、本心では何を考えているのかよくわかりません。
そこで、C君は、考えます。
「そういえば、A君とBさんはいつも一緒にいるな・・・」
共起性は、こうした何気ない人間関係に例えて理解することができます。
私たちは、ある人がどんな人柄なのか、何を考えているのか、といったことを推測する際に、上記の例のように、「その人が、どんな人と、どれくらいの頻度で一緒に過ごしているか」を重要な手がかりとすることがあります。
なぜなら、人の性格や心理といったことは、他人には推測はできても、完全に理解することは難しいからです。
自然言語処理における「共起性を探る」というアプローチもこれと同じです。
コンピュータは、人間の言語である自然言語を理解することができません。
人の心と同じように、自然言語は曖昧で、状況や捉え方によって意味が異なってしまうからです。
そこで、できる限り推測の精度を上げようとして考え出されたのが、「どの文字列とどの文字列が一緒にいる頻度が高いか、あるいは低いか」、つまり、共起性という考え方なのです。
自然言語処理は、まさに、こうした「解釈の曖昧さへの対応策」として、「周辺の語、共起性を見る」というアプローチにもとづいて実行されています。
自然言語処理の5つの実行ステップ
「解釈の曖昧さへの対応策としての自然言語処理」という考え方は、機械学習のデータ前処理でも採用されています。
自然言語の曖昧さは機械学習のインプットデータとして不適切な状態であるため、学習によるモデル化を行う前に、曖昧さを解消することでデータの「一意性(意味や値が一つに確定していること)」を担保する必要があるからです。
この機械学習の前処理として行われる自然言語処理は、次の5つの基礎ステップに基づいています。
(それぞれの詳しい内容については、リンク先の用語集をご覧ください)
自然言語処理の5つの基礎ステップ |
①分かち書き |
②形態素解析 |
③構文解析 |
④意味解析 |
⑤文脈解析 |
専門用語だらけでとっつきにくい印象がありますが、実は、上記5つの実行ステップは先ほど説明した「共起性をみる」というアプローチに基づいており、私たちが日々何気なく行なっていることでもあります。
私たちは、ある一つの文が与えられた時に、その文を無意識下で高速に分解し、それぞれの単語の意味を仮定した上で、単語間の関係性を規定し、文の構造と意味を文脈に照らして考えることで、その文を理解しようとしています。
機械学習における自然言語処理も、これと同じように、順を追って解析されているのです。
なお、これらの基礎ステップは、1〜5の順に行われます。
ただし、5の文脈解析は、非常に高度な処理が求められるため、システムとしてはまだ実用化されていません。