Doccano自定义自动标注功能
Doccano是什么,怎么安装就不介绍了,上GitHub上面安装就行。https://github.com/doccano/doccano,这里实验环境是在Linux系统下用docker拉的。
自定义自动标注auto labeling的接口
相关链接:https://github.com/doccano/doccano/issues/1417
这里实验主要是怎么将doccano中的auto labeling的接口替换成自己的
首先对进行进行开发这里就不服展示了,对接口传入数据后,会对数据进行分析,并返回一个label,对接口进行测试,返回格式为固定的格式。这里返回结果中的“无法判断”,就是对传入的text数据的标注结果。
打开doccano,选择要进行自动标注的项目!
添加label,这里的lebel要在自动标注的接口中要存在。
开始自定义Auto labeling接口
选择Custom RESR Request
添加字段
添加接口地址和请求方法,添加Params。
输入要标注的文本,点击test,出现结果后,点击text
点击 Next后 ,进入到设置映射模板(Set mapping template)选项卡,在Mapping Template的文本框中输入模板:
[
{% for item in input %}
{
"label": "{{ item.result }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
]
然后点击test后,点击text进入下一步
点击add添加,From填写上面result解析出来的结果,To选择对应Doccano项目里设置的标签:
进入到标注页面点击魔法棒启动自动标注,进行自动标注
其他标注方法
这里展示的是对整个文本数据进行标注的方式。
如果需要对文本中的某些字符串进行标注。也是类似的方式。只是接口的返回格式需要改变
[
{
"label":"GPE",
"start_offset":17,
"end_offset":23
}
]
遇到的问题
在定义接口是,可能会因为版本或者环境的问题出现No data available的情况。网上有人是安装auto-labeling-pipeline==0.1.21库解决了这个问题,相关链接https://github.com/doccano/doccano/issues/2282。但是我使用这个方式并没有用。
这里解决No data available的问题方式是在/admin目录下面,去修改auto labeling configs。在里面进行配置。注意在label mapping里面要添加对应的标签的一个映射(如果我没有理解错的话),例如你接口返回的结果是
"lable":"舆论"
那么在label mapping里面就填
{"舆论": "舆论"}
#如果是多个标签则如下所述:
{"严重舆情": "严重舆情", "轻微舆情": "轻微舆情", "非舆情": "非舆情", "无法判断": "无法判断"}
最后,注意打开自动标签的按钮,也就是那个魔法棒后,它是要在翻页的时候才能正常触发,在它样本标注的页面点开魔法棒就会因为id错误导致触发不了。同时如果在服务器上测试时,尽量不要在本地使用127的地址进行接口的开发,这个为什么就不阐述了。