5.5 本章实战练习

5.5 本章实战练习

本节提供递进式的练习题,帮助读者巩固少样本学习的知识,并应用到实际场景中。

练习一:情感分析对比实验(基础通用)

目标:亲身体验零样本与少样本在处理模糊文本时的效果差异。

任务描述: 你需要构建一个简单的提示词,判断用户评论的情感倾向(正面、负面、中性)。

测试数据

  1. “这东西说实话不错,就是物流慢了点,客服态度也一般。”(混合情感)

  2. “价格是便宜,但质量真不敢恭维。”(转折句,实贬)

  3. “还行吧。”(中性偏弱)

步骤

  1. 零样本测试:直接编写指令,让模型判断上述三条评论的情感。

  2. 少样本构建:编写 3 个示例(正面、负面、混合各一个),加入到提示词中。

  3. 少样本测试:使用带有示例的提示词再次测试上述三条评论。

思考

  • 在处理混合情感(如第 1 条)时,加入示例后模型的判断依据是否更明确了?

  • 示例的格式(如 JSON 输出)是否帮助模型更准确地输出了你期望的结构?


练习二:脏数据清洗与提取(进阶技巧)

目标:学习利用少样本示例处理格式混乱的脏数据。

任务描述: 从格式不统一的用户地址输入中,提取标准的结构化信息(省、市、区、详细地址)。

输入数据(脏数据)

  1. “北京朝阳区建国路 88 号 SOHO 现代城”(缺少“市”)

  2. “广东省深圳市南山区深南大道 TX 大厦”(标准)

  3. “杭州余杭区文一西路 (梦想小镇)”(包含括号备注,缺少“省”)

挑战: 模型往往容易忽略缺失的行政区划,或者保留括号内的无关备注。

练习要求

  • 设计 2-3 个示例,专门展示如何处理:

    • 省略“省”或“市”的情况(示例中自动补全或留空,取决于你的定义)。

    • 去除地址中的噪音(如括号备注)。

  • 验证模型是否能按照你示例中的逻辑正确处理第 1 和第 3 条数据。


练习三:构建动态意图识别器(实战场景)

目标:模拟客服场景,设计一个能够根据少样本准确识别用户意图的系统。

场景背景: 你正在为一个电商平台开发智能客服。主要的意图类型包括:

  • logistics_inquiry(物流查询)

  • return_request(退换货申请)

  • product_consultation(商品咨询)

  • human_agent(转人工)

任务

  1. 为每个意图编写 1-2 个典型示例( Input -> Intent)。

  2. 负面示例设计(重要):设计一个示例,教模型区分“抱怨物流慢”(属于logistics_inquirycomplaint)与“我要退货”(属于return_request)。很多模型容易混淆这两者。

  3. 编写提示词,要求模型输出 JSON 格式,包含 intentconfidence(置信度)。

代码实现思路( Python 伪代码)

扩展思考: 如果用户说:“我想问问退货的运费是谁出?”,这应该属于 return_request 还是 product_consultation(或 policy_inquiry)?尝试通过添加示例来微调模型的判断边界。

参考实现代码

以下是本章练习的参考 Python 实现。

1. 零样本与少样本对比:Zero-Shot vs Few-Shot

zero_vs_few_shot.py

2. 动态示例选择器 ( Dynamic Selector)

dynamic_selector.py

最后更新于