位置: IT常识 - 正文

NLP工具集:【doccano】——标注平台doccano使用手册(nlp工具箱)

编辑:rootadmin
NLP工具集:【doccano】——标注平台doccano使用手册 一. 简介

推荐整理分享NLP工具集:【doccano】——标注平台doccano使用手册(nlp工具箱),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nlp功能是什么,nlp工程,nlp常用工具,nlp tool,nlp工具包,nlp工具箱,nlp常用工具,nlp 工具,内容如对您有帮助,希望把文章链接给更多的朋友!

doccano 是一个开源的文本标注平台。它为文本分类、序列标记和序列到序列任务提供标注功能。因此,您可以为情感分析、命名实体识别、文本摘要、机器翻译等任务创建标注数据。只需创建一个项目,上传数据并开始标注,您就可以在数小时内构建得到想要的数据集。

doccano特性:

合作标注:可以进行多人合作,分配标注任务。支持多种语言文本标注:目前已知知识英语,中文,日语,阿拉伯语,印度尼西亚语等。二. 安装及使用

docker安装比较简单,这里只给出docker安装方式:

Step 1.镜像下载

镜像好比面向对象语言中的类。

docker pull doccano/doccanoStep 2.创建容器

容器就是镜像对应的实例化对象。

docker container create --name doccano \-e "ADMIN_USERNAME=admin" \-e "ADMIN_EMAIL=admin@example.com" \-e "ADMIN_PASSWORD=123456" \-v doccano-db:/data \-p 8000:8000 doccano/doccano

其中的各参数意义如下:

–name doccano 表示 创建的容器名称为doccano-e “ADMIN_USERNAME=admin” doccano项目中管理员账号为admin-e “ADMIN_EMAIL=admin@example.com” doccano项目中管理员的联系邮箱为admin@example.com-e “ADMIN_PASSWORD=password” doccano项目中管理员登陆密码password-v doccano-db:/data 项目中的数据挂在到宿主机地址到/data中-p 8000:8000 宿主机(前)与容器中端口之间的映射doccano/doccano 镜像名称Step 3.启动容器docker container start doccanoStep 4.浏览器访问

用户通过浏览器访问部署的服务器ip加上对应的端口号即可访问: 这里咱们输入:http://10.6.16.96:8000/

NLP工具集:【doccano】——标注平台doccano使用手册(nlp工具箱)

点击右上角进行登录

三. 数据标注1.项目创建

以农业花生数据标注任务为例:

2.数据上传

3.标签构建创建实体标签

创建关系标签

4.任务标注

关系标注时需要依次在头,尾实体Tag上点击鼠标左键才会出现可用关系选项

标注结果

5.数据导出

导出后的数据格式如下:

6.数据转换

抽取式任务数据转换:

当标注完成后,在 doccano 平台上导出 JSONL(relation) 形式的文件,并将其重命名为 doccano_ext.json 后,放入 ./data 目录下。通过 doccano.py 脚本进行数据形式转换,然后便可以开始进行相应模型训练。 doccano.py代码如下:import osimport timeimport argparseimport jsonimport numpy as npfrom utils import set_seed, convert_ext_examples, convert_cls_examplesdef do_convert(): set_seed(args.seed) tic_time = time.time() if not os.path.exists(args.doccano_file): raise ValueError("Please input the correct path of doccano file.") if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) if len(args.splits) != 0 and len(args.splits) != 3: raise ValueError("Only []/ len(splits)==3 accepted for splits.") if args.splits and sum(args.splits) != 1: raise ValueError( "Please set correct splits, sum of elements in splits should be equal to 1." ) with open(args.doccano_file, "r", encoding="utf-8") as f: raw_examples = f.readlines() def _create_ext_examples(examples, negative_ratio=0, shuffle=False, is_train=True): entities, relations = convert_ext_examples( examples, negative_ratio, is_train=is_train) examples = entities + relations if shuffle: indexes = np.random.permutation(len(examples)) examples = [examples[i] for i in indexes] return examples def _create_cls_examples(examples, prompt_prefix, options, shuffle=False): examples = convert_cls_examples(examples, prompt_prefix, options) if shuffle: indexes = np.random.permutation(len(examples)) examples = [examples[i] for i in indexes] return examples def _save_examples(save_dir, file_name, examples): count = 0 save_path = os.path.join(save_dir, file_name) with open(save_path, "w", encoding="utf-8") as f: for example in examples: f.write(json.dumps(example, ensure_ascii=False) + "\n") count += 1 print("\nSave %d examples to %s." % (count, save_path)) if len(args.splits) == 0: if args.task_type == "ext": examples = _create_ext_examples(raw_examples, args.negative_ratio, args.is_shuffle) else: examples = _create_cls_examples(raw_examples, args.prompt_prefix, args.options, args.is_shuffle) _save_examples(args.save_dir, "train.txt", examples) else: if args.is_shuffle: indexes = np.random.permutation(len(raw_examples)) raw_examples = [raw_examples[i] for i in indexes] i1, i2, _ = args.splits p1 = int(len(raw_examples) * i1) p2 = int(len(raw_examples) * (i1 + i2)) if args.task_type == "ext": train_examples = _create_ext_examples( raw_examples[:p1], args.negative_ratio, args.is_shuffle) dev_examples = _create_ext_examples( raw_examples[p1:p2], -1, is_train=False) test_examples = _create_ext_examples( raw_examples[p2:], -1, is_train=False) else: train_examples = _create_cls_examples( raw_examples[:p1], args.prompt_prefix, args.options) dev_examples = _create_cls_examples( raw_examples[p1:p2], args.prompt_prefix, args.options) test_examples = _create_cls_examples( raw_examples[p2:], args.prompt_prefix, args.options) _save_examples(args.save_dir, "train.txt", train_examples) _save_examples(args.save_dir, "dev.txt", dev_examples) _save_examples(args.save_dir, "test.txt", test_examples) print('Finished! It takes %.2f seconds' % (time.time() - tic_time))if __name__ == "__main__": # yapf: disable parser = argparse.ArgumentParser() parser.add_argument("--doccano_file", default=r"../data/doccano_ext.json", type=str, help="The doccano file exported from doccano platform.") parser.add_argument("--save_dir", default=r"../data", type=str, help="The path of data that you wanna save.") parser.add_argument("--negative_ratio", default=5, type=int, help="Used only for the extraction task, the ratio of positive and negative samples, number of negtive samples = negative_ratio * number of positive samples") parser.add_argument("--splits", default=[0.8, 0.1, 0.1], type=float, nargs="*", help="The ratio of samples in datasets. [0.6, 0.2, 0.2] means 60% samples used for training, 20% for evaluation and 20% for test.") parser.add_argument("--task_type", choices=['ext', 'cls'], default="ext", type=str, help="Select task type, ext for the extraction task and cls for the classification task, defaults to ext.") parser.add_argument("--options", default=["正向", "负向"], type=str, nargs="+", help="Used only for the classification task, the options for classification") parser.add_argument("--prompt_prefix", default="情感倾向", type=str, help="Used only for the classification task, the prompt prefix for classification") parser.add_argument("--is_shuffle", default=True, type=bool, help="Whether to shuffle the labeled dataset, defaults to True.") parser.add_argument("--seed", type=int, default=1000, help="random seed for initialization") args = parser.parse_args() # yapf: enable do_convert()附录

doccano标准平台官方代码:https://github.com/doccano/doccano doccano标准平台官方文档:https://doccano.github.io/doccano/

本文链接地址:https://www.jiuchutong.com/zhishi/289575.html 转载请保留说明!

上一篇:应收账款清查采用的方法(应收账款清查采用实地盘点法)

下一篇:ant design pro项目安装以及坑点和大部分可能出现问题总结(ant design pro项目构建纯净版)

  • 360极速模式如何改成兼容模式(360极速模式如何开启)

    360极速模式如何改成兼容模式(360极速模式如何开启)

  • k20pro前置相机弹出失败(k20p前置摄像头弹不出)

    k20pro前置相机弹出失败(k20p前置摄像头弹不出)

  • 怎样去除手机屏幕上的广告(怎样去除手机屏保壁纸)

    怎样去除手机屏幕上的广告(怎样去除手机屏保壁纸)

  • 红米10x和10xpro区别(红米10x 和10xpro)

    红米10x和10xpro区别(红米10x 和10xpro)

  • 抖音关注后马上取消对方能看见吗(抖音关注后马上取消对方会有记录吗)

    抖音关注后马上取消对方能看见吗(抖音关注后马上取消对方会有记录吗)

  • 3dmax初始化闪退(3dmax初始化闪退的三种解决方案)

    3dmax初始化闪退(3dmax初始化闪退的三种解决方案)

  • 闲鱼的曝光率怎么到达100(闲鱼的曝光率怎么查)

    闲鱼的曝光率怎么到达100(闲鱼的曝光率怎么查)

  • 苹果手机电话标志没了(苹果手机电话标识)

    苹果手机电话标志没了(苹果手机电话标识)

  • 微信怎样向商家付款(微信商家小程序怎么开通)

    微信怎样向商家付款(微信商家小程序怎么开通)

  • 抖音上超级乐迷是什么(抖音上超级乐迷什么意思)

    抖音上超级乐迷是什么(抖音上超级乐迷什么意思)

  • a1429是苹果几(苹果a1429是4g手机吗)

    a1429是苹果几(苹果a1429是4g手机吗)

  • 家里wifi光信号闪红灯(家里wifi光信号闪红灯是什么意思)

    家里wifi光信号闪红灯(家里wifi光信号闪红灯是什么意思)

  • 百度贴吧怎么加入群组(百度贴吧怎么加经验)

    百度贴吧怎么加入群组(百度贴吧怎么加经验)

  • iphone电池最大容量99能恢复吗(iPhone电池最大容量多少需要更换)

    iphone电池最大容量99能恢复吗(iPhone电池最大容量多少需要更换)

  • 华为手机可以装电信卡吗(华为手机可以装两个电信卡吗)

    华为手机可以装电信卡吗(华为手机可以装两个电信卡吗)

  • mt752ch a是什么型号(mt752ch/a)

    mt752ch a是什么型号(mt752ch/a)

  • 论文如何自动生产目录(论文如何自动生成目录和页码wps)

    论文如何自动生产目录(论文如何自动生成目录和页码wps)

  • 怎么清理苹果喇叭灰尘(怎么清理苹果喇叭声音)

    怎么清理苹果喇叭灰尘(怎么清理苹果喇叭声音)

  • nsp是啥(nsp是啥文件)

    nsp是啥(nsp是啥文件)

  • 苹果平板忘记锁屏密码怎么办(苹果平板忘记锁屏密码怎么办不用电脑)

    苹果平板忘记锁屏密码怎么办(苹果平板忘记锁屏密码怎么办不用电脑)

  • airpods总是断开(airpods总是断开一个)

    airpods总是断开(airpods总是断开一个)

  • qq空间已相恋怎么去掉(qq空间里的已相恋0天怎么弄掉)

    qq空间已相恋怎么去掉(qq空间里的已相恋0天怎么弄掉)

  • 手机怎么开通银联支付(手机怎么开通银行卡余额变动提醒)

    手机怎么开通银联支付(手机怎么开通银行卡余额变动提醒)

  • 苹果库乐队怎么调和弦(苹果库乐队怎么退出)

    苹果库乐队怎么调和弦(苹果库乐队怎么退出)

  • Mac item2常用快捷键是什么?iterm2 快捷键大全(mac快捷键是什么意思)

    Mac item2常用快捷键是什么?iterm2 快捷键大全(mac快捷键是什么意思)

  • 装饰有多个镜子、灯和空气喇叭的摩托车 (© stocknshares/Getty Images)(家里装饰镜太多了怎么化解)

    装饰有多个镜子、灯和空气喇叭的摩托车 (© stocknshares/Getty Images)(家里装饰镜太多了怎么化解)

  • 建筑业收到预收款预缴增值税
  • 固定资产待抵扣进项税
  • 个体户核定征收需要做账吗
  • 印花税的纳税人为书立合同双方
  • 减免税控盘增值税纳税申报
  • 完税证明必须本人办理吗
  • 纳税人销售自产门窗并负责安装
  • 成本会计实训要求
  • 企业重组失败会怎么样
  • 生产中材料的合理损耗核算
  • 短期借款在房地产怎么算
  • 油费预付卡如何开发票
  • 转账显示未认证
  • 其他综合收益包含哪些科目
  • 应付债券的利息调整怎么计算
  • 连号发票税务风险
  • 单位住房没有房产证是否可以买卖
  • 进项大于销项怎么做账
  • 进项税大于销项税是不是不用交税了
  • 商业现金折扣计算
  • 如何将旧版本软件卸载
  • ps不支持win7吗
  • 银行 环保
  • PHP:xml_get_current_line_number()的用法_XML解析器函数
  • 天猫魔合
  • win10平板模式怎么打开
  • 搬迁收入税务筹划
  • 购买车辆的会计分录该怎样做
  • php生成xml文件
  • 坏账准备的会计准则规定
  • vue的foreach循环
  • php 常用算法
  • 【类ChatGPT】本地CPU部署中文羊驼大模型LLaMA和Alpaca
  • bootstrap框架的理解
  • 期初金额和期末金额怎么算
  • 怎么把html转成图片
  • 自动驾驶感知决策控制
  • linux系统操作教程
  • css deep深度选择器
  • trace命令详解
  • 纳税人有什么义务
  • linux rdp客户端
  • python中列表清空
  • 原材料用于在建工程,进项税为什么不转出
  • 出售子公司股权不丧失控制权
  • 业务招待费可以开专票抵扣吗
  • mysql需要转义的特殊字符
  • 不动产集体产权证什么意思
  • 银行汇票是什么意思易懂
  • 如何在税控盘上申领发票
  • 代扣代缴消费税怎么算
  • 兼职劳务费个税计算器
  • 存货报废进项税转出吗
  • 专利年费可以计入研发费用加计扣除吗
  • 坏账准备贷方余额期末如何处理
  • 小规模纳税人购进税控收款机
  • 管理费用如何冲减
  • 微众银行的企业贷款好批吗
  • 如果我们交了房租,对方不给我们开发票
  • 基本账户可以转私人账户吗
  • 开红字发票必须要收回原发票并作废吗?
  • 企业网银的电子对账未签约需要本人去吗
  • mysql数据库增量备份命令
  • 光盘安装系统怎么操作
  • 如何安装vmware10
  • msmpeng.exe是什么程序
  • 电脑操作系统7
  • 封装windows7
  • win7如何整理磁盘
  • win10系统怎么找到桌面
  • unity3d documentation
  • 我的第二个姐姐用英语怎么说
  • js中事件的三要素
  • 如何改变this指向
  • Unity3D Vuforia Android 相机调焦
  • android 自定义
  • javascript怎么做
  • js页面滚动到指定位置
  • 雅阁交强险和车船税多少
  • 新疆喀什泽普县教育局联系电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设