标注工具doccano导出数据为空的解决办法

博客 动态
0 155
羽尘
羽尘 2022-05-20 10:59:25
悬赏:0 积分 收藏

标注工具doccano导出数据为空的解决办法

地址:https://github.com/taishan1994/doccano_export

doccano_export

使用doccano标注工具同时导出实体和关系数据为空的解决办法。doccano版本:1.6.2。标注平台地址:https://github.com/doccano/doccano

安装

其实安装挺简单的:

pip install doccano# Initialize database.doccano init# Create a super user.doccano createuser --username admin --password pass# Start a web server.doccano webserver --port 8000

然后再打开一个命令行:

doccano task

在浏览器打开127.0.0.1:8000,登陆后新建一个命名实体识别项目,勾选上关系抽取及多人合作。其它的一些标注方法这里就不展开了。

导出数据

找到db.sqlite3的位置,替换doccano_export.py里面的,然后替换project_id为自己的项目id。最后执行该文件。在data目录下会生成doccano_ext.json。就可以用于百度的UIE的微调任务了。
补充:

  • windows用户db.sqlite3在C:\Users\用户名\doccano\,Linux用户在:/home/用户名/doccano/下(应该是,没有的话自己去其它位置找找)。
  • confirm用于控制是否只导出标记为√的结果。
  • export_relations用于控制是否输出关系标注结果,如不存在关系标注,将其置为False。

使用UIE进行微调

地址:https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie

步骤

python doccano.py --doccano_file ./data/doccano_ext.json --task_type "ext" --save_dir ./data --splits 0.1 0.9 0python finetune.py --train_path "./data/train.txt" --dev_path "./data/dev.txt" --save_dir "./checkpoint" --learning_rate 1e-5 --batch_size 16 --max_seq_len 512 --num_epochs 100 --model "uie-base" --seed 1000 --logging_steps 10 --valid_steps 100 --device "cpu"

结果

[2022-05-19 10:22:20,558] [    INFO] - We are using <class 'paddlenlp.transformers.ernie.tokenizer.ErnieTokenizer'> to load 'ernie-3.0-base-zh'.[2022-05-19 10:22:20,559] [    INFO] - Already cached C:\Users\Administrator\.paddlenlp\models\ernie-3.0-base-zh\ernie_3.0_base_zh_vocab.txtglobal step 10, epoch: 10, loss: 0.00012, speed: 0.01 step/sglobal step 20, epoch: 20, loss: 0.00006, speed: 0.01 step/sglobal step 30, epoch: 30, loss: 0.00004, speed: 0.01 step/sglobal step 40, epoch: 40, loss: 0.00003, speed: 0.01 step/sglobal step 50, epoch: 50, loss: 0.00003, speed: 0.01 step/sglobal step 60, epoch: 60, loss: 0.00002, speed: 0.01 step/sglobal step 70, epoch: 70, loss: 0.00002, speed: 0.01 step/sglobal step 80, epoch: 80, loss: 0.00002, speed: 0.01 step/sglobal step 90, epoch: 90, loss: 0.00002, speed: 0.01 step/sglobal step 100, epoch: 100, loss: 0.00001, speed: 0.01 step/sEvaluation precision: 0.95238, recall: 0.95238, F1: 0.95238best F1 performence has been updated: 0.00000 --> 0.95238

评估

python evaluate.py --model_path "./checkpoint/model_best" --test_path "./data/dev.txt"  --batch_size 16 --max_seq_len 512

结果

Evaluation precision: 0.95238, recall: 0.95238, F1: 0.95238

预测

from pprint import pprintfrom paddlenlp import Taskflowschema = ['出发地', '目的地', '费用', '时间']# 定义初始化模型的位置# ie = Taskflow("information_extraction", home_path="/workspace")# 设定抽取目标和定制化模型权重路径my_ie = Taskflow("information_extraction", schema=schema, task_path='./checkpoint/model_best')pprint(my_ie("城市内交通费7月5日金额114广州至佛山"))

更新记录

  • 2022-05-20 更新控制是否输出关系标注的结果。
posted @ 2022-05-20 10:54 西西嘛呦 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员