AI・機械学習 コラム

自然言語処理(NLP)とは|仕組み・活用例・課題

7月 9, 2020

昨今スマートスピーカーやチャットボットをはじめ、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は、 住所やランドマーク、郵便番号など場所の情報を含むテキストデータから位置情報付きの地図データを生成できる変換・分析技術です。 この技術を活用することで、正確で見やすくわかりやすい「犯罪発生マップ」が実現しました。

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

書籍紹介

ゼロから作るDeep Learning 2―自然言語処理編

コンピュータ専門書のベストセラー『ゼロから作るDeep Learning』の続編。自然言語処理や時系列データ処理にフォーカスし、ディープラーニングを使ってさまざまな問題に挑みます。

word2vecやRNN(リカレントニューラルネットワーク)、LSTMやGRU、seq2seqやAttentionなど最先端技術を実装レベルでマスターすることを目的とした書。平易で分かりやすい言葉で説明されています。

記事の評価をお願いします!

  • この記事を書いた人
  • 最新記事

空間情報クラブ編集部

空間情報クラブ編集部です。GISソフトの便利な機能をご紹介する活用講座やGIS用語解説、地図、位置情報、AI機械学習などをテーマにしたコラムを掲載しています。ご意見・ご感想、寄稿、コラボ企画などありましたらぜひご連絡ください。お待ちしております!

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

© 2020 株式会社インフォマティクス