使用doccano标注NER数据详细教程
说明:
- 首次发表日期:2024-10-12
- 参考资料:
- https://github.com/zjunlp/DeepKE/blob/main/README_TAG_CN.md
- https://doccano.github.io/doccano/tutorial/
- https://blog.****.net/GongYangXianShen/article/details/137270106 (转换为BIO格式)
部署doccano
https://github.com/doccano/doccano 有说明如何部署。比如使用Docker部署:
docker run --name doccano \
-d --restart always \
-e "ADMIN_USERNAME=admin" \
-e "ADMIN_EMAIL=admin@example.com" \
-e "ADMIN_PASSWORD=password" \
-v doccano-db:/data \
-p 8001:8000 doccano/doccano
创建用户
默认只有一个用户,我们需要打开ADMIN管理页面添加新的用户。
在主网址后加/admin/
然后打开ADMIN管理页面(注意后边的斜杠是必须的),点击Add
:
添加用户名和密码信息后,点击SAVE
以保存:
如何进行NER标注
创建项目
默认的界面是英语的,不习惯英语的话,可以切换为中文:
然后点击登录,输入用户名和密码登录,登录之后:
点击创建
,会跳转到以下页面:
点击以选择序列标注
(Sequence Labeling),然后输入名称等必要信息,根据需要配置其他属性:
点击创建
,跳转到以下页面:
导入数据集
单击左侧的数据集
按钮:
移动鼠标到操作
按钮:
点击导入数据集:
doccano
支持多种格式的文本,它们的区别如下:
-
Textfile
:上传的文件为txt
格式,打标时一整个txt
文件显示为一页内容; -
Textline
:上传的文件为txt
格式,打标时txt
文件的一行文字显示为一页内容; -
JSONL
:JSON Lines
的简写,每行是一个有效的JSON
值; -
CoNLL
:CoNLL
格式的文件,每行均带有一系列制表符分隔的单词;
上传一个TXT文件:
点击导入后:
定义标签
点击左侧的标签
,然后移动鼠标到操作
菜单后点击创建标签
:
创建3个常见的标签,PER
, LOC
, ORG
,实际应用中需要根据需求确定有哪些标签。以下以创建PER
标签为例:
创建完后:
添加成员
点击左侧的成员
按钮,然后点击增加
:
选择需要添加到项目的用户和角色,其中有3种角色(项目管理员 ,标注员,审查员)。选择好后保存:
保存后可以看到:
分配标注任务
首先,选中需要分配的数据:
然后,点击操作菜单下的Assign to member
:
选择分配方案,然后点击右侧的Assign
按钮
以上分配方案将15%的任务分配给admin
用户,85%的任务分配给user1
用户。
查看分配结果:
标注
点击左侧数据集
,然后选择一条数据,点击最右边的标注
按钮开始标注。
举例来说,点击右侧的PER
标签,然后鼠标分别选择文本中的对应文字:
标注完成后,点击文本左上角的X按钮表示已标注完成:
导出数据
点击左侧数据集
按钮,移动鼠标到操作
菜单,点击导出数据集
:
选择JSONL
格式,勾选Export only approved documents
(仅导出已审核过的数据),然后点击导出: