情感分析会检查用户输入并识别主导性主观意见,以确定用户的态度是积极、消极还是中立。发出检测意图请求时,您可以启用情感分析,这样响应中就会包含情感分析值。
Dialogflow 使用 Natural Language API 来执行此分析。如需详细了解该 API 以及如何解读 Dialogflow 情感分析结果,请参阅以下内容:
支持的语言
如需查看受支持的语言列表,请参阅语言页面上的情感列。如果您请求对语言不受支持的语言进行情感分析,则检测 intent 请求不会失败,但 QueryResult.diagnostic_info 字段会包含错误信息。
准备工作
此功能仅适用于使用 API 与最终用户互动的情况。如果您使用的是集成服务,则可以跳过本指南。
在开始之前,请完成以下步骤:
- 阅读 Dialogflow 基础知识。
- 执行设置步骤。
创建代理
- 前往 Dialogflow ES 控制台。
- 如果系统提示,请登录控制台。如需了解详情,请参阅 Dialogflow 控制台概览。
- 在边栏菜单中,展开加载代理。
- 点击创建新代理。
- 输入代理名称、默认语言和默认时区。
- 输入现有项目。如需让 Dialogflow 控制台创建项目,请选择创建新的 Google 项目。
- 点击创建。
用于情感分析的代理设置
您可以按检测 intent 请求触发情感分析,也可以将代理配置为始终返回情感分析结果。
要为所有查询启用情感分析,请执行以下操作:
- 前往 Dialogflow ES 控制台。
- 选择一个代理。
- 选择代理名称旁边的设置 settings 图标。
- 选择高级标签。
- 开启为当前查询启用情感分析。
使用 Dialogflow 模拟器
您可以使用 Dialogflow 模拟器与代理互动并接收情感分析结果:
- 输入“Thank you for helping me.”
- 查看模拟器底部的情感部分。它显示了积极的情感得分。
- 在模拟器中输入“It didn't work at all.”。
- 查看模拟器底部的情感部分。它显示了负面情感得分。
检测意图
如需检测 intent,请对 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 CX 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需向 Dialogflow CX 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 Dialogflow CX 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。