自然言語処理とは

 

今回は「自然言語処理」今大流行中のAIのお話です。なんだかすっげー難しい話に感じるかもしれませんが、気のせいです!まずはざっくり楽しく覚えてみましょう!

 

 

 

「自然言語処理」は有名どころでは「Siri」「 OK Google」がこの技術を利用しています。

 

こいつらは、昔に比べて結構、言葉が通じる様になりましたよね。曖昧な表現を苦手とする機械が、どうして人間の言葉を理解できる様になったのでしょうか?

 

それは、人間の言葉を機械が理解できるよう、変換する技術があるからなんです!これこそが!

 

自然言語処理なんです!

 

言葉の意味としては単純にこれだけの話です!

 

AIエンジン

意味がざっくり理解できたところで、更に掘り下げて説明します。自然言語処理はAIのエンジンを使います。

 

エンジンで有名なのはIBMが提供している「Watson」Microsoftが提供している「LUIS」などで色々と種類があります。

 

この「エンジン」に音声アシスタントやチャットボットのアプリケーションを開発して繋げます!

 

 

 

AIのエンジンはメーカーによって違うのですが、どこも共通して「インテント」と「エンティティ」と呼ばれる、2つの考え方を使って、言葉を理解させています。この用語をたった2つ覚えるだけで、だいぶ理解が深まると思います!

 

インテントとは

まずはインテントです。こちらは「意図」って意味でして、「チャットで入力された言葉」がどんな意図をもっているか、覚えさせるんです。イメージとしては以下の様な感じです。

 

※意図を理解したイメージ

 

おなかすいた!

 
 

インテント(意図)は「飲食店を探している」と理解できた!

 
そして、これを実現するには、調べるときに使いそうなフレーズをひたすら覚えさせていくんですね。例えばこんな感じで。
 
 
#飲食店を探している(意図)
  • おなかすいた
  • 何か食べたい
  • いい店おしえなさい
  • ディナー食べたい
  • ランチ食べたい
 
実際どんな言葉で入力されるかは、回答内容や、利用者の言葉の使い方によって違ってきますんで、使いそうな言葉を最初から100%予測する事はできません。
 
 
ですので、ユーザーは一体どんな言葉で調べようとしたのか、ログを日々集計して、何度も何度も登録して、どんどん覚えさせていくんです。
 
 
 
 
 
 
 
 
 
 
 
 
 
チャットボットや音声アシストが、最初ちゃんと答えられない事が多いのは、インテントの情報が少なく、意図を理解できてない事が理由の1つなんです。
 
 
つまりざっくりまとめると、インテントは動詞を登録するみたいなイメージです。
 
 

エンティティとは

続いて、エンティティ。こちらは一言でいうなら「目的の対象となる単語」みたいなイメージです。
 
 
エンティティは、インテントに必要な情報を覚えさせておく事ができます。
 
 
例えば「飲食店を探している」という意図だとしたら、何を食べたいか?という情報が人間の会話だと必要ですよね。
 
 
これを理解させる為に「チャーハン」や「カレー」の様な実際の目的となる言葉を覚えさせます。
 
 
これを覚えこませると、「チャーハンを食べたい」を理解できる様になりますし、以下の様な聞き返しも可能になります。
 
 

人間質問:おなかすいた!

 
 

インテント(意図)は「飲食店を探している」と認識

 
 

ボット聞き返し:飲食店をお探しですね。どんなものを食べたいなどはありますか?

 
 

人間回答:炒飯が食べたい

 
 

インテントは「飲食店を探している」エンティティは
「チャーハン」であると認識。

結果「チャーハンの店を探している」と理解して
回答データを呼び出す

 
 

ボット回答:承知しました。チャーハンのお店を検索致します。

お探しのチャーハンのお店はこちらになります。
よっしーラーメン☆☆ MAP
世界一チャーハン ☆☆☆MAP
チャーハンジビエ ☆ MAP

 
また、「単語」って意味は同じでも、呼び方が違う場合があるので、以下の様に類義語を覚えさせる事もできます。
 
 
これもインテント同様、実際に質問されたログの集計結果をもとに、何度も何度も覚えさせていくのが一般的なやり方です。

 

(例)

・【チャーハン = 炒飯】

・【フランス料理=フレンチ、フレンチレストラン】

 
 
エンティティは名詞を登録する事が多いので、単語の辞書登録のイメージが一番近い気がします。
 
※設計によっては時間のデータを登録する場合もあります。
 
 

最後に

てっとり早くイメージするなら、まずはインテントは意図で「動詞」みたいなもの、エンティティは目的で「名詞」みたいなものって覚えるのがいいかもしれません。自然言語処理は、まずこの2つを理解するとだいぶイメージが付きやすくなります。

 

こういう仕組みなんで、音声アシストやチャットボットは「電気をつけて!」みたいな、短い文章で目的が明確なモノは良いのですが、沢山意図が入っている様な、長文を理解するのは苦手です。というかほぼ無理です・・。

 

なので、AIと話すときは短い文で話してあげて下さい!

 

 

 

 

 

 

 

 

話は変わりますが、アプリやWEBページを意識して見てみると、チャットボットを導入しているところが、めっちゃ多い事に気付きますので、チャットボットがどのように利用されているか見てみるのも面白いと思います!

 

それと、チャットボットを利用された事がある方は解ると思いますが、よく回答の後、最後に

 

【お役に立ちましたでしょうか?(はい・いいえ)】

 

みたいな表示がでるんですけど、実はこれをもとに、回答が本当に正しいかどうかを調整してますので、できるだけ押してあげてください!

フォロー待ってます!
シェア大歓迎!

コメントを残す

メールアドレスが公開されることはありません。