情緒分析會檢查使用者的輸入內容,進而識別主要的主觀意見;尤其是判斷使用者的態度為肯定、否定或中立。提出偵測意圖要求時,您可以指定要執行情緒分析,而回應將會包含情緒分析值。
Dialogflow 會使用 Natural Language API 執行這類分析。如要進一步瞭解該 API 及關於解讀 Dialogflow 情緒分析結果的說明文件,請前往以下連結:
支援的語言
如需支援的語言清單,請參閱語言頁面中的「sentiment」(情緒) 欄。如果您要求對不支援的語言進行情緒分析,偵測意圖要求不會失敗,不過 QueryResult.diagnostic_info
欄位會包含錯誤資訊。
事前準備
這項功能僅適用於用於使用者互動的 API。如果您使用的是整合,可以略過本指南。
閱讀本指南之前,請先完成下列工作:
- 詳閱 Dialogflow 基本概念。
- 執行設定步驟。
建立虛擬服務專員
如果您尚未建立服務帳戶,請立即建立:
- 前往 Dialogflow ES 主控台。
- 按照系統要求登入 Dialogflow 主控台。詳情請參閱 Dialogflow 主控台總覽。
- 按一下左側欄選單中的 [Create Agent] (建立代理程式)。(如果您已有其他代理程式,請按一下代理程式名稱然後捲動至底部,再按一下 [Create new agent] (建立新代理程式)。)
- 輸入代理程式的名稱、預設語言和預設時區。
- 如果您已建立專案,請輸入該項專案的資料。如要允許 Dialogflow 主控台建立專案,請選取 [Create a new Google project] (建立新 Google 專案)。
- 按一下 [Create] (建立) 按鈕。
將範例檔案匯入代理程式
本指南中的步驟會假設您的代理程式符合某些條件,因此您需要匯入為本指南準備的代理程式。匯入時,這些步驟會使用「還原」選項,覆寫所有介面設定、意圖和實體。
如要匯入檔案,請按照下列步驟操作:
-
下載
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」區段。應該會顯示正面情緒分數。
接著,在模擬工具中輸入「It didn't work at all.」。
查看模擬工具底部的「SENTIMENT」區段。應該會顯示負面情緒分數。
偵測意圖
如要偵測意圖,請呼叫 Sessions
類型的 detectIntent
方法。
REST
呼叫detectIntent
方法並提供 sentimentAnalysisRequestConfig
欄位。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- SESSION_ID:工作階段 ID
HTTP 方法和網址:
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 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。