文本标注
目录
一、基础模型下载
https://www.modelscope.cn/models/destinylhj/chinese-roberta-base
二、代码
http://wwsnb.cn:3300/xiaowws/other/src/master/004_%e6%96%87%e6%9c%ac%e6%89%93%e6%a0%87/V0908
三、json 和 jsonl 区别
1.JSON(.json)
标准 JSON,一整个文件是一个完整 JSON 对象 / 数组。
示例:
[
{"text":"文本1","labels":["ad"]},
{"text":"文本2","labels":["abuse"]},
{"text":"文本3","labels":["normal"]}
]
特点:
1. 整体是一个大数组,整个文件是一个整体;
2. 读取要把整个文件全部加载进内存;
3. 语法严格,逗号不能错,括号必须成对;
4. 如果文件很大几十万条,一次性读入内存会占很高内存。
2.JSON Lines(.jsonl,经常叫 json 行)
每一行独立是一条完整 JSON,行与行之间没有逗号、没有外层数组括号。
示例:
{"text":"文本1","labels":["ad"]}
{"text":"文本2","labels":["abuse"]}
{"text":"文本3","labels":["normal"]}
每一行 = 一条样本,一行独立 json。
特点:
1. 按行读取,可以一行一行读,不用一次性加载全部文件;
2. 大数据集(几万、几十万样本)非常友好,内存压力小;
3. HuggingFace datasets、大模型训练普遍用 jsonl;
4. 每一行必须是合法 json,行末尾不要逗号。
3.核心对比表
| json | jsonl | |
|---|---|---|
| 结构 | 完整对象 / 数组,外层有[] |
每行一条独立 json,无外层数组 |
| 读取方式 | 一次性全部加载 | 按行流式读取,读一行处理一行 |
| 大文件内存 | 占用高 | 占用低,适合百万级样本 |
| 深度学习数据集 | 很少用 | 训练集 val/test 普遍使用 |
| 后缀 | .json |
.jsonl |
四、准召介绍
精确率 (Precision)、召回率 (Recall)、F1
先记 4 个基础概念(针对某一个类别,比如广告 ad)
- TP 真正例:真实是广告,模型识别为广告 ✅
- FN 假负例(漏检):真实是广告,模型识别成正常 normal ❗漏检(业务最怕)
- FP 假正例(误判):真实是正常,模型误判成广告 ❗误判
- TN 真负例:真实正常,模型识别正常 ✅
1.召回率 Recall(查全率)
真实属于这个类别的样本里,有多少被找出来了
Recall= TP / (TP+FN)
举例:一共 100 条真实广告
- 85 条被识别广告,15 条漏判成 normal
- Recall= 85/ (85+15) = 0.85
👉召回越高 = 漏检越少
风控场景:召回最重要,不能把违规漏掉流出去
召回低 = 大量违规没识别出来,线上事故。
2.精确率 Precision(查准率)
模型判定为该类别的样本中,真正属于该类的比例
Precision= TP / (TP+FP)
举例:模型一共挑出 90 条广告
- 其中 85 条真广告,5 条是正常文本被误判
- Precision= 85 / (85+5) = 0.944
👉精确率越高 = 误判越少,不乱杀正常内容
精确率低:经常把正常内容判定违规,用户被冤枉。
3.F1‑score
召回和精确率是矛盾关系,一个上去另一个容易掉,F1 是两者调和平均:
F1= ( 2*Precision*Recall ) / (Precision+Recall)
F1 综合指标,0~1,越高代表整体效果越好。
> 业务不能只看 F1!比如风控优先保召回,宁愿牺牲一点精确率。
4.阈值如何影响准召(多标签分类)
多标签每个类别输出 0‑1 概率,设置 threshold 阈值,大于阈值判定为该标签。
- 降低阈值 `threshold=0.3`
✅召回↑(更少漏检)
❌精确率↓(更多误判)
- 提高阈值 `threshold=0.7`
✅精确率↑(更少误判)
❌召回↓(更容易漏检违规)
风控业务常用策略:降低阈值提高召回,可疑样本交给人工复核,不要把违规漏出去。
5.案例
测试集 ad 广告类别
- TP=65,FN=35,FP=7
- Recall = 65/(65+35) = 0.65 → 100 条广告 35 条漏掉,严重漏检,需要补充广告样本
- Precision =65/(65+7)=0.90 → 模型识别出来的广告大部分是真广告,误判不多
这里整体 macro_f1 可能看着还行,但是广告 recall=0.65 很差,线上会大量漏广告,必须优先处理。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:文本标注
本文作者:伟生
发布时间:2026-09-08, 22:49:00
最后更新:2026-09-08, 23:04:34
原始链接:http://yoursite.com/2026/09/08/ai_04_text_label/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。