第二章 标注环境搭建:Python环境、标注工具安装(LabelStudio)、依赖库配置

好,咱们直接进入正题。做法律数据标注,第一步就是把环境搭好。这活儿看着简单,但我在项目里见过太多人卡在这一步——不是Python版本冲突,就是LabelStudio死活起不来。今天我把踩过的坑都摊开讲,你跟着走一遍,基本不会出问题。

2.1 Python环境配置

我个人习惯用Python 3.9或3.10。为什么?因为LabelStudio和大部分NLP库在这两个版本上最稳。Python 3.11以上有些依赖还没完全跟上,容易报错。

⚠️ 注意: 千万别用系统自带的Python!我建议用虚拟环境隔离项目。你想想看,一个项目要torch 1.13,另一个要2.0,混在一起就炸了。

具体操作分三步:

  1. 安装Python:去官网下载3.9.x或3.10.x,安装时勾选“Add Python to PATH”。
  2. 创建虚拟环境
# 打开终端(Windows用cmd或PowerShell,Mac/Linux用bash)
python -m venv legal_annotation_env

# 激活环境
# Windows:
legal_annotation_env\Scripts\activate
# Mac/Linux:
source legal_annotation_env/bin/activate

# 看到终端前面出现 (legal_annotation_env) 就对了
  1. 升级pip
pip install --upgrade pip

嗯,这里要注意:如果你在公司内网,可能需要配置镜像源。我曾经在客户现场折腾了两小时,才发现是网络代理的问题。

💡 小技巧: 用清华镜像源加速下载: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2.2 LabelStudio安装与配置

LabelStudio是目前法律标注领域最顺手的工具。它支持文本分类、序列标注、多轮对话标注,而且可以自定义模板。说白了,你需要的功能它基本都有。

2.2.1 安装方式

有两种方式:pip安装和Docker安装。我推荐pip,因为更轻量,调试也方便。

# 在刚才激活的虚拟环境中执行
pip install label-studio

# 验证安装
label-studio --version
# 如果输出版本号,比如 1.11.0,就说明装好了

Docker方式适合团队部署:

docker pull heartexlabs/label-studio:latest
docker run -it -p 8080:8080 heartexlabs/label-studio
🔑 关键点: 我建议本地开发用pip,生产环境用Docker。为什么?因为Docker环境隔离更彻底,不会污染你的开发环境。

2.2.2 启动与初始化

# 启动LabelStudio
label-studio start

# 默认会在 http://localhost:8080 启动
# 第一次访问会让你创建管理员账号

启动后,你会看到这样的界面:

✓  Label Studio is running on http://localhost:8080
✓  Check out the documentation at http://localhost:8080/docs

打开浏览器,注册一个账号。嗯,这里有个坑——密码要求至少8位,包含大小写字母和数字。我上次给客户演示时,随手输了个“123456”,结果被拒绝了,场面一度很尴尬。

2.2.3 创建法律标注项目

登录后,点击“Create Project”。项目名称我建议用“法律合同实体标注_2024”这种格式,方便后续管理。

在“Labeling Setup”中,选择“Named Entity Recognition”。然后添加标签:

  • 当事人(甲方、乙方、第三方)
  • 金额(合同金额、违约金、赔偿金)
  • 日期(签订日期、履行期限、生效日期)
  • 条款编号(第一条、第2.1款)
  • 法律术语(不可抗力、违约责任、知识产权)

这些标签是法律标注的基础。我在实际项目中,还会根据具体合同类型增加“管辖法院”、“争议解决方式”等标签。

2.3 依赖库配置

光有LabelStudio还不够,我们还需要一些辅助库来处理数据、做预标注、导出结果。

2.3.1 核心依赖

库名 用途 安装命令
label-studio-sdk Python调用LabelStudio API pip install label-studio-sdk
pandas 数据处理与导出 pip install pandas
spacy 预标注与实体识别 pip install spacy
transformers 法律大模型推理 pip install transformers
openpyxl Excel格式导出 pip install openpyxl

2.3.2 一键安装脚本

我习惯把依赖写到一个文件里,方便复现:

# requirements.txt
label-studio==1.11.0
label-studio-sdk==1.0.3
pandas==2.1.0
spacy==3.7.2
transformers==4.36.0
openpyxl==3.1.2

然后执行:

pip install -r requirements.txt
💡 建议: 每次安装完依赖,用 pip freeze > requirements_frozen.txt 锁定版本。这样换机器部署时,不会因为版本差异出问题。

2.3.3 验证环境

写个简单的测试脚本,确认所有组件都能正常工作:

# test_env.py
import label_studio
import label_studio_sdk
import pandas as pd
import spacy
import transformers

print("✅ LabelStudio 版本:", label_studio.__version__)
print("✅ LabelStudio SDK 版本:", label_studio_sdk.__version__)
print("✅ Pandas 版本:", pd.__version__)
print("✅ SpaCy 版本:", spacy.__version__)
print("✅ Transformers 版本:", transformers.__version__)

# 测试LabelStudio连接
from label_studio_sdk import Client
ls = Client(url='http://localhost:8080', api_key='你的API密钥')
print("✅ LabelStudio 连接成功")

运行 python test_env.py,如果全部输出绿色勾,说明环境搭建完成。

2.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。你跟着这个流程走,不会迷路:

标注环境搭建知识体系 Python环境 版本选择:3.9/3.10 虚拟环境隔离 LabelStudio pip安装 / Docker部署 项目创建与标签配置 依赖库配置 SDK / Pandas / SpaCy Transformers / Openpyxl Python环境细节 • 安装Python 3.9+ • 创建虚拟环境 • 升级pip • 配置镜像源 LabelStudio细节 • pip install label-studio • label-studio start • 创建法律标注项目 • 配置NER标签 依赖库细节 • 安装核心库 • 编写requirements.txt • 锁定版本 • 验证环境 环境搭建完成标志 LabelStudio正常启动 + 测试脚本全部通过 可以开始导入法律数据并进行标注

2.5 避坑指南

最后,分享几个我实际项目中遇到的坑:

  • 端口被占用:如果8080端口被其他程序占了,用 label-studio start -p 8081 换个端口。
  • API密钥找不到:在LabelStudio界面右上角,点你的头像 → Account → Access Token,复制即可。
  • 中文乱码:导入数据时,确保文件编码是UTF-8。我曾经用GBK编码导入,结果所有中文都变成了乱码,重新标注了两天的工作量。
  • 内存不足:如果法律文档特别大(比如几百页的合同),LabelStudio可能会卡。建议先拆分文档,每份不超过50页。

好了,环境搭建就到这里。你跟着操作一遍,应该半小时内就能跑起来。如果遇到问题,检查一下虚拟环境是否激活、pip版本是否够新——80%的问题都出在这两个地方。


专注资料整理