自然言語処理(NLP)とは
自然言語処理とは、人が使っている言語(自然言語)をコンピュータで処理・分析する技術のことです。NLP (Natural Language Processing)とも呼ばれます。
自然言語は日常的に人が使用する言葉であり、曖昧さを含んでいます。同じ言葉でも、話す人物や文脈によって違う意味を示すことも珍しくありません。したがって、コンピュータで機械的に分析するのには高度な技術が求められます。
自然言語処理の実用例
現在はAIやディープラーニングの技術が発展し、機械による自然言語の理解や翻訳が可能になりつつあります。以下、自然言語処理を用いた実用例です。
- ■Siri(AIアシスタント)
- ■Amazon Alexa(AIスピーカー)
- ■検索エンジン
- ■チャットボット
- ■テキストマイニング
最近では、Googleが最新の自然言語処理技術「BERT」を検索エンジンに採用するなど、自然言語処理の活用が活発化しています。
自然言語処理の仕組み
自然言語処理は、機械可読目録とコーパスを用いて処理されます。
- ■機械可読目録
- 書き言葉を機械が理解できるようにする通信規格です。人間の言葉を、機械が理解できるようにするための辞書のような存在といえます。
- ■コーパス
- 自然言語の使用方法を集積したものです。機械が自然言語を理解するための膨大なサンプルといえます。人が英会話を学習する際の、英文用例集のような存在と考えるとわかりやすいでしょう。
上記2つを用いて、自然言語を機械に処理させるのが自然言語処理です。
自然言語処理でできること
ここでは、自然言語処理の活用で実現できることを紹介します。
大量のテキストデータ解析
自然言語処理は、特にテキストマイニングで大きく力を発揮します。テキストマイニングとは、テキストデータの中から重要な情報を抽出する技術です。例えば、SNS上のコメントやカスタマーサポートに寄せられた顧客の声からニーズを分析できます。
ほかにも医療現場では、患者が訴えた痛みや会話のテキストデータを解析し、うつ病や認知症などとの相関性がないかなどを確認できます。
自然言語処理を用いてテキストデータを解析すると、新たなチャンスやリスクの発見が可能です。さまざまなビジネスシーンで活かせるでしょう。
関連記事
watch_later
2022.02.24
テキストマイニングツール比較12選!選び方や注意点も解説
続きを読む ≫
非構造化データの処理
非構造化データとは、行や列によって構造化されていないデータのことです。動画や画像のデータなどが該当します。構造化データと異なり、コンピュータでの分析は困難です。
人間の言語は典型的な非構造化データです。例えば、スマートスピーカーに明日の天気を尋ねる場合、「明日の天気は?」「明日は雨降る?」「明日の降水確率は?」など、さまざまな質問が考えられます。形式が整っていないだけでなく、個人の癖や方言・スペルミスなど曖昧さを含みます。したがって、コンピュータでの分析には向いていません。
しかし、最近ではAIのさまざまな機械学習により、非構造化データの処理精度が高まっています。文の構造や前後の文脈から質問の意図を読み取って、的確な回答をするシステムが増えています。
自然言語処理の流れ
自然言語処理は、以下4つのステップで進んでいきます。
- 1.形態素解析
- 2.文章構造の解析
- 3.文章の意味を分析
- 4.文脈を理解したうえでの情報抽出
以下では、上記のステップについて詳しく解説します。
1.形態素解析
形態素解析とは、文章を最小の単位である単語に分割する作業です。
例文「満天の星と月が美しい」を用いて、実際に形態素解析をしてみます。
満天の星と月が美しい
以下、形態素解析した文章です。
満天/の/星/と/月/が/美しい
文章を分割して書くことを「分かち書き」といいます。意味をもつ最小単位である単語に分けることで、意味を解析しやすくなります。英語など多くの言語では単語同士の間にスペースがあります。しかし日本語にはないため、形態素解析が必要です。
2.構文解析
構文解析とは、単語同士の関係性を解析する作業です。さきほど形態素解析した文章を構文解析します。
- 1.「満天/の/星/と」と「月/が」を名詞句として認識
- 2.「満天/の/星/と」と「月/が」を主語、「美しい」を述語に分類
構文解析することで、「美しい」のが「満天の星」と「月」であると理解できるでしょう。
一方、別の解析方法も考えられます。「月/と/星」をまとめて名詞句と見なし、「満天/の」を「月/と/星」の形容詞と考える方法です。この場合、「満天」なのは「星」と「月」の2つが該当します。
構文解析の段階では、文法的に考えられる構造をすべて挙げます。
3.意味解析
構文解析をした文章は、まだ意味が定まっていません。上述の例でいえば、「満天」なのが「星」と「星と月」のどちらなのかという問題が残っています。そこで必要になるのが、意味の分析です。
この段階では、辞書を利用して単語同士の意味や関係を調べます。結果をもとに、構文解析の中から最適な構文を選出します。
- 辞書を参照
- 「満天」……空いっぱい
- 「星」……複数ある
- 「月」……ひとつだけ
- →「満天」は「星」だけにかかると特定できる
4.文脈解析
同じ文章でも、文脈によって異なる意味をもつことがあります。そのため自然言語処理では、前後の文章にも構文解析と意味解析を実施し、文脈を明らかにします。
なお、文章同士の関係性を明らかにするには言葉の意味や文法だけではなく、さまざまな知識が必要不可欠です。それゆえ、充分な実用性を誇る文脈解析システムはいまだに登場していません。
しかし、最近では照応解析や談話解析などの手法が提唱され、研究が進められています。近い将来、人間と同程度かそれ以上に文章を深く理解できるシステムが登場するかもしれません。
自然言語処理に用いられる手法
自然言語処理に用いられる手法を3つ紹介します。
共起語解析
共起語とは、ある言葉と関連性が強く、同時に用いられる言葉です。例えば、「星座」の共起語には「占い」「性格」などがあります。共起語の解析はマーケティング分野で有効です。
特にWebマーケティングでは、Web検索結果の上部に自社のコンテンツを表示させるため、ユーザーのニーズに応える必要があります。ユーザーが検索エンジンで情報を調べる際、共起語を入力する可能性は高く、コンテンツ内で共起語を使用すると効果的です。
共起語解析により、よく使用される言葉の組み合わせを把握できれば、コンテンツ作りに役立つでしょう。
トピックモデル
文章のトピック(題目)を把握するための技術がトピックモデルです。対象の文章がどのようなトピックを扱ったものなのかを解析することで、マーケティングに役立てられます。
従来は潜在意味解析という方法が用いられていました。テキスト内の単語の数や頻度からトピックを判断する方法です。例えば、「英語」「初心者」などの単語が頻出していれば、初学者向けの語学に関するトピックだと判断できます。しかし、人間にとってわかりやすいトピックに分類できないなど、いくつかの問題がありました。
トピックモデルでは、テキストは複数の潜在的なトピックから確率分布的に生成されると考えます。これにより、複数のトピックを含んでいるテキストも分類が容易になりました。トピックモデルはニュース記事におけるタグ付けの自動化などに有効です。
感情分析
SNSでの発言やECサイトのレビューを分析する際に、感情分析が用いられます。感情分析とは、個々の単語の意味から文章全体の感情を分析することです。例えば、「おもしろい」「おすすめ」などがあればポジティブ、「つまらない」「嫌い」などはネガティブと判断できます。どちらにも該当しない単語は、ニュートラルに分類されるでしょう。
具体的には、感情を示す単語ごとにポジティブなら加点・ネガティブなら減点し、総合点によって文章全体を判断します。「この映画は序盤がつまらないけど、あとはおもしろいからぜひおすすめ」の場合、総合的にポジティブだと判断できるでしょう。そのため「ネガポジ判定」と呼ばれることもあります。
自然言語処理を活用してテキストマイニングを効率化しよう
自然言語処理とは、人間が日常的に用いる言語を機械で分析することです。形態素解析・構文解析・意味解析・文脈解析の流れで処理され、共起語解析やトピックモデル、感情分析などの手法が用いられます。
自然言語処理について理解を深め、翻訳やマーケティングの分野で必要となるテキストマイニングに活かしましょう。