感情分析は、ユーザーの入力を調べて、個人的な意見の傾向を分析します。特に、ユーザーの考え方がポジティブか、ネガティブか、ニュートラルかを判断します。インテント検出リクエストを行うときに、感情分析を実行するように指定でき、この場合、レスポンスには感情分析値が含まれます。
Natural Language API は Dialogflow でこの分析を行うために使用されます。API の詳細および Dialogflow の感情分析結果の解釈に関するドキュメントについては、以下をご覧ください。
サポートされている言語
サポートされている言語の一覧については、言語ページの感情列をご覧ください。サポートされていない言語の感情分析をリクエストすると、インテント検出リクエストは失敗しませんが、QueryResult.diagnostic_info
フィールドにエラー情報が挿入されます。
始める前に
この機能は API をエンドユーザー インタラクションに使用する場合にのみ利用できます。統合を使用している場合は、このガイドをスキップできます。
このガイドを読む前に、次の手順を行ってください。
- Dialogflow の基本をご覧ください。
- 手順に沿って設定してください。
エージェントを作成する
エージェントをまだ作成していない場合は、ここで作成します。
- Dialogflow ES コンソールに移動します。
- Dialogflow コンソールにログインするよう求められたら、ログインします。詳細については、Dialogflow コンソールの概要をご覧ください。
- 左側のサイドバー メニューで [Create Agent] をクリックします。(すでに他のエージェントをお持ちの場合は、エージェント名をクリックし、一番下までスクロールして [Create new agent] をクリックします)。
- エージェント名、デフォルトの言語、デフォルトのタイムゾーンを入力します。
- すでにプロジェクトを作成している場合は、そのプロジェクトを入力します。Dialogflow コンソールでプロジェクトを作成できるようにする場合は、[Create a new Google project] を選択します。
- [Create] ボタンをクリックします。
エージェントにサンプル ファイルをインポートする
このガイドの手順でエージェントの前提条件を設定するため、このガイド用に準備されたエージェントをインポートする必要があります。インポート時に、この手順では restore オプションが使用されます。これにより、すべてのエージェント設定、インテント、エンティティが上書きされます。
ファイルをインポートする手順は次のとおりです。
-
room-booking-agent.zip
ファイルをダウンロードします。 - Dialogflow ES コンソールに移動します。
- エージェントを選択します。
- エージェント名の横にある設定 settings ボタンをクリックします。
- [Export and Import] タブを選択します。
- [Restore from Zip] を選択し、手順に従ってダウンロードした zip ファイルを復元します。
感情分析のためのエージェントを設定する
インテントの検出リクエストごとに感情分析をトリガーすることも、感情分析結果を常に返すようにエージェントを構成することもできます。
すべてのクエリに対して感情分析を有効にするには:
- Dialogflow ES コンソールに移動します。
- エージェントを選択します。
- エージェント名の横にある設定ボタン(settings)をクリックします。
- [Advanced] タブを選択します。
- [Enable sentiment analysis for the current query] をオンに切り替えます。
Dialogflow シミュレータを使用する
Dialogflow シミュレータを使用してエージェントを操作し、感情分析結果を受け取ることができます。
「ありがとうございました」と入力します。
シミュレータの下部にある [SENTIMENT] セクションをご覧ください。ポジティブな感情スコアが表示されます。
次に、シミュレータに「役に立ちませんでした」と入力します。
シミュレータの下部にある [SENTIMENT] セクションをご覧ください。ネガティブな感情スコアが表示されます。
インテントの検出
インテントを検出するには、Sessions
タイプの detectIntent
メソッドを呼び出します。
REST
detectIntent
メソッドを呼び出して、sentimentAnalysisRequestConfig
フィールドに入力します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID
- SESSION_ID: セッション ID
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
リクエストの本文(JSON):
{ "queryParams": { "sentimentAnalysisRequestConfig": { "analyzeQueryTextSentiment": true } }, "queryInput": { "text": { "text": "please reserve an amazing meeting room for six people", "languageCode": "en-US" } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "responseId": "747ee176-acc5-46be-8d9a-b7ef9c2b9199", "queryResult": { "queryText": "please reserve an amazing meeting room for six people", "action": "room.reservation", "parameters": { "date": "", "duration": "", "guests": 6, "location": "", "time": "" }, "fulfillmentText": "I can help with that. Where would you like to reserve a room?", ... "sentimentAnalysisResult": { "queryTextSentiment": { "score": 0.8, "magnitude": 0.8 } } } }
sentimentAnalysisResult
フィールドには score
と magnitude
の値が含まれていることに注意してください。
Java
Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。