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