LabelStudio标签标注
[toc]
# 情感分析任务Label Studio使用指南
# 1. label-studio 安装
官网:https://labelstud.io/ (opens new window)
创建conda环境
conda create --name label-studio python=3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
进入环境
# 激活环境前先进入 base 环境
source activate
# 再进入创建的环境
conda activate label-studio
2
3
4
在终端(terminal)使用pip安装label-studio:
pip install label-studio==1.6.0 -i https://mirror.baidu.com/pypi/simple
安装完成后,运行以下命令行:
label-studio start
指定端口启动
label-studio start --port 17003
启动完成会提示
Initializing database..
Performing system checks...
[2023-09-04 07:25:43,641] [django::register_actions_from_dir::97] [INFO] No module named 'data_manager.actions.__pycache_'
[2023-09-04 07:25:43,641] [django::register_actions_from_dir::97] [INFO] No module named 'data_manager.actions.__pycache_'
System check identified no issues (1 silenced).
September 04, 2023 - 07:25:43
Django version 3.2.14, using settings 'label_studio.core.settings.label_studio'
Starting development server at http://0.0.0.0:8080/
2
3
4
5
6
7
8
9
在浏览器打开http://localhost:8080/ (opens new window),输入用户名和密码登录,开始使用label-studio进行标注。
打开后注册账号
这里我随便填的符合格式就行
# 2. label-studio 项目创建
创建项目之前,需要先确定标注的任务类型以及需要标注哪些内容,然后点击创建(Create)开始创建一个新的项目,填写项目名称、描述。
如果数据已经准备好,可以在此进行导入数据。(这里导入数据,后面才能进行标注,或者创建完成之后导入也可以)
上传完成,点击Import
上传的文件,每行为一条数据
接下来,根据需要标注的任务类型,选择适合的任务。
在本项目中,默认会包含两种类型的任务:语句级情感分类任务和属性级情感分析任务。由于这两者都属于自然语言处理(NLP)任务,因此可以点击 Natural Language Processing
选项,在该选项下面进行选择相应的子项任务。
- 如果标注语句级情感分类任务,请选择
Text Classification
。
- 如果标注属性级情感分析任务,比如属性-观点词-情感极性三元组的信息抽取,请选择
Relation Extraction
。
最后点击保存即可。
# 3. 情感分析任务标注
# 3.1 语句级情感分类任务
这里对应的任务类型为Text Classification
,在标注之前,需要设定正向
和负向
的标签,然后保存即可。
设定好标签后,即可开始进行标注,选择正向或负向,最后点击提交,便标注好一条数据。
# 3.2 属性级情感分析任务
在本项目中,属性级的情感分析需要配置的标注任务类型为Relation Extraction
,包括属性抽取、观点抽取、属性-观点抽取、属性-情感极性抽取、属性-情感极性-观点词三元组抽取等任务。其中属性-情感极-观点词(A-S-O)三元组抽取是最常见的任务之一,下面优先讲解该任务的标注规则。
# 3.2.1 属性-情感极性-观点词抽取
属性-情感极性-观点词(A-S-O)三元组抽取标注内容涉及两类标签:Span 类型标签和 Relation 类型标签。其中Span标签用于定位文本批评中属性、观点词和情感极性三类信息,Relation类型标签用于设置评价维度和观点词、情感倾向之间的关系。
# (1)Span类型标签
这里需要定位属性、情感极性、观点词三类信息,在标注时,需要将属性和情感极性进行组合,形成复合标签。具体来讲,设定评价维度##正向
用于定位情感倾向为正向的属性,评价维度##负向
用于定位情感倾向为负向的属性。另外,利用标注标签观点词
定位语句中的观点词。
# (2)Relation类型标签
这里只涉及到1中Relation类型标签,即评价维度
到观点词
的映射关系。这里可以设置一下两者关系的名称,即点击Code,然后配置关系名称(这里将两者关系设置为观点词
),最后点击保存即可。
在设置好Span类型和Relation标签之后,便可以开始进行标注数据了。
# 3.2.2 属性-情感极性抽取
如3.2.1所述,本项目中针对属性-情感极性(A-S)抽取任务,采用Span
的形式进行标注。设定评价维度##正向
用于定位情感倾向为正向的属性,评价维度##负向
用于定位情感倾向为负向的属性。下图展示了关于属性-情感极性抽取任务的标注示例。
同样导入刚刚导入的文本
# 3.2.3 属性-观点词抽取
针对属性-观点词(A-O)抽取任务,采用Relation
的形式进行标注。这需要将属性对应标注标签设定为评价维度
,观点词设定为观点词
。下图展示了关于属性-观点词抽取任务的标注示例。
# 3.2.4 属性抽取
针对属性(A)抽取任务,采用Span
的形式进行标注。 这需要将属性对应的标注标签设定为评价维度
。下图展示了关于属性抽取任务的标注示例。
# 3.2.4 观点词抽取
针对观点词(O)抽取任务,采用Span
的形式进行标注。 这需要将观点词对应的标注标签设定为观点词
。下图展示了关于观点词抽取任务的标注示例。