P
Prompt Master
Prompt Engineering 教程与提示词实战

从任务定义、示例和工作流到评测与安全边界

Prompt Engineering 教程与提示词实战Prompt Library

Classification Prompts

基础 classification prompts 与快速上手

本章 Prompt 决定
01要解决的 Prompt 问题

基础 classification prompts 与快速上手

02完成后带走

一份保留任务边界的可复用 Prompt、示例集、评测记录或安全规则。

03做到什么算完成

至少跑一个代表性样本,检查结果,并记录仍需人工复核的部分。

本章整理了常见的 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-shotFew-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 的更多技巧:


小结

Classification 是最实用的 Prompt 技能之一。记住以下要点:

  1. 明确标签空间:清晰列出所有可能的类别
  2. 约束输出格式:指定只输出标签,避免多余解释
  3. 使用 Few-shot:生产环境下用 examples 提升稳定性
  4. 处理边界情况:添加 unknown 或定义清晰的分类标准
  5. 低温度设置:API 调用时设置 temperature=0 提高一致性

掌握 Classification,你就能快速构建各种自动化分类流程!

📚 相关资源

常见问题

点击问题,查看本章对应的实践答案。

Zero-shot 和 Few-shot 分类该怎么选?

开发阶段用 Zero-shot 快速验证标签是否合理,Prompt 短、token 省;生产环境一律切 Few-shot,给 2-5 个稳定示例,把输出格式和大小写都钉死。Zero-shot 的最大问题不是准确率,是输出不稳定——这次返回 `positive`,下次返回 `Positive.`,下游代码立刻挂。

分类 Prompt 输出老带解释,怎么让它只吐标签?

三步走:在 instruction 加「只输出类别名称,不要解释」;用 Few-shot 示例每条都只写标签;调 API 时 `temperature=0` + `max_tokens=10`。再不稳就把允许的标签写成枚举(positive / negative / neutral),并加 `unknown` 兜底,让模型有合法出口而不是自己编一句解释。

多标签分类(multi-label)怎么写 Prompt 才稳?

明确三件事:标签池(列出所有合法标签)、最小/最大数量(如「选 1-3 个」)、输出分隔符(`标签1, 标签2`)。本章「内容标签」示例里就是这种结构。再加 JSON 输出 + confidence 字段更稳,下游能直接按阈值过滤,比纯文本好解析。

边界案例(『还行』『一般』)老分错,是 Prompt 问题还是模型问题?

九成是 Prompt 问题。在分类标准里写清边界规则,例如「『还行』『一般』『可以』→ neutral;『很好但是有点贵』看整体倾向」。再不够就给一个 `confidence` 字段,confidence < 70 时强制说明原因——模型反而被迫认真判断,准确率会回升。

API 调用分类任务,参数应该怎么配?

`temperature=0` 拉高一致性、`max_tokens=10-50`(标签很短,多余 token 都是浪费)、`system` 钉住角色和输出规范、`stop` 设分隔符防止啰嗦。生产环境再加:retry on 429 with backoff、记录 request ID + 模型版本 + 输入 hash,方便后续 A/B 评估。