首页 > 技术文章 > Doccano数据标注工具 - 自动标注(Auto-Labeling)功能

fade-color 2022-03-07 20:23 原文

最近在使用Doccano标注数据时一直不明白Auto Labeling功能怎么使用,后来在Doccano的issue里看到了使用方式,记录一下

  1. 编写 api 接口并运行

    from flask import Flask, request, jsonify
    
    @app.route("/predict", methods=["POST"])
    def predict():
        # 获取text参数
        text = request.form.get("text") or request.json.get("text") or request.values.get("text")
        
        # 模型推理得到结果
        pred = "medical" # or "non-medical"
        
        # 返回结果
        results= [{"result": pred}]
        return jsonify(results)
    
    if __name__ == "__main__":
        app.run("0.0.0.0", port=5001)
    
  2. 在项目选单中选择 Settings->Auto Labeling->Create 新建一项:

    image-20220307172957727

  3. 在弹出的窗口中选择一个配置模板,选择Custom REST Request

    image-20220307173142599

  4. 点击 Next ,按照上面的 api 填写 url 等参数

    image-20220307174759993

  5. 注意body参数的key为api中request获取的参数名,value为 {{ text }}

    image-20220307174550518

  6. 输入测试文本点击Test按钮进行测试:

    image-20220307174855672

  7. 点击 Next ,进入到设置映射模板(Set mapping template)选项卡,在Mapping Template的文本框中输入模板:

    [
        {% for item in input %}
            {
                "label": "{{ item.result }}"
            }{% if not loop.last %},{% endif %}
        {% endfor %}
    ]
    

    注意 key 要与 doccano format 里面的保持一致:

    Text Classification
    [{ "label": "Cat" }, ...]
    
    Sequence Labeling
    [{ "label": "Cat", "start_offset": 0, "end_offset": 5 }, ...]
    
    Sequence to sequence
    [{ "text": "Cat" }, ...]
    

    image-20220307175916054

  8. 点击 Next ,配置标签映射(Configure label mappings),From填写上面result解析出来的结果,To选择对应Doccano项目里设置的标签:

    image-20220307180324823

  9. 再次点击测试,正确后点击Finish:

    image-20220307180431395

  10. 标注时打开Auto Labeling即可

    image-20220307180538323

推荐阅读