# 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 ``` `` + `