AI・機械学習 コラム

自然言語処理(NLP)とは|仕組み・活用例・課題を基礎から解説

皆さんこんにちは。

昨今スマートスピーカーやチャットボットをはじめ、AIを活用したさまざまなシステムの登場で、業務や生活がますます効率化・高度化されています。今回は、それらのシステムに応用されている技術である「自然言語処理」についてご紹介します。

自然言語とは

そもそも「自然言語」とは何かを確認しておきましょう。

人間がお互いにコミュニケーションを行うための自然発生的な言語である。「自然言語」に対置される語に「形式言語」「人工言語」がある。

出典:Wikipedia

  • 自然言語:人の話し言葉や書き言葉
    構文や意味合いのルールがゆるいので、利用者が文脈によって解釈のルールを変えられる。
  • 人工言語、形式言語:数式やプログラミング言語など人工的、形式的に定義された言語
    構文や意味が明確・厳密に決まっており、利用者はそのルールに従わないといけない場合が多い。

自然言語処理とは

では自然言語処理とは何でしょう。

自然言語処理(しぜんげんごしょり、英語: natural language processing、略称:NLP)は、人間が日常的に使っている自然言語をコンピュータに処理させる一連の技術であり、人工知能と言語学の一分野である。

出典:Wikipedia

つまり人間の話し言葉や書き言葉を対象として、それらの言葉が持つ意味をコンピュータを使って解析する処理技術のことをいいます。

人間使う曖昧な言葉を、0/1をモットーとするコンピュータがどのように処理していくのでしょうか。

自然言語処理の仕組み

自然言語処理は以下の4つの工程で処理が行われます。

1. 形態素解析
2. 構文解析
3. 意味解析
4. 文脈解析

形態素解析

文章を単語に分解する工程です。

意味を持つ最小要素(=形態素)に分けて、品詞などの情報を割り当てます。これにより、文章の中にある各形態素の「意味」をデータとして抽出することができるようになります。

例えば、「私は白い猫と犬を飼う」という文章を形態素解析すると、以下のようになります。

【原文】
私は白い猫と犬を飼う

【形態素解析後】
私(名詞)|は(助詞)|白い(形容詞)|猫(名詞)|と(助詞)|犬(名詞)|を(助詞)|飼う(動詞)

構文解析

上記1でバラバラにしたものを集めて、どのような構文になるか、係り受けを考える工程です。

「私は白い猫と犬を飼う」を分解(=形態素解析)したのち構文解析すると、以下のようになります。

  • 私は|白い猫と犬|を飼う
  • 私は|白い猫|と|犬|を飼う
  • 私は白い猫と|犬を飼う

構文解析の点ではいずれの文も正しいことになります。

意味解析

構文解析された文の意味を解釈する工程です。

  • 私は|白い猫と犬|を飼う
    意味:猫と犬の両方とも毛色が白。私はその猫と犬の両方を飼っている
  • 私は|白い猫|と|犬|を飼う
    意味:猫の毛色は白だが犬の毛色は不明。私はその猫と犬の両方を飼っている
  • 私は白い猫と|犬を飼う
    意味:猫の毛色は白だが犬の毛色は不明。白い猫と私とで犬を飼っている

このように1つの原文に対して複数の解釈が存在しますが、この中から正しい解釈を選ぶのに重要なのが意味解析です。

意味解析では、「意味」という概念を持たない機械に自然言語文の意味をうまく伝えて理解させる必要があります。しかし1つの単語は複数の意味を持つ場合が多く(例:お盆)、それらの意味と他の単語とのつながりから考えて、適切な候補を選び出し最終的に正しいものに絞り込むのはかなり難しい処理です。

文脈解析

文と文のつながり(=文脈)を考える工程です。

複数の文に対して文どうしのつながりを解析します。これを行うには、単語どうしの関係だけでなく、文章の背景のような複雑な情報が必要になります。

意味解析よりもさらに難しく、現状実用分野への応用は困難だといわれています。

課題

意味を理解することの難しさ

文脈を理解するのは難しいことだと思います。翻訳でも、複数の意味を持つ単語に対してどの言葉をあてはめるといいのか。言葉や文章、書き手の背景や前後関係を考えつつパズルのピースを探していきます。

コンピュータは文脈の理解力を高めるために、紙媒体やインターネット上で使われている膨大な単語・文章を学習して日々進化しているのでしょう。しかし、人間が成長の過程で身につけていく(はずの?)「文脈から意味を理解する能力=読解力」が、大量な情報の中から関係性を読み解き、そのつど解を出し続けるという、とてつもなく複雑で難解な処理であること。ここに、文脈解析の実用化における難しさがあるといわれています。

自然言語処理の活用例

現在、自然言語処理は以下のような分野に利用されています。

機械翻訳

数年間に比べてかなり精度が上がったグーグル翻訳でも、短めでシンプルな構文だと高精度の訳を返してきますが、長めで構文が複雑な文章になると残念な結果になります。係り受けをできるだけ正確に理解してもらえるよう、入力段階で工夫する必要があります。(これは人間どうしのやりとりでも大事ですね。)

ちなみに、翻訳精度は原文入力時の構造にも左右されるので

・文章をできるだけシンプルにする
・主語、述語、目的語を省略しない
・漢字を使う

などを心がけるとよいでしょう。

例)
Google翻訳
DEEPL
みらい翻訳

対話システム

スマートスピーカーや音声アシストサービス、自動応答システム、チャットボットなどがあります。

例)
Alexa
Amazon Echo
Google Home
Siri

かな漢字文字変換予測

最近では長い文章を入力しても文脈に沿った高精度な変換が出るようになっています。

例)
MicrosoftIME
Google日本語入力
ATOK

テキストマイニング

整理されてないテキストデータから新たな情報を抽出し、シミュレーションしたり改善施策につなげます。

例)
SNS分析
アンケート分析
株式市場予測

おわりに

今回は、これまで翻訳やライティング、編集など、言葉を扱う業務を担当してきた私(空間情報プラス運営担当者)が自然言語処理について学習した内容をまとめましたが、あらためて言葉は奥が深いな~と思いました。

人間が機械に言葉を教えるというと、映画「ターミネーター2」でジョン・コナー少年がターミネーター(シュワちゃん)に逃亡中の車中で会話を教えるシーンを思い出します。

サラ・コナー:100キロ以上は出さないで。つかまると面倒でしょ。
ターミネーター:理解した。
ジョン・コナー:待ってよ、それじゃダメ。みんなが喋るのを聞いてて覚えなきゃ。「理解した」なんて言い方は普通の人はしないよ。言うんなら「ノープロブレム」だ。イキがってるやつをおちょくってやりたきゃ「ダサいぜ」。そいつに喧嘩売ってやろうと思ったら「さっさと失せろ、ベイビー」だ。

その後、シュワちゃんは敵のターミネーターT-1000を追いつめて銃を撃つ前に「さっさと失せろ、ベイビー」と学習成果を披露します。Good Job!

それではまた。

【インフォマティクスの独自技術 GC Data(ジーシーデータ)】
GC Dataは、 住所やランドマーク、郵便番号など場所の情報を含むテキストデータから位置情報付きの地図データを生成できる変換・分析技術です。 この技術を活用することで、正確で見やすくわかりやすい「犯罪発生マップ」が実現しました。

データ変換・分析技術について詳しくはこちら

弊社の空間情報事業について詳しくお知りになりたい方へ

  • この記事を書いた人
  • 最新記事
空間情報クラブ 運営事務局

空間情報プラス 運営事務局

株式会社インフォマティクス 空間情報プラス運営事務局です。これまで8年余り「空間情報クラブ」を運営してきましたが、このたび新たに「空間情報プラス」を立ち上げました。空間情報プラスでは、位置情報や地図、システム、数学など幅広く読者の関心を集める情報を掲載しつつ、空間情報クラブとはまたひと味違う空間の情報化・見える化に関する新しい情報をどんどんお伝えしていきます!ご意見やご感想、掲載依頼、コラボ企画、相互リンクなどをお待ちしております!

-AI・機械学習, コラム
-,

© 2020 空間情報プラス