文档抽取工作Label Studio使用指南
1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等
2.基于Label studio的训练数据标注指南:(智能文档)文档抽取工作、PDF、表格、图片抽取标注等
3.基于Label studio的训练数据标注指南:文本分类工作
4.基于Label studio的训练数据标注指南:情感剖析工作观点词抽取、属性抽取
目录
- 1. 装置
2. 文档抽取工作标注
- 2.1 我的项目创立
- 2.2 数据上传
- 2.3 标签构建
- 2.4 工作标注
- 2.5 数据导出
- 2.6 数据转换
- 2.7 更多配置
1. 装置
以下标注示例用到的环境配置:
- Python 3.8+
- label-studio == 1.7.1
- paddleocr >= 2.6.0.1
在终端(terminal)应用pip装置label-studio:
pip install label-studio==1.7.1
装置实现后,运行以下命令行:
label-studio start
在浏览器关上http://localhost:8080/,输出用户名和明码登录,开始应用label-studio进行标注。
2. 文档抽取工作标注
2.1 我的项目创立
点击创立(Create)开始创立一个新的我的项目,填写项目名称、形容,而后抉择Object Detection with Bounding Boxes
。
- 填写项目名称、形容
- 命名实体辨认、关系抽取、事件抽取、实体/评估维度分类工作抉择Object Detection with Bounding Boxes`
- 文档分类工作抉择Image Classification`
- 增加标签(也可跳过后续在Setting/Labeling Interface中增加)
图中展现了Span实体类型标签的构建,其余类型标签的构建可参考2.3标签构建
2.2 数据上传
先从本地或HTTP链接上传图片,而后抉择导入本我的项目。
2.3 标签构建
- Span实体类型标签
- Relation关系类型标签
Relation XML模板:
<Relations> <Relation value="单位"/> <Relation value="数量"/> <Relation value="金额"/> </Relations>
- 分类类别标签
2.4 工作标注
- 实体抽取
- 标注示例:
- 该标注示例对应的schema为:
schema = ['开票日期', '名称', '纳税人辨认号', '地址、电话', '开户行及账号', '金 额', '税额', '价税共计', 'No', '税率']
- 关系抽取
- Step 1. 标注主体(Subject)及客体(Object)
- Step 2. 关系连线,箭头方向由主体(Subject)指向客体(Object)
- Step 3. 增加对应关系类型标签
- Step 4. 实现标注
- 该标注示例对应的schema为:
schema = { '名称及规格': [ '金额', '单位', '数量' ]}
- 文档分类
- 标注示例
- 该标注示例对应的schema为:
schema = '文档类别[发票,报关单]'
2.5 数据导出
勾选已标注图片ID,抉择导出的文件类型为JSON
,导出数据:
2.6 数据转换
将导出的文件重命名为label_studio.json
后,放入./document/data
目录下,并将对应的标注图片放入./document/data/images
目录下(图片的文件名需与上传到label studio时的命名统一)。通过label\_studio.py脚本可转为UIE的数据格式。
- 门路示例
./document/data/├── images # 图片目录│ ├── b0.jpg # 原始图片(文件名需与上传到label studio时的命名统一)│ └── b1.jpg└── label_studio.json # 从label studio导出的标注文件
- 抽取式工作
python label_studio.py \ --label_studio_file ./document/data/label_studio.json \ --save_dir ./document/data \ --splits 0.8 0.1 0.1\ --task_type ext
- 文档分类工作
python label_studio.py \ --label_studio_file ./document/data/label_studio.json \ --save_dir ./document/data \ --splits 0.8 0.1 0.1 \ --task_type cls \ --prompt_prefix "文档类别" \ --options "发票" "报关单"
2.7 更多配置
label_studio_file
: 从label studio导出的数据标注文件。save_dir
: 训练数据的保留目录,默认存储在data
目录下。negative_ratio
: 最大负例比例,该参数只对抽取类型工作无效,适当结构负例可晋升模型成果。负例数量和理论的标签数量无关,最大负例数量 = negative\_ratio * 正例数量。该参数只对训练集无效,默认为5。为了保障评估指标的准确性,验证集和测试集默认结构全负例。splits
: 划分数据集时训练集、验证集所占的比例。默认为0.8, 0.1, 0.1示意依照8:1:1
的比例将数据划分为训练集、验证集和测试集。task_type
: 抉择工作类型,可选有抽取和分类两种类型的工作。options
: 指定分类工作的类别标签,该参数只对分类类型工作无效。默认为"正向", "负向"。prompt_prefix
: 申明分类工作的prompt前缀信息,该参数只对分类类型工作无效。默认为"情感偏向"。is_shuffle
: 是否对数据集进行随机打散,默认为True。seed
: 随机种子,默认为1000.separator
: 实体类别/评估维度与分类标签的分隔符,该参数只对实体/评估维度分类工作无效。默认为"##"。schema_lang
:抉择schema的语言,将会应该训练数据prompt的结构形式,可选有ch
和en
。默认为ch
。ocr_lang
:抉择OCR的语言,可选有ch
和en
。默认为ch
。layout_analysis
:是否应用PPStructure对文档进行布局剖析,该参数只对文档类型标注工作无效。默认为False。
备注:
- 默认状况下 label\_studio.py 脚本会依照比例将数据划分为 train/dev/test 数据集
- 每次执行 label\_studio.py 脚本,将会笼罩已有的同名数据文件
- 在模型训练阶段咱们举荐结构一些负例以晋升模型成果,在数据转换阶段咱们内置了这一性能。可通过
negative_ratio
管制主动结构的负样本比例;负样本数量 = negative\_ratio * 正样本数量。 - 对于从label\_studio导出的文件,默认文件中的每条数据都是通过人工正确标注的。
References
- Label Studio