Classification Prompts
基础 classification prompts 与快速上手
本章整理了常见的 Classification Prompt 模板,用于测试和落地 LLM 的文本分类能力。Classification 是 NLP 中最基础也最实用的任务之一,掌握它能让你快速构建各种自动化流程。
什么是 Text Classification?
Text Classification(文本分类)是将一段文本分配到一个或多个预定义类别的任务。
┌─────────────────────────────────────────────────────────────┐
│ Classification 流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 输入文本 → LLM 分析 → 输出标签 │
│ │
│ "这个产品太棒了!" 理解语义 positive │
│ "服务态度很差" 判断情感 negative │
│ "还行吧" 匹配标签 neutral │
│ │
└─────────────────────────────────────────────────────────────┘
为什么 Classification 很重要?
| 应用场景 | 具体用途 | 业务价值 |
|---|---|---|
| 客服系统 | 工单分类、情绪检测、优先级判断 | 提升响应效率 |
| 内容审核 | 垃圾信息、违规内容、敏感话题识别 | 降低人工成本 |
| 邮件处理 | 垃圾邮件过滤、邮件类型分类 | 提升工作效率 |
| 用户反馈 | 评论情感分析、NPS 预测 | 洞察用户需求 |
| 智能路由 | 问题类型识别、部门分发 | 优化流程 |
Classification 的常见类型
| 分类类型 | 标签示例 | 典型场景 |
|---|---|---|
| 情感分析 (Sentiment) | positive / negative / neutral | 评论分析、舆情监控 |
| 意图识别 (Intent) | 咨询 / 投诉 / 退款 / 购买 | 客服机器人 |
| 主题分类 (Topic) | 技术 / 财经 / 体育 / 娱乐 | 新闻分类 |
| 紧急程度 (Urgency) | 高 / 中 / 低 | 工单系统 |
| 语言检测 (Language) | 中文 / 英文 / 日文 | 多语言路由 |
| 垃圾检测 (Spam) | spam / not_spam | 邮件过滤 |
核心 Prompt 结构
一个好的 Classification Prompt 应包含以下要素:
┌─────────────────────────────────────────────────────────────┐
│ Classification Prompt 结构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 任务说明 - 清晰说明要做什么 │
│ 2. 标签空间 - 明确列出所有可能的类别 │
│ 3. 输出约束 - 指定输出格式(只输出标签 / JSON / 等) │
│ 4. 输入数据 - 待分类的文本 │
│ │
└─────────────────────────────────────────────────────────────┘
通用模板
请将以下文本分类到指定类别中。
类别选项:{label_1} / {label_2} / {label_3}
要求:
- 只输出类别名称,不要解释
- 如果无法判断,输出 "unknown"
文本:{input_text}
类别:
Quick Start:Zero-shot 分类
最简单的方式是直接告诉 LLM 要分类到哪些标签:
Prompt:
Classify the text into neutral, negative, or positive.
Text: I think the food was okay.
Sentiment:
Output:
neutral
这种方式适合:
- 快速原型验证
- 标签语义清晰的场景
- 对一致性要求不高的任务
Few-shot 分类:更稳定的输出
当你需要更稳定、更可控的输出格式时,使用 Few-shot(提供 2-5 个 examples):
Prompt:
将文本分类为 positive / negative / neutral。
示例:
文本:这个产品太棒了,强烈推荐!
分类:positive
文本:服务态度极差,再也不来了。
分类:negative
文本:还行吧,一般般。
分类:neutral
现在分类:
文本:包装很精美,但味道一般。
分类:
Output:
neutral
示例 1:情感分析 (Sentiment Analysis)
最常见的分类任务,判断文本表达的情绪倾向。
场景:电商评论分析
Prompt:
你是一个情感分析专家。请分析以下商品评论的情感倾向。
分类标准:
- positive:正面评价、满意、推荐
- negative:负面评价、不满、投诉
- neutral:中性评价、陈述事实、没有明显情感
评论:快递很快,但包装有点破损,总体还可以接受。
情感:
Output:
neutral
示例 2:意图识别 (Intent Classification)
识别用户消息的意图,常用于客服机器人。
场景:智能客服
Prompt:
你是客服意图分类器。请识别用户消息的意图。
意图类型:
- 咨询:询问产品信息、使用方法
- 投诉:表达不满、要求解决问题
- 退款:申请退款、退货
- 其他:无法归类的消息
用户消息:我上周买的手机屏幕出现了裂纹,这才用了三天,你们怎么处理?
意图:
Output:
投诉
示例 3:主题分类 (Topic Classification)
将文本分类到不同的主题领域。
场景:新闻内容分类
Prompt:
请将以下新闻标题分类到对应主题。
主题选项:
- 科技:互联网、AI、手机、软件
- 财经:股市、经济、投资、企业
- 体育:赛事、运动员、比赛结果
- 娱乐:明星、影视、综艺、音乐
- 社会:民生、事件、政策
新闻标题:苹果发布 iPhone 16,搭载全新 A18 芯片
主题:
Output:
科技
示例 4:紧急程度分类 (Urgency Classification)
判断工单或请求的优先级。
场景:工单系统
Prompt:
你是工单优先级分类器。根据工单内容判断紧急程度。
紧急程度标准:
- 高:系统宕机、数据丢失、安全漏洞、影响大量用户
- 中:功能异常、性能问题、影响部分用户
- 低:界面问题、建议反馈、一般咨询
工单内容:用户反馈登录页面加载速度很慢,大约需要 10 秒以上,影响了约 20% 的用户。
紧急程度:
Output:
中
示例 5:多标签分类 (Multi-label Classification)
有时一段文本可能同时属于多个类别。
场景:内容标签
Prompt:
你是内容标签分类器。为以下文章添加合适的标签。
可用标签:
- 人工智能
- 编程开发
- 职业发展
- 学习方法
- 工具推荐
要求:
- 选择 1-3 个最相关的标签
- 输出格式:标签1, 标签2
文章摘要:本文介绍了如何使用 ChatGPT 提升编程效率,包括代码生成、Bug 修复、代码审查等实用技巧,帮助开发者在 AI 时代保持竞争力。
标签:
Output:
人工智能, 编程开发, 工具推荐
进阶技巧:提升分类准确性
1. 明确边界条件
分类标准:
- positive:必须有明确的正面词汇或推荐意图
- negative:必须有明确的负面词汇或投诉意图
- neutral:没有明显情感倾向,或正负参半
边界情况处理:
- "还行" "一般" "可以" → neutral
- "很好但是有点贵" → 看整体倾向
2. 添加置信度输出
请分类并给出置信度(0-100)。
输出格式:
分类:{label}
置信度:{score}
如果置信度低于 70,说明原因。
3. 使用 JSON 结构化输出
请以 JSON 格式输出分类结果:
{
"text": "原文",
"category": "分类",
"confidence": 0.95,
"reasoning": "简短理由"
}
常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 输出格式不稳定 | Prompt 约束不够明确 | 明确指定"只输出标签" |
| 标签大小写不一致 | 没有示例约束 | 提供 few-shot examples |
| 边界案例分类错误 | 标签定义模糊 | 添加详细的分类标准 |
| 输出包含解释 | 没有禁止解释 | 添加"不要解释理由" |
| 拒绝分类 | 模型不确定 | 添加"unknown"兜底选项 |
Zero-shot vs Few-shot 对比
| 维度 | Zero-shot | Few-shot |
|---|---|---|
| Prompt 长度 | 短 | 长 |
| 输出稳定性 | 较低 | 较高 |
| 格式一致性 | 可能有偏差 | 高 |
| 适用场景 | 快速原型、简单任务 | 生产环境、高精度需求 |
| Token 消耗 | 少 | 多 |
建议:
- 开发测试阶段用 Zero-shot 快速验证
- 生产环境用 Few-shot 保证稳定性
API 调用示例
Python (OpenAI)
from openai import OpenAI
client = OpenAI()
def classify_sentiment(text: str) -> str:
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "你是情感分类器。只输出 positive/negative/neutral 中的一个。"
},
{
"role": "user",
"content": f"分类以下文本的情感:\n\n{text}"
}
],
temperature=0, # 设为 0 提高一致性
max_tokens=10
)
return response.choices[0].message.content.strip()
# 使用示例
result = classify_sentiment("这个产品太棒了!")
print(result) # positive
Python (Claude)
import anthropic
client = anthropic.Anthropic()
def classify_intent(text: str) -> str:
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=50,
messages=[
{
"role": "user",
"content": f"""请识别以下用户消息的意图。
意图类型:咨询 / 投诉 / 退款 / 其他
只输出意图类型,不要解释。
用户消息:{text}
意图:"""
}
]
)
return message.content[0].text.strip()
# 使用示例
result = classify_intent("我想退掉上周买的那件衣服")
print(result) # 退款
动手练习
打开 ChatGPT 或 Claude,尝试以下练习:
练习 1:基础情感分类
将以下评论分类为 positive / negative / neutral:
1. 物流超快,第二天就到了
2. 质量太差了,用了一周就坏了
3. 价格还行,和市场价差不多
4. 客服态度很好,耐心解答了我的问题
5. 不好不坏,中规中矩
请按格式输出:
1. [标签]
2. [标签]
...
练习 2:设计自己的分类器
尝试为以下场景设计 Classification Prompt:
- 邮件分类(工作 / 个人 / 广告 / 垃圾)
- Bug 报告分类(UI / 功能 / 性能 / 安全)
- 社交帖子情感(开心 / 难过 / 愤怒 / 中性)
相关阅读
深入学习 Classification 的更多技巧:
- Sentiment Classification (Zero-shot) - 情感分类基础
- Sentiment Classification (Few-shot) - Few-shot 情感分类
- Few-shot Prompting - Few-shot 技术详解
- Zero-shot Prompting - Zero-shot 技术详解
小结
Classification 是最实用的 Prompt 技能之一。记住以下要点:
- 明确标签空间:清晰列出所有可能的类别
- 约束输出格式:指定只输出标签,避免多余解释
- 使用 Few-shot:生产环境下用 examples 提升稳定性
- 处理边界情况:添加 unknown 或定义清晰的分类标准
- 低温度设置:API 调用时设置 temperature=0 提高一致性
掌握 Classification,你就能快速构建各种自动化分类流程!