# 4-3 文本标注与语音标注(Label Studio)
## 学习目标
1. 掌握 Label Studio 文本标注的四种类型:分类、NER、意图、关系
2. 掌握 Label Studio 语音标注的四种类型:转写、说话人、分类
3. 学会 BIO 标注法、CoNLL 数据格式
4. 独立完成一个文本分类和一个 ASR 项目
---
## 1. 为什么用 Label Studio 做文本和语音
### 1.1 回顾:Label Studio 的多模态优势
```
一个工具,全模态覆盖:
┌──────────┐
图像 ──→│ │
文本 ──→│ Label │──→ 统一管理
语音 ──→│ Studio │──→ 统一导出
视频 ──→│ │
└──────────┘
```
### 1.2 本节内容地图
```
4-3 文本与语音标注
├── 文本部分
│ ├── 文本分类
│ ├── NER 命名实体识别
│ ├── 意图识别 + 槽位
│ └── 关系抽取
└── 语音部分
├── 语音转写 ASR
├── 说话人分离
└── 音频分类
```
---
## 2. 文本标注基础概念
### 2.1 文本数据的特殊性
文本是最难标注的数据,因为:
- 没有"形状",靠"语义"
- 同样含义表达方式千变万化
- 上下文影响判断
- 中文分词、歧义多
```
"苹果" 这个词可以指:
├── 水果(吃的苹果)
├── 公司(苹果公司)
└── 手机(iPhone)
只有结合上下文才能判断。
```
### 2.2 文本标注的四大任务
| 任务 | 输入 | 输出 | 应用 |
|------|------|------|------|
| 文本分类 | 一段文本 | 一个或多个类别 | 情感、新闻分类 |
| NER | 一段文本 | 实体边界+类型 | 信息抽取、知识图谱 |
| 意图识别 | 用户query | 意图+槽位 | 智能客服、对话系统 |
| 关系抽取 | 文本+实体对 | 实体间关系 | 知识图谱构建 |
---
## 3. 文本分类标注
### 3.1 任务说明
**场景**:对 10 条商品评论做情感分类(正面/负面/中性)
### 3.2 创建项目
1. 启动 Label Studio
2. `+ Create Project`,命名为 `review_sentiment`
3. 进入项目 → `Settings` → `Labeling Interface` → `Code`
### 3.3 文本分类配置 XML
```xml
```
**关键参数**:
```
← 显示待标注文本
← 单选/多选
choice="single-radio" ← 单选(必选一个)
showInline="true" ← 横排显示
```
### 3.4 准备数据
`reviews.csv`:
```csv
text
这家餐厅的菜品非常美味,下次还会再来
等位等了两个小时,体验非常差
今天天气不错,适合出门散步
物流速度很快,第二天就到了
服务员态度恶劣,很不耐烦
这个电影剧情一般,但特效不错
产品质量一般,用了几天就坏了
环境优雅,装修很有格调
价格有点贵,性价比不高
操作简单,上手很快
```
**导入方式**:项目页 → `Settings` → `Data Import` → 上传 CSV
### 3.5 标注操作
1. 进入 `Label All Tasks`
2. 看到一段文本 + 三个选项
3. 选择最合适的情感
4. `Submit` 进入下一条
```
┌────────────────────────────────────────┐
│ 这家餐厅的菜品非常美味,下次还会再来 │
│ │
│ ( ) positive ( ) negative ( ) neutral│
│ │
│ [ Submit ] │
└────────────────────────────────────────┘
```
### 3.6 多标签分类(进阶)
如果一条文本可以同时属于多个类别:
```xml
```
`choice="multiple"` 表示可多选。
### 3.7 文本分类标注规范
```
┌──────────────────────────────────────────────┐
│ 情感分析标注规范 v1.0 │
├──────────────────────────────────────────────┤
│ │
│ 【正面 positive】 │
│ 表达满意、喜欢、赞美、推荐 │
│ 关键词: 好、棒、赞、满意、推荐、完美 │
│ 示例: "东西很好用,下次还来" │
│ │
│ 【负面 negative】 │
│ 表达不满、失望、抱怨、批评 │
│ 关键词: 差、烂、垃圾、失望、后悔、投诉 │
│ 示例: "等了两小时没上菜,差评" │
│ │
│ 【中性 neutral】 │
│ 客观陈述事实,无明显情感倾向 │
│ 示例: "今天吃了火锅" │
│ │
│ ⚠️ 边界情况: │
│ - "还行" / "一般" 归为中性 │
│ - "好贵" 可能是负面(嫌贵) │
│ - 反讽要识别: "真是太好了(等了2小时)" │
│ 实际是负面 │
│ - 不确定时标 neutral │
│ │
└──────────────────────────────────────────────┘
```
---
## 4. NER 命名实体识别标注
### 4.1 什么是 NER
**NER**(Named Entity Recognition):在文本中找出实体(人名、地名、机构名等),并标注它们在文本中的**起止位置**和**类型**。
```
输入: 张伟毕业于清华大学
标注: 张伟 [人名] 清华大学 [机构]
```
### 4.2 常见实体类型
| 类型 | 缩写 | 说明 | 示例 |
|------|------|------|------|
| 人名 | PER | 真实人物 | 张三、马云、周杰伦 |
| 地名 | LOC | 国家、城市、地区 | 北京、东京、华北 |
| 机构名 | ORG | 公司、学校、政府 | 华为、清华、公安部 |
| 时间 | TIME | 时间点、时期 | 1990年、昨天、三天前 |
| 数字 | NUM | 数字表达式 | 100、3.14、百分之十 |
| 货币 | MONEY | 金额 | 100元、500美元 |
### 4.3 BIO 标注法
NER 训练数据的标准格式是 **BIO**:
```
B-XXX = 实体开始(Begin)
I-XXX = 实体延续(Inside)
O = 非实体(Outside)
```
**示例**:
```
句子: 马化腾 创办 了 腾讯 公司
BIO: B-PER I-PER O B-ORG I-ORG
E-PER E-ORG (BIOES 体系)
按 BIEOS(更精细):
马: B-PER
化: I-PER
腾: E-PER
创: O
办: O
了: O
腾: B-ORG
讯: I-ORG
公: I-ORG
司: E-ORG
> 注意:上面是 BIEOS 体系(多了 E=End 单字实体、S=Single 单词实体),比 BIO 更精细。教材示例这里就以马化腾(3字)为例说明 B/I/E 三个符号。
```
### 4.4 Label Studio NER 配置
```xml
```
`` + `