地址: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 0
python 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.txt
global step 10, epoch: 10, loss: 0.00012, speed: 0.01 step/s
global step 20, epoch: 20, loss: 0.00006, speed: 0.01 step/s
global step 30, epoch: 30, loss: 0.00004, speed: 0.01 step/s
global step 40, epoch: 40, loss: 0.00003, speed: 0.01 step/s
global step 50, epoch: 50, loss: 0.00003, speed: 0.01 step/s
global step 60, epoch: 60, loss: 0.00002, speed: 0.01 step/s
global step 70, epoch: 70, loss: 0.00002, speed: 0.01 step/s
global step 80, epoch: 80, loss: 0.00002, speed: 0.01 step/s
global step 90, epoch: 90, loss: 0.00002, speed: 0.01 step/s
global step 100, epoch: 100, loss: 0.00001, speed: 0.01 step/s
Evaluation precision: 0.95238, recall: 0.95238, F1: 0.95238
best 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 pprint
from paddlenlp import Taskflow schema = ['出发地', '目的地', '费用', '时间']
# 定义初始化模型的位置
# 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 更新控制是否输出关系标注的结果。

标注工具doccano导出数据为空的解决办法的更多相关文章

  1. ThinkPHP增加数据库字段后插入数据为空的解决办法

    今天用ThinkPHP做了一个简单的商品发布系统,数据库本来只有四个字段id,name,url,image.id是主键,name是商品名称,url是商品链接,image是商品图片,做的差不多了,发现还 ...

  2. .NET 调用java webservice保存datetime类型数据为空的解决办法

    问题描述:       用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到 string类型的属性值,却不能得到i ...

  3. Easy Populate批量管理下载产品数据为空的解决办法

    把原来的先删除:http://aaaaacom/admin/easypopulate.php?langer=remove

  4. 11g Oracle导出表 默认不导出数据为空的表解决

    11g oracle导出表时会默认不导出数据为空 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出.  2.设置deferred_segm ...

  5. HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较

    摘要:   在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...

  6. html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式

    先上代码   <script type="text/javascript" language="javascript">   var idTmr; ...

  7. VMware下ubuntu与win8共享文件时/mnt/hgfs目录为空的解决办法

    VMware下ubuntu(guest)与win8共享文件时/mnt/hgfs目录为空的解决办法 环境:VMware-player-5.0.2-1031769 + ubuntu13.04 1.安装vm ...

  8. 第26月第9天 getActionBar为空的解决办法

    1.python 包路径 export PYTHONPATH=路径 https://blog.csdn.net/machinezj/article/details/60137666 2.getActi ...

  9. WCF传输过大的数据导致失败的解决办法

    WCF传输过大的数据导致失败的解决办法   WCF服务默认是不配置数据传输的限制大小的,那么默认的大小好像是65535B,这才65KB左右,如果希望传输更大一些的数据呢,就需要手动指定一下缓冲区的大小 ...

随机推荐

  1. C++ | 智能指针初探

    智能指针初探 在 c/c++ 语言中有一种特殊的类型--指针类型. 指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量.它可以直接对内存地址中的数据进行操作,是一种非常灵活的变量.指针被誉为 ...

  2. 内网穿透系列-Go语言

    一.介绍 软件在KCP出现后进行了重构,将其底层UDP支持替换为了KCP,使其效率大大提高,在某些恶劣的网络环境下依旧能有不错的效果.当然,它也是支持TCP模式的,另外它也是支持加密的,在P2P打洞失 ...

  3. 【HTML5版】导出Table数据并保存为Excel

    首发我的博客 http://blog.meathill.com/tech/js/export-table-data-into-a-excel-file.html 最近接到这么个需求,要把<tab ...

  4. 活字格发布新版本,插件公开,引领Web开发新潮流

    日前,活字格Web 应用生成平台发布V4.0版本,首次公开插件机制,强大的扩展性和系统集成能力,引起业内瞩目. 活字格是由西安葡萄城自主研发的 Web 应用生成平台,提供易用的类Excel可视化设计器 ...

  5. PAT B1013 数素数

    输入样例: 5 27   输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 解题思路: 从2开始 ...

  6. Android:setOnItemClickListener cannot be used with a spinner报错

    错误原因: Spinner对象不支持使用setOnItemClickListener方法监听点击事项 解决方法: 使用setOnItemSelectedListener方法代替setOnItemCli ...

  7. IDEA中Tomcat找不到war包导出按钮解决办法

    解决办法 (1) 打开Idea,点击File,然后点击Project Structure-,进入项目结构 (2) 具体步骤看下图: (3) 具体步骤如下图: (4) 具体步骤如下图: (5) 问题解决 ...

  8. int bool str

    一. python的基本数据类型 1. int 整数 2. bool 布尔.  判断.  if  while 3. str  字符串 ,一般存放小量的数据 4. list  列表. 可以存放大量的数据 ...

  9. Visual Studio 打包和安装 exe

    # Visual Studio 打包和安装 exe > **小型项目(无复杂的库)** //VS2022 作为演示平台   > 1.解决方案配置 = Release   > 2.解决 ...

  10. &&与&,||与| 区别

    1. &&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断. 而&要对所有的条件都进行判断. public class Test { ...