1.基于labelstudio的训练数据标注指南:信息抽取(实体关系抽取)文本分类等(代码片段)

author author     2023-03-04     283

关键词:

文本抽取任务Label Studio使用指南

1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等 2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等 3.基于Label studio的训练数据标注指南:文本分类任务 4.基于Label studio的训练数据标注指南:情感分析任务观点词抽取、属性抽取

目录

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
pip install label-studio
#安装过程报错ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问
#添加管理员权限
pip install --user label-studio
#如果途中出现警告:WARNING: Ignoring invalid distribution -sonschema (d:\\anaconda\\envs\\paddlenlp\\lib\\site-packages)
1.原因可能是之前下载库的时候没有成功或者中途退出,当包出现问题(例如缺少依赖项或与其他包冲突)时,可能会出现此警告消息。如果包与正在使用的 Python 版本不兼容,也可能发生这种情况。
2.到提示的目录site-packages下删除~ip开头的目录。
3.然后pip重新安装库即可。
#如果怕环境冲突就新建虚拟环境,单独安装
conda create -n test  python=3.8 #test为创建的虚拟环境名称

安装完成后,运行以下命令行:

label-studio start

在浏览器打开http://localhost:8080/,输入用户名和密码登录,开始使用label-studio进行标注。

2. 文本抽取任务标注

2.1 项目创建

点击创建(Create)开始创建一个新的项目,填写项目名称、描述,然后选择Object Detection with Bounding Boxes

  • 填写项目名称、描述

  • 命名实体识别、关系抽取、事件抽取、实体/评价维度分类任务选择``Relation Extraction`。

  • 文本分类、句子级情感倾向分类任务选择Text Classification

  • 添加标签(也可跳过后续在Setting/Labeling Interface中配置)

图中展示了实体类型标签的构建,其他类型标签的构建可参考2.3标签构建

2.2 数据上传

先从本地上传txt格式文件,选择List of tasks,然后选择导入本项目。

2.3 标签构建

  • Span类型标签

  • Relation类型标签

Relation XML模板:

  <Relations>
    <Relation value="歌手"/>
    <Relation value="发行时间"/>
    <Relation value="所属专辑"/>
  </Relations>
  • 分类类别标签

2.4 任务标注

  • 实体抽取

标注示例:

该标注示例对应的schema为:

schema = [
    时间,
    选手,
    赛事名称,
    得分
]
  • 关系抽取

对于关系抽取,其P的类型设置十分重要,需要遵循以下原则

“S的P为O”需要能够构成语义合理的短语。比如对于三元组(S, 父子, O),关系类别为父子是没有问题的。但按照UIE当前关系类型prompt的构造方式,“S的父子为O”这个表达不是很通顺,因此P改成孩子更好,即“S的孩子为O”。合理的P类型设置,将显著提升零样本效果

该标注示例对应的schema为:

schema = 
    作品名: [
        歌手,
        发行时间,
        所属专辑
    ]

  • 事件抽取

该标注示例对应的schema为:

schema = 
    地震触发词: [
        时间,
        震级
    ]

  • 句子级分类

该标注示例对应的schema为:

schema = 情感倾向[正向,负向]
  • 实体/评价维度分类

该标注示例对应的schema为:

schema = 
    评价维度: [
        观点词,
        情感倾向[正向,负向]
    ]

2.5 数据导出

勾选已标注文本ID,选择导出的文件类型为JSON,导出数据:

2.6 数据转换

将导出的文件重命名为label_studio.json后,放入./data目录下。通过label_studio.py脚本可转为UIE的数据格式。

  • 抽取式任务
python label_studio.py \\
    --label_studio_file ./data/label_studio.json \\
    --save_dir ./data \\
    --splits 0.8 0.1 0.1 \\
    --task_type ext
  • 句子级分类任务

在数据转换阶段,我们会自动构造用于模型训练的prompt信息。例如句子级情感分类中,prompt为情感倾向[正向,负向],可以通过prompt_prefixoptions参数进行配置。

python label_studio.py \\
    --label_studio_file ./data/label_studio.json \\
    --task_type cls \\
    --save_dir ./data \\
    --splits 0.8 0.1 0.1 \\
    --prompt_prefix "情感倾向" \\
    --options "正向" "负向"
  • 实体/评价维度分类任务

在数据转换阶段,我们会自动构造用于模型训练的prompt信息。例如评价维度情感分类中,prompt为XXX的情感倾向[正向,负向],可以通过prompt_prefixoptions参数进行声明。

python label_studio.py \\
    --label_studio_file ./data/label_studio.json \\
    --task_type ext \\
    --save_dir ./data \\
    --splits 0.8 0.1 0.1 \\
    --prompt_prefix "情感倾向" \\
    --options "正向" "负向" \\
    --separator "##"

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.
  • schema_lang:选择schema的语言,将会应该训练数据prompt的构造方式,可选有chen。默认为ch
  • separator: 实体类别/评价维度与分类标签的分隔符,该参数只对实体/评价维度分类任务有效。默认为"##"。

备注:

  • 默认情况下 label_studio.py 脚本会按照比例将数据划分为 train/dev/test 数据集
  • 每次执行 label_studio.py 脚本,将会覆盖已有的同名数据文件
  • 在模型训练阶段我们推荐构造一些负例以提升模型效果,在数据转换阶段我们内置了这一功能。可通过negative_ratio控制自动构造的负样本比例;负样本数量 = negative_ratio * 正样本数量。
  • 对于从label_studio导出的文件,默认文件中的每条数据都是经过人工正确标注的。

References

1.基于labelstudio的训练数据标注指南:信息抽取(实体关系抽取)文本分类等(代码片段)

文本抽取任务LabelStudio使用指南1.基于Labelstudio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等2.基于Labelstudio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等3.... 查看详情

4.基于labelstudio的训练数据标注指南:情感分析任务观点词抽取属性抽取(代码片段)

情感分析任务LabelStudio使用指南1.基于Labelstudio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等2.基于Labelstudio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等3.基于Labelstudio的训练数... 查看详情

2.基于labelstudio的训练数据标注指南:(智能文档)文档抽取任务pdf表格图片抽取标注等(代码片段)

文档抽取任务LabelStudio使用指南1.基于Labelstudio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等2.基于Labelstudio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等3.... 查看详情

4.基于labelstudio的训练数据标注指南:情感分析任务观点词抽取属性抽取(代码片段)

情感分析任务LabelStudio使用指南1.基于Labelstudio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等2.基于Labelstudio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等3.... 查看详情

3.基于labelstudio的训练数据标注指南:文本分类任务(代码片段)

文本分类任务LabelStudio使用指南目录1.安装2.文本分类任务标注2.1项目创建2.2数据上传2.3标签构建2.4任务标注2.5数据导出2.6数据转换[2.7更多配置](#271.安装以下标注示例用到的环境配置:Python3.8+label-studio==1.7.1在终端(terminal)使用pip... 查看详情

labelstudio+mmdetection实现目标分割预标注(代码片段)

在LabelStudioMLBackend提供的预标注模型示例中,只有mmdetection这个目标检测预标注示例,而没有目标分割预标注示例,因此我参考野生的目标分割预标注代码interactive_segmentation.py并结合MMDetection的MaskR-CNN算法,实现了... 查看详情

labelstudio+mmdetection实现目标分割预标注(代码片段)

在LabelStudioMLBackend提供的预标注模型示例中,只有mmdetection这个目标检测预标注示例,而没有目标分割预标注示例,因此我参考野生的目标分割预标注代码interactive_segmentation.py并结合MMDetection的MaskR-CNN算法,实现了... 查看详情

基于协同训练的半监督文本分类算法

...用半监督算法做文本分类(sklearn)sklearn半监督学习(sklearn)基于自训练的半监督文本分类算法一.摘要本文主要讲述基于协同训练的半监督算法做文本分类,用三个差异性比较大的分类器对未标注数据进行标注,它们可以进行交叉验... 查看详情

基于huggingface预训练模型的实体识别智能标注方案:生成doccano要求json格式(代码片段)

强烈推荐:数据标注平台doccano----简介、安装、使用、踩坑记录_汀、的博客-CSDN博客_doccanohuggingface官网参考:数据标注平台doccano----简介、安装、使用、踩坑记录1.huggingface相关教程直接参考别人的:与训练模型 【Hugg... 查看详情

基于via的课堂学生行为数据标注与yolov7目标检测与自动标注系统(代码片段)

...thub:https://github.com/Whiffe/via2yolo1.总体功能描述本系统基于via进行学生行为标注,将标注数据处理为yolo数据集格式。行为标注:将via中标注的数据转化为yolo格式数据集。数据可视化:对yolo格式的数据集进行可视化... 查看详情

labelstudio+mmdetection实现目标分割预标注(代码片段)

在LabelStudioMLBackend提供的预标注模型示例中,只有mmdetection这个目标检测预标注示例,而没有目标分割预标注示例,因此我参考野生的目标分割预标注代码interactive_segmentation.py并结合MMDetection的MaskR-CNN算法,实现了... 查看详情

labelstudio+mmdetection实现目标分割预标注(代码片段)

在LabelStudioMLBackend提供的预标注模型示例中,只有mmdetection这个目标检测预标注示例,而没有目标分割预标注示例,因此我参考野生的目标分割预标注代码interactive_segmentation.py并结合MMDetection的MaskR-CNN算法,实现了... 查看详情

yolox训练自己的数据(代码片段)

...式都必须一样,真是麻烦;而我之前的任务都是基于yolov5训练的,所以图片,标注文件已经有了,我也不想按voc,coco那样再去改变格式,于是就有了此文。yolov5数据集目录如下:步骤如下:一... 查看详情

yolox训练自己的数据(代码片段)

...式都必须一样,真是麻烦;而我之前的任务都是基于yolov5训练的,所以图片,标注文件已经有了,我也不想按voc,coco那样再去改变格式,于是就有了此文。yolov5数据集目录如下:步骤如下:一... 查看详情

yolox训练自己的数据(代码片段)

...式都必须一样,真是麻烦;而我之前的任务都是基于yolov5训练的,所以图片,标注文件已经有了,我也不想按voc,coco那样再去改变格式,于是就有了此文。yolov5数据集目录如下:步骤如下:一... 查看详情

第六章---机器学习与数据建模

...时刻获得模型对于数据整体情况的影响和反馈)数据集:训练集、测试集、验证集(6:2:2)测试集:通过训练集和测试集的出最优模型后,使用测试集进行模型的预测,用来衡量这个模型的性能和分类能力,即可以把测试集当做... 查看详情

[课程][原创]yolov5安装标注训练自己数据集windows版

搞定系列:yolov5训练自己数据集windows版课程地址:搞定系列:yolov5训练自己数据集windows版--深度学习视频教程-人工智能-CSDN程序员研修院开会员学更多课程课程介绍课程目录讨论留言你将收获1、学会如何搭建yolov5环... 查看详情

百度paddlepaddle入门-8(代码片段)

...打印"HelloWorld!"一样。在飞桨的入门教程中,我们选取了基于MNIST数据集的手写数字识别模型作为启蒙教材,以便更好的帮助用户快速掌握飞桨平台的使用。MNIST是深度学习领域标准、易用的成熟数据集,包含60000条训练样本和100... 查看详情