文本标注

一、基础模型下载

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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏