https://github.com/doccano/doccano
一、conda 运行 doccano
要求Python 3.8+
1、进入conda
call D:ProgramData\Miniconda3\Scripts\activate
2、创建python3.8环境
conda create -n doccano python=3.8
3、进入doccano 的conda环境
conda activate doccano
进入之后安装doccano:
pip install doccano -i https://pypi.tuna.tsinghua.edu.cn/simple/
然后执行:
# Initialize database.
doccano init
doccano init 命令报错after drop column:no such column: hidden
解决方案:
https://blog.csdn.net/qq_44497995/article/details/126341535
先 pip uninstall Django
再 pip install Django==4.0.4
然后
# Create a super use
# 只需要创建用户时使用
doccano createuser --username admin --password pass
# Start a web server.
# 每次启动必须
doccano webserver --port 8000
**打开另外一个终端,**运行如下命令:
# Start the task queue to handle file upload/download.
doccano task
Go to http://127.0.0.1:8000/. 就可以使用标注工具了
以后需要每次打开服务的时候:
参考:https://blog.csdn.net/stay_foolish12/article/details/126176489
1、进入doccano的conda环境
2、在一个窗口启动doccano的WebServer,保持窗口
doccano webserver --port 8000
3、在另一个窗口启动doccano的任务队列
doccano task
4、打开浏览器(推荐Chrome),在地址栏中输入http://127.0.0.1:8000/回车
二、使用doccano标注的注意事项
1、登录
2、创建项目(注意项目类别,例如序列标注任务、文本分类任务等)
3、创建标签,注意区分事件抽取、关系抽取任务中的span、relation两种类别的标签
4、事件、关系抽取中,务必参考提供的例子来创建标签(https://github.com/PaddlePaddle/PaddleNLP/blob/develop/model_zoo/uie/doccano.md),创建好的标签也很重要!
关系抽取任务:
事件抽取任务:
5、标注完成后将数据导出,选择导出的文件类型为JSONL(relation),即可导出json格式的数据,各字段的含义解释见6.1、6.2
6、数据转换,当标注完成后,在 doccano 平台上导出 JSONL(relation) 形式的文件,并将其重命名为 doccano_ext.json 后,放入 ./data 目录下。
通过 doccano.py 脚本进行数据形式转换,然后便可以开始进行相应模型训练。(7.1 抽取式任务数据转换)
可配置参数说明:
doccano_file: 从doccano导出的数据标注文件。
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: 实体类别/评价维度与分类标签的分隔符,该参数只对实体/评价维度级分类任务有效。默认为"##"。
备注:
默认情况下 doccano.py 脚本会按照比例将数据划分为 train/dev/test 数据集
每次执行 doccano.py 脚本,将会覆盖已有的同名数据文件
在模型训练阶段我们推荐构造一些负例以提升模型效果,在数据转换阶段我们内置了这一功能。可通过negative_ratio控制自动构造的负样本比例;负样本数量 = negative_ratio * 正样本数量。
对于从doccano导出的文件,默认文件中的每条数据都是经过人工正确标注的。