Google Cloudの「Natural Language API」で顧客の声をネガポジ判定する方法をご紹介!
- API
- Cloud
- GCP活用事例
- 自然言語処理
目次
Natural Language APIとは?
今回は、Google Cloudの「Natural Language API」を紹介します。「Natural Language」は「自然言語」と訳すことができ、自然言語とは、人が会話するときの言語や書籍の文体に著されている言語のように、「日常的な表現で用いられる言語」のことを言います。
自然言語の例として、たとえば日本でいちばん大きい湖の名前と広さをインターネット検索で調べるとき、”日本”・”いちばん”・”大きい”・”湖”・”広さ”などのキーワードで検索を行います。これを、「キーワード検索」と言います。キーワード検索は、「日常的な表現で用いられる言語」とは言えず、つまり自然言語ではありません。
これに対し、自然言語で検索する場合、「日本でいちばん大きい湖の名前と広さを教えてください」などのように、「日常的な表現で用いられる言語」で質問することができます。
「Natural Language API」では、この自然言語を解析し、会話のなかに含まれる名詞の属性(Entities)、会話を発した人物の感情(Sentiment)、文章の構文(Syntax)などを解析することができます。
Natural Language APIを利用したサービス
Natural Language APIを利用することで、たとえば次のようなサービスを構築することができます。
クレームの内容を把握する
自社製品を使ってくださるお客様に対し、Webサイトから製品に関するアンケートを取ったとします。そのアンケートのなかから、製品に対して否定的な意見やクレームをピックアップし、製品の今後の品質改善のための参考資料として用いる場合、Natural Language APIの感情分析を用いることにより、アンケートに寄せられた肯定的な意見と否定的な意見を分類することができます。
何について書かれた文章なのかを分類する
Googleニュースには、「ビジネス」「科学&テクノロジー」「エンタメ」「スポーツ」など、さまざまなジャンルのニュースが掲載されています。それらのコンテンツは、他のWebサイトのコンテンツを取り扱っており、Googleニュースはそれらを的確にジャンル分けします。このジャンル分けは、Natural Language APIの属性分析が提供するような品詞解析(形態素解析)を行うことにより、コンテンツに含まれる特定の品詞の出現頻度等から行っています。
文章を要約する
文章の内容をなるべく損なわず、短い文章で置き換えたい場合、文章に含まれる品詞とそのつながりを正しく理解する必要があります。Natural Language APIでは、構文解析によって各々の品詞のつながりを理解することができるため、文章を要約する際、品詞の一部を省略したために異なる意味の文章になってしまうことを避けることができます。
Natural Language APIのデモ
Natural Language APIは、上記の「Cloud Natural Language」のURLより試用することができます。
たとえば、下の文章を読み込ませ、その結果をみてみましょう。
本日は、雲1つない晴天だ。
朝早く目が覚めたため、近所をジョギングした。
とても良い気分だ。
さて、この文章をNatural Language APIで解析すると、次のような結果が得られます。
Entities
本日は、 ⟨雲⟩1 ⟨1⟩5 つない晴天だ。 朝早く ⟨目⟩2 が覚めたため、 ⟨近所⟩4 をジョギングした。 とても良い ⟨気分⟩3 だ。
No. | 属性(Entity) | 重要性(Salience) | 分類 |
---|---|---|---|
1 | 雲 | 0.46 | OTHER |
2 | 目 | 0.22 | OTHER |
3 | 気分 | 0.16 | OTHER |
4 | 近所 | 0.16 | LOCATION |
5 | 1 | NUMBER |
属性解析(Entities)の結果は、上記のようになりました。「重要性(Salience)」とは、その属性が文章のなかでどのくらい重要かを示す指標です。数値が高くなればなるほど、その属性は文章のなかで重要であると判断されています。
属性の分類には、上記の文章に含まれていた、場所を示す「LOCATION」、数値を示す「NUMBER」、それ以外を示す「OTHER」のほかに、人を示す「PERSON」、イベントを示す「EVENT」などがあります。詳しくは、Cloud Natural Languageのリファレンスをご覧ください。
Sentiment
Score | Magnitude | |
---|---|---|
Entire Document | 0.3 | 1 |
本日は、雲1つない晴天だ。 | 0 | 0 |
朝早く目が覚めたため、近所をジョギングした。 | 0 | 0 |
とても良い気分だ。 | 0.9 | 0.9 |
この表の数値は、肯定的な文章か否定的な文章かを示しています。「Score」に関しては、数値が高ければ肯定的であり、低ければ否定的であることを意味します。数値の範囲は以下になります。
Scoreの数値 | ||
---|---|---|
-1.0 〜 -0.25 | -0.25 〜 0.25 | 0.25 〜 1.0 |
「Magnitude」は、感情の強さを示します。肯定的であれ否定的であれ、その感情が強ければ強いほど、数値は高くなります。
「Entire Document」は、文章全体をとおしての感情を示す数値です。Scoreが示す数値が「0.3」、Magnitudeが示す数値が「1」ですので、「全体をとおして、少し肯定的な印象を受ける文章である」と判断されたようです。
3つの文章のうちの最初の2つは、肯定的か否定的かを判断する文章ではなかったため、Scoreの数値は「0」であり、Magnitudeの数値も「0」です。ただし3つ目の文章は、「とても良い気分」とあるとおり、肯定的な文章として捉えられており、Scoreの数値は「0.9」、Magnitudeの数値は「1」となっています。このサンプルは非常に短い文章ですが、「Entire Document」のMagnitudeの数値は、長い文章ほど高くなる傾向があります。
No. | 属性 | 属性の分類 | Sentiment | |
---|---|---|---|---|
Score | Magnitude | |||
1 | 雲 | OTHER | 0 | 0 |
2 | 目 | OTHER | 0.1 | 0.1 |
3 | 気分 | OTHER | 0.9 | 0.9 |
4 | 近所 | LOCATION | 0.1 | 0.1 |
また、Sentimentのもう1つの結果として表示されたこちらの表は、属性ごとの感情の判断基準を表しています。これをみると、「目」という名詞に対して「Score」と「Magnitude」が「0.1」、「気分」という名詞に対して「Score」と「Magnitude」が「0.9」という数値になっており、この2つ名詞、特に「気分」という名詞が感情解析の判断基準になったことがわかります。
Syntax
構文解析の結果は、上の図のように表示されます。この図は、どの品詞がどこに関わっているのかを表しており、この構文解析の結果は、Cloud Natural Language APIが自然言語による質問に対して正確な回答を返すことができるかどうかを判別するための指標にもなります。
つまり、冒頭で説明した「日本でいちばん大きい湖の名前と広さを教えてください」という質問に対し、これは「湖」に対する質問であり、「名前」と「広さ」について知りたがっている質問であることを正しく理解できているかどうかを確認することができます。
Natural Language APIで長文を分析してみる
先ほどのサンプルでは、3つしかない文章を解析してみましたが、今度はもう少し長文を解析してみましょう。上述の、「Natural Language APIを利用したサービス」にて紹介した「① クレームの内容を把握」を想定したサンプル文章を解析してみます。
アンケート結果が肯定的だった場合の分析結果
まずは、アンケート結果が肯定的だった場合を想定した、以下の文章を解析してみます。
御社の製品を使うようになってから、定型業務のほとんどが自動化できました。今まで、該当業務に携わっていた人材にはひっ迫していた他の作業を行ってもらい、人材不足も解消できました。自動化された定型業務はミスがなく、人の手でやっていたときよりもはるかに正確で早いです。もっと早く、御社の製品を使っていれば良かったと、心の底から感じております。今後とも、よろしくお願いいたします。
上記の文章を解析したSentimentの結果は、次のようになりました。
Score | Magnitude | |
---|---|---|
Entire Document | 0.6 | 3.5 |
御社の製品を使うようになってから、定型業務のほとんどが自動化できました。 | 0.7 | 0.7 |
今まで、該当業務に携わっていた人材にはひっ迫していた他の作業を行ってもらい、人材不足も解消できました。 | 0.9 | 0.9 |
自動化された定型業務はミスがなく、人の手でやっていたときよりもはるかに正確で早いです。 | 0.9 | 0.9 |
もっと早く、御社の製品を使っていれば良かったと、心の底から感じております。 | -0.1 | 0.1 |
今後とも、よろしくお願いいたします。 | 0.7 | 0.7 |
全体的な文章(Entire Document)としては、Scoreの数値が「0.6」のため、なかなか肯定的な文章であると判断され、その感情の強度を示すMagnitudeの数値も「3.5」となっています。先ほどのサンプルで解析した文章よりも少し長めの文章で、肯定的と認識された文章がいくつかあるため、Magnitudeの数値は、先ほどのサンプルよりも少し高めな結果となりました。
また、属性1つずつのSentimentの数値は、次のような結果となりました。
No. | 属性 | 属性の分類 | Sentiment | |
---|---|---|---|---|
Score | Magnitude | |||
1 | 製品 | CONSUMER GOOD | 0 | 0 |
2 | 定型業務 | OTHER | 0 | 0.1 |
3 | 御社 | OTHER | 0 | 0 |
4 | ほとんど | OTHER | 0.1 | 0.1 |
5 | 該当業務 | OTHER | 0 | 0 |
6 | 人材 | OTHER | 0 | 0 |
7 | 作業 | EVENT | 0 | 0 |
8 | 人材不足 | OTHER | 0.1 | 0.1 |
9 | 他 | OTHER | 0 | 0 |
10 | 底 | OTHER | 0 | 0 |
11 | 心 | OTHER | 0 | 0 |
12 | ミス | OTHER | -0.1 | 0.1 |
13 | 手 | OTHER | 0 | 0 |
14 | 人 | PERSON | 0 | 0 |
これをみると、属性1つ1つでみれば、感情を読み取る基準は少なかったと言えます。全体的な文章から読み取れる感情は、属性1つ1つで判断したのではなく、文章の構成をみて判断した結果と言えるでしょう。
アンケート結果が否定的だった場合の分析結果
次に、アンケート結果が否定的だった場合を想定した、以下の文章を解析してみます。
高い買い物をしたにも関わらず、システムが正常に動いたことはほとんどありません。頻繁にエラーが発生し、エラーの原因追及のために多大な時間を費やしてしまいます。もはや、手作業の方が早いくらいです。御社のサポートデスクに電話しても、「マニュアルどおりに設定してください」の一点張りで、本当にイライラします。こんな単純なことが、御社のシステムではなぜできないのでしょうか?
上記の文章を解析したSentimentの結果は、次のようになりました。
Score | Magnitude | |
---|---|---|
Entire Document | -0.5 | 2.7 |
高い買い物をしたにも関わらず、システムが正常に動いたことはほとんどありません。 | -0.3 | 0.3 |
頻繁にエラーが発生し、エラーの原因追及のために多大な時間を費やしてしまいます。 | -0.8 | 0.8 |
もはや、手作業の方が早いくらいです。 | -0.3 | 0.3 |
御社のサポートデスクに電話しても、「マニュアルどおりに設定してください」の一点張りで、本当にイライラします。 | -0.8 | 0.8 |
こんな単純なことが、御社のシステムではなぜできないのでしょうか? | -0.2 | 0.2 |
全体的な文章(Entire Document)としては、Scoreの数値が「-0.5」のため、否定的な文章であると判断され、その感情の強度を示すMagnitudeの数値も「2.7」となっています。すべての文章において、Scoreの数値はマイナスとなっており、5つの文章において、マイナスの数値が-0.25以上である赤枠で表示されています。文章によっては感情の強度を示すMagnitudeの数値も高く、お客様は非常にご立腹されている状況を正確に読み取れているのを確認できます。
また、属性1つずつのSentimentの数値は、次のような結果となりました。
No. | 属性 | 属性の分類 | Sentiment | |
---|---|---|---|---|
Score | Magnitude | |||
1 | システム | OTHER | -0.1 | 0.2 |
2 | エラー | OTHER | -0.3 | 0.7 |
3 | こと | OTHER | 0 | 0 |
4 | 買い物 | EVENT | 0 | 0 |
5 | 正常 | OTHER | 0 | 0 |
6 | 弊社 | ORGANIZATION | 0 | 0 |
7 | 原因追及 | EVENT | 0 | 0 |
8 | 時間 | OTHER | 0.2 | 0.2 |
9 | 方 | PERSON | 0 | 0 |
10 | 手作業 | EVENT | 0 | 0 |
11 | こと | OTHER | 0 | 0 |
12 | マニュアルどおり | OTHER | 0 | 0 |
13 | 一点張り | OTHER | 0 | 0 |
14 | サポートデスク | OTHER | 0 | 0 |
「エラー」という属性に対してScoreの数値が「-0.3」、Magnitudeの数値が「0.7」と、否定的な感情を読み取っているものの、それ以外の属性でいえば、感情を読み取る基準は少なかったようです。否定的な文章に関しても、全体的な文章から読み取れる感情を、属性1つ1つで判断したのではなく、文章の構成をみて判断した結果と言えます。
Natural Language APIの料金について
Natural Language APIの料金は、月額の従量課金制となっており、使用したAPIの機能によって料金が異なります。Natural Language APIの使用量は、「ユニット」という単位に基づいて課金します。短い文章であっても、最低1ユニットから換算され、1,000文字ごとに1ユニットとしてカウントします。
次の表は、ユニットの総数に基づく1,000ユニットあたりの料金を表しています。
機能 | 0~5,000 | 5,000~1,000,000 | 1,000,000~5,000,000 | 5,000,000~20,000,000 |
---|---|---|---|---|
エンティティ分析 | 無料 | $1.00 | $0.50 | $0.25 |
感情分析 | 無料 | $1.00 | $0.50 | $0.25 |
構文解析 | 無料 | $0.50 | $0.25 | $0.13 |
エンティティ感情分析 | 無料 | $2.00 | $1.00 | $0.50 |
チャットボットを簡単に作成できるDialogflowでも使われている
GCPのサービスのなかに、「Dialogflow」というサービスがあります。
Dialogflowは、Androidスマートフォンに「OK. Google」と話しかけることで起動するGoogleアシスタントを、さまざまなシステムから利用するためのサービスです。このDialogflowでも、自然言語解析が行われています。厳密にいえば、Dialogflowがスマートスピーカーやチャットボットなどを経由してGoogleアシスタントを呼び出し、そのGoogleアシスタントが自然言語を解析するためのサービスとして、Natural Language APIを利用しています。
チャットボットに関して作ってみたいという方は、以下の記事がご覧ください。
チャットボット導入でコスト削減!Google Cloudでチャットボットを作ってみよう!
Natural Language APIを活用して業務を自動化しよう!
いかがでしたでしょうか?
Natural Language APIを活用すれば、
- クレームの内容を把握する
- 何について書かれた文章なのかを分類する
- 文章を要約する
などの作業の置き換えが可能です。具体的には、お客様からいただいたアンケートの分析であったり、新サービスのリリースや、新機能の反応をSNSからデータを収集してネガティブだったのか、ポジティブだったのかの判定など幅広い活用ができます。
他にも応用すれば、自社のSNSなどにきたネガティブなコメントを自動的にブロックしたり、たくさんくるお問い合わせの中でトラブルの火種になりそうなコメント抽出して担当者に自動的に通知したりすることなどもできるので、幅広い範囲での活用が見込まれます。
ぜひ、そのような活用をしたいけどもどうすれば良いのかお困りの方がおられましたら、お気軽に弊社トップゲートへお問い合わせください。弊社トップペートでは、いただいたご要望を叶えて終わりではなく、作ってからお客様が使う未来までイメージをして最適な提案をすることができます。ぜひあなたの悩みをテクノロジーで解決するお力になれればと思います。
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
機械学習・AIサービスにご興味がある方におすすめの記事をご紹介!
最後までご覧いただきありがとうございます。トップゲート編集部がこの記事を読んだ方におすすめしたい機械学習・AIサービスの記事を厳選します。
ご興味ある記事をぜひご覧ください!
【活用事例紹介付き】Google CloudのAI/機械学習サービスを一挙紹介!
ビジネスが加速する!Cloud AI の紹介と機械学習の最新情報を事例を元に活用方法を解説!
簡単にオリジナルAIを始められる!Google Cloudの機械学習/AIサービス「Cloud AutoML」を一挙紹介
パブリッククラウドAWS GCP Azure Watsonの音声認識AIを価格や機能、精度の観点で比較!
3大パブリッククラウドAWS GCP Azure の画像認識AIを価格や機能、精度の観点で比較!
弊社トップゲートでは、TOPGATE Broadcaster と称してウェビナーを定期開催しております。
- クラウドに関すること
- Google Cloudの最新情報やお役立ち情報
- テレワークに関すること
など、 仕事で差がつく情報を忙しいビジネスパーソンのために短時間でコンパクトにお届けしております。
参加者さまからの「わかりやすかった」「勉強になった」など好評いただいております。取っ付きにくい内容も講師がわかりやすく解説しておりますので、お気軽にご参加ください。
TOPGATE Broadcasterの情報はこちら
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!