感情分析は、ユーザーの入力を調べて、個人的な意見の傾向を分析します。特に、ユーザーの考え方がポジティブか、ネガティブか、ニュートラルかを判断します。インテント検出リクエストを行うときに、感情分析を有効にできます。この場合、レスポンスには感情分析値が含まれます。
この分析は、Dialogflow で Natural Language API を使用して行われます。API の詳細と、Dialogflow の感情分析結果の解釈に関するドキュメントについては、以下をご覧ください。
サポートされている言語
サポートされる言語の一覧については、言語ページの感情列をご覧ください。サポートされていない言語の感情分析をリクエストすると、インテント検出リクエストは失敗しませんが、QueryResult.diagnostic_info フィールドにエラー情報が挿入されます。
始める前に
この機能は API をエンドユーザー インタラクションに使用する場合にのみ利用できます。統合を使用している場合は、このガイドをスキップできます。
始める前に、次の手順を完了します。
- Dialogflow の基本をご覧ください。
- 手順に沿って設定してください。
エージェントを作成する
- Dialogflow ES コンソールに移動します。
- プロンプトが表示されたら、コンソールにログインします。詳細については、Dialogflow コンソールの概要をご覧ください。
- サイドバー メニューで [エージェントを読み込み中] を開きます。
- [CREATE AGENT] をクリックします。
- エージェント名、デフォルトの言語、デフォルトのタイムゾーンを入力します。
- 既存のプロジェクトを入力します。Dialogflow コンソールでプロジェクトを作成するには、[Create a new Google project] を選択します。
- [作成] をクリックします。
感情分析のためのエージェントを設定する
感情分析は、インテント検出リクエストごとにトリガーすることも、常に感情分析の結果を返すようにエージェントを構成することもできます。
すべてのクエリに対して感情分析を有効にするには:
- Dialogflow ES コンソールに移動します。
- エージェントを選択します。
- エージェント名の横にある設定アイコン settings を選択します。
- [Advanced] タブを選択します。
- [現在のクエリの感情分析を有効にする] をオンにします。
Dialogflow シミュレータを使用する
Dialogflow シミュレータを使用して、エージェントと対話して感情分析の結果を受け取ることが可能です。
- 「手伝ってくれてありがとう」と入力します。
- シミュレータの下部にある [SENTIMENT] セクションを確認します。ポジティブな感情スコアが表示されます。
- シミュレータに「It didn't work at all.」と入力します。
- シミュレーターの下部にある [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 CX への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Dialogflow CX への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Dialogflow CX への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。