引言:当情感分析遇上行业痛点
在数字化时代,企业每天都会收到大量用户反馈——从电商商品评价、社交媒体提及到客服对话记录。这些非结构化文本中蕴含着用户对产品的真实态度,但传统人工分析存在明显痛点:效率低下(千条评论需数人天)、主观偏差(不同分析员判定标准不一)以及无法实时化(周报级分析滞后于业务需求)。
随着大模型技术的成熟,MaaS(Model as a Service)为这一场景提供了新解法。通过调用预训练模型的 API,企业可以快速实现文本情感分类等 NLP 任务。本文将结合 Excel VBA 与通用 MaaS 平台,演示如何高效完成批量用户反馈的情感分析,并生成可视化结果。
技术准备:工具链与核心逻辑
1. 数据源准备
我们需要一份包含用户评论的数据集。可以使用公开的 UCI 数据集作为测试样本,搜索 "sentiment analysis" 或 "product reviews" 即可找到相关脱敏数据。下载后保存为 TXT 或 CSV 格式,直接导入 Excel 即可使用。
2. 环境配置
Excel 作为企业最熟悉的数据处理工具,通过 VBA(Visual Basic for Applications)可以实现与 MaaS API 的无缝对接。核心逻辑是:读取 Excel 中的用户反馈列表 → 调用 MaaS API 获取情感标签 → 将结果写回 Excel 指定列。
步骤一:启用 VBA 编辑器
打开 Excel,按 Alt + F11 进入 VBA 编辑器。依次执行【工具】→【引用】,勾选以下两项以确保 HTTP 请求和 JSON 解析功能可用:
- Microsoft XML, v6.0
- Microsoft Scripting Runtime
步骤二:插入模块
右键工程资源管理器 → 【插入】→【模块】。在此处粘贴后续提供的代码。
实操:从 0 到 1 实现自动化分析
1. 连接测试
在编写完整逻辑前,建议先测试 API 连通性。以下是一个最小化的测试宏,用于验证密钥有效性及网络状态。
' ================================================================
' 宏名称:TestOneRequest
' 功能:向 MaaS 平台发送最简请求,测试 API 连通性和密钥有效性
' 使用方法:
' 1. 在 Excel 按 Alt+F11 进入 VBA 编辑器
' 2. 插入模块,粘贴此代码
' 3. 按 Alt+F8 运行 TestOneRequest
' ================================================================
Sub TestOneRequest()
Dim http As Object
Dim url As String, apiKey As String
Dim requestBody As String, resp As String
' ==================== 配置区(请确认)====================
' 1. API 地址(请替换为实际使用的 MaaS 平台端点)
url = "https://api.example.com/v1/chat/completions"
' 2. 你的 API Key(确保是 sk- 开头的一整串,不要有多余空格)
apiKey = "YOUR_API_KEY"
' ==========================================================
' 3. 构造最简请求体
requestBody = "{\"model\":\"/maas/deepseek-ai/DeepSeek-V3.2\"," & _
"\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]," & _
"\"max_tokens\":5}"
' 4. 创建 HTTP 对象并发送请求
Set http = CreateObject("MSXML2.XMLHTTP")
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
.send requestBody
End With
' 5. 根据 HTTP 状态码判断结果
If http.Status = 200 Then
MsgBox "✅ API 连接成功!" & vbCrLf & _
"状态码:200" & vbCrLf & _
"返回内容:" & http.responseText, vbInformation, "测试结果"
Else
MsgBox "❌ API 请求失败!" & vbCrLf & _
"状态码:" & http.Status & vbCrLf & _
"返回内容:" & http.responseText, vbCritical, "测试结果"
End If
' 6. 清理对象
Set http = Nothing
End Sub


