数据平衡总结报告
📊 问题分析
原始数据分布问题
基于你的模型评估结果,resource_names 字段准确率只有 **65.52%**,主要原因是训练数据存在严重的不平衡问题:
极低频资源(< 3次):
新叶古村-新叶古村门票: 1次 → 模型几乎无法识别灵栖洞-灵栖洞西游魔毯: 1次 → 模型几乎无法识别大慈岩-大慈岩索道: 2次 → 识别能力很差
高频资源(> 15次):
灵栖洞-灵栖洞门票: 29次灵栖洞-灵栖洞手划船: 29次七里扬帆-七里扬帆游船: 17次
模型偏向问题
从错误样例分析可以看出:
- 过度预测高频资源:模型倾向于预测训练中常见的
七里扬帆系列资源 - 新场景识别失败:对
江清月近人、新叶古村等场景识别错误 - 资源组合错误:漏识别或错误组合资源
🎯 平衡策略
数据增强方案
针对以下低频资源进行重点增强:
- 新叶古村-新叶古村门票: 1 → 5 (+4个样本)
- 大慈岩-大慈岩索道: 2 → 5 (+3个样本)
- 宿江公司-江清月近人实景演艺门票: 增强多场景样本
增强技术
- 文本变换:修改日期、人数、联系人等非关键信息
- 场景多样化:创建不同旅行社、不同表述方式的样本
- 资源组合:生成复杂的多资源组合样本
✅ 实施结果
平衡前后对比
| 资源名称 | 原始数量 | 平衡后数量 | 改进 |
|---|---|---|---|
| 新叶古村-新叶古村门票 | 1 | 5 | +400% |
| 大慈岩-大慈岩索道 | 2 | 5 | +150% |
| 大慈岩-大慈岩门票 | 6 | 9 | +50% |
| 宿江公司-江清月近人实景演艺门票 | 12 | 16 | +33% |
| 新安江-新安江游船 | 15 | 17 | +13% |
数据集统计
- 原始样本数: 1020
- 平衡后样本数: 1030
- 新增样本数: 10
- 目标资源覆盖: 所有关键低频资源已达到最低5个样本的目标
🔍 生成样本示例
新叶古村样本
{
"input": "浙江吉程,7月26日,25人,新叶古村,\n导游:李 13958298707",
"output": "{\"resource_names\": [\"新叶古村-新叶古村门票\"]}"
}
大慈岩索道样本
{
"input": "杭州天翼,日期:7月22日 大慈岩(含上下索道),\n导游:陈 13868126262 人数28人",
"output": "{\"resource_names\": [\"大慈岩-大慈岩索道\", \"大慈岩-大慈岩门票\"]}"
}
江清月近人增强样本
{
"input": "建德光大,7月25日,18人,江清月近人+新安江游船,导游:王 18806210530",
"output": "{\"resource_names\": [\"宿江公司-江清月近人实景演艺门票\", \"新安江-新安江游船\"]}"
}
📈 预期改进效果
模型性能预期
- 低频资源识别:
新叶古村、大慈岩索道识别准确率显著提升 - 场景泛化能力:对新的表述方式和组合有更好的理解
- 整体准确率:
resource_names字段准确率预期从65.52%提升到75%+
特别关注的案例类型
- 江清月近人相关:应该能正确识别而不是预测为
七里扬帆系列 - 大慈岩索道组合:能正确识别包含索道的订单
- 新叶古村单独:不再被忽略或错误预测
🚀 后续建议
重新训练步骤
# 1. 使用平衡后的数据集
cp balanced_training_data.json ocr_text_orders_08_14_test_v5.json
# 2. 更新训练配置中的数据文件路径
# 3. 重新训练模型
# 4. 在相同的验证集上评估性能
验证重点
- 特别关注低频资源的召回率
- 验证不会因为增强数据影响高频资源的识别
- 测试新的资源组合场景
进一步优化
如果效果仍不理想,可以考虑:
- 权重平衡:在损失函数中为低频资源增加权重
- 更多增强:继续增加低频资源样本到10个以上
- 难例挖掘:分析剩余错误案例,针对性增强
💡 关键成功指标:重新训练后,在验证集上新叶古村-新叶古村门票和大慈岩-大慈岩索道的识别准确率应显著提升。