Potato(土豆)一款轻量级的开源文本标注工具

项目介绍:

Potato 是一款轻量级、可移植的Web文本标注工具,被EMNLP 2022 DEMO赛道接受。它旨在帮助用户快速地从零开始创建和部署各种文本标注任务,无需复杂的编程或网页设计。只需简单配置,团队即可在几分钟内启动并运行标注项目。

注: EMNLP是计算语言学和自然语言处理领域顶级国际会议之一,与ACLNAACLCOLING并称为自然语言处理与计算语言学领域的四大顶级会议。

Potato允许您快速模拟和部署各种文本注释任务。Potato在后端作为web服务器工作,在本地部署安装启动它,就可以基于web的前端来标注数据。Potato工具的目标是允许人们自己或小团队快速轻松地注释文本数据——只需几行配置即可从零开始做标注任务。

Potato 依赖于一个配置文件驱动,定义了任务类型和所需的数据。通过这个配置文件,你可以设置不同的标注模式,如单选、多选、文本框、跨度、配对比较等,支持不同数据类型,包括短文、长文、对话和比较。

Potato不需要任何编码即可启动和运行。对于大多数任务,不需要额外的web设计。Potato很容易自定义,可以调整注释器看到的界面和元素。

有关详细说明,可以查看官方文档。

安装运行:

安装 Potato 并启动样例项目,官方提供了两种方式:

方式1:直接使用pip安装包( potato-annotation · PyPI)

pip install potato-annotation
potato get sentiment_analysis
potato start sentiment_analysis

方式2:从git仓库下载源码安装(GitHub - davidjurgens/potato: potato: portable text annotation tool

git clone https://github.com/davidjurgens/potato.gitcd potatopip install -r requirements.txt# 启动实例(一种简单的多选框标注方式)
python potato/flask_server.py start project-hub/simple_examples/configs/simple-check-box.yaml -p 8000

运行完后,访问 [http://localhost:8000] 即可体验。

我的实验:在windows环境下安装,第一种方式有报错,暂时没有去解决,就直接按第二种方式安装运行了。。

实验应用

简单采用项目中提供的simple-check-box(多选框)实例,后台启动运行后,就可以直接在本地浏览器打开运行 [http://localhost:8000] 。

初次登录时需要注册一下(注册信息存在本地,应该是相同任务作业,区分不同用户使用)

在potato项目的实例目录potato\project-hub\simple_examples下面,有三个文件夹:

其中,data中存放的待标注的样本文件, 其中文本文件有json,csv和tsv三种格式。

configs中不同标注风格的配置实例,比如,我们这次运行的simple-check-box.yaml

annotation_output存放是标注结果的输出文件,可以在配置时,指定是tsv, csv 或 json格式。

在配置文件simple-check-box.yaml中,原本的输入样本文件是data/toy-example.csv。假设我们需要修改为自己的标注文件test1.csv,只需要更改配置文件的输入文件行,参考如下:

{"port": 9001,"server_name": "potato annotator","annotation_task_name": "Simple Check Box Example",# Potato will write the annotation file for all annotations to this# directory, as well as per-annotator output files and state information# necessary to restart annotation."output_annotation_dir": "annotation_output/simple-check-box/",# The output format for the all-annotator data. Allowed formats are:# * jsonl# * json (same output as jsonl)# * csv# * tsv#"output_annotation_format": "tsv", # If annotators are using a codebook, this will be linked at the top to the# instance for easy access"annotation_codebook_url": "",#"data/toy-example.csv""data_files": ["data/test1.csv"],"item_properties": {"id_key": "id","text_key": "text","context_key": "context"},"user_config": {"allow_all_users": True,"users": [  ],},# How many seconds do you want the annotators spend on each instance, after# that, an alert will be sent per alert_time_each_instance seconds."alert_time_each_instance": 10000000,"annotation_schemes": [      {"annotation_type": "multiselect","name": "favorite_color", "description": "What colors are mentioned in the text?","labels": ["blue", "maize", "green", "white"],# If true, numbers [1-len(labels)] will be bound to each# label. Check box annotations with more than 10 are not supported# with this simple keybinding and will need to use the full item# specification to bind all labels to keys."sequential_key_binding": True,            },       ],# The html that changes the visualiztation for your task. Change this file# to influence the layout and description of your task. This is not a full# HTML page, just the piece that does lays out your task's pieces# you may use templates in our lib, if you want to use your own template,# please replace the string as a path to the template"html_layout": "default",# The core UI files for Potato. You should not need to change these normally.## Exceptions to this might include:# 1) You want to add custom CSS/fonts to style your task# 2) Your layout requires additional JS/assets to render# 3) You want to support additional keybinding magic## if you want to use your own template,# please replace the string as a path to the template"base_html_template": "default","header_file": "default",# This is where the actual HTML files will be generated"site_dir": "default"}

仿造式例中"data/toy-example.csv"文件, 新的test1.csv文件的字段需要用英文逗号分隔。

id,text
item_1,它的一些方式。
item_2,他们不会感到疼痛。
item_3,它不会自行处理。
item_4,四个人想请一些志愿者来增加时间。
item_5,请求不是quiquia。
item_6,因为他的帮助,他快五十岁了。
item_7,为任何人考虑痛苦。
item_8,时间不会伤害你。
item_9,一美元的开心果很好,而且不会受伤。
item_10,委员会。
item_11,因为没有人想做自己。

最后,打开web端的标注页,展示效果如下:

总结:使用potato标注工具,按照提供的式例文件(覆盖了常见的自然语言的标注任务),通过简单修改配置文件(yaml格式), 就可以开展独立的标注任务,同时也可以修改配置文件,简单改变页面展示效果(如英文界面替换成中文的)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文速读】| LLAMAFUZZ:大语言模型增强的灰盒模糊测试

本次分享论文:LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing 基本信息 原文作者:Hongxiang Zhang, Yuyang Rong, Yifeng He, Hao Chen 作者单位:University of California, Davis 关键词:模糊测试,大…

SQL面试题练习 —— 合并用户浏览行为

目录 1 题目2 建表语句3 题解 1 题目 有一份用户访问记录表,记录用户id和访问时间,如果用户访问时间间隔小于60s则认为时一次浏览,请合并用户的浏览行为。 样例数据 ------------------------ | user_id | access_time | ---------------…

云动态摘要 2024-06-27

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新产品更新 veLinux 2.0 镜像邀测发布 火山引擎 2024-06-26 veLinux 2.0 镜像邀测发布 ECS支持100台实例批量续费/退订 火山引擎 2024-06-26 ECS支持100台实例批量续费/退订 弹性伸缩支持目标追踪规则(邀测) …

花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?

我就是从培训机构学的网络安全,线下五六个月,当时学费不到一万,目前已成功入行。所以,只要你下决心要入这一行,过程中能好好学,那这8000就花得值~ 因为只要学得好,工作两个多月就能赚回学费&am…

Shell (一)Ubuntu的网络配置及软件安装

Ubuntu的配置及软件安装 网络配置 虚拟机提供的网络类型 桥接模式 主机和虚拟机分别拥有不同的ip地址,可以实现和外界设备通信 NAT模式 也可以联网,但是和主机共用同一个ip地址,外界无法识别虚拟机和主机发送的信息 仅主机模式 虚拟机不可…

数据资产与人工智能的融合之路:探讨如何结合AI技术优化数据资产管理,提升企业智能化水平

目录 一、引言 二、数据资产管理的现状与挑战 1、数据资产管理的重要性 2、数据资产管理的挑战 三、人工智能在数据资产管理中的应用 1、数据采集与整合 2、数据清洗与校验 3、数据安全与隐私保护 4、数据分析与挖掘 四、结合AI技术优化数据资产管理的策略 1、制定数…

【stm32-新建工程-HAL库版本】

stm32-新建工程-HAL库版本 ■ 1. 下载STM32Cube官方固件包(F1/F4/F7/H7)■ 2. 新建HAL库版本MDK工程所需的文件夹■ 2.1 新建工程文件- XXX项目并在下面新建如下文件夹■ 2.2 向Drivers文件添加如下文件■ 2.3 向Mrddlewares文件添加文件■ 2.4 设置Outp…

python--jiaba库的基本使用

jieba 是一个用于中文分词的 Python 库。它使用基于统计的词典分词方法,能够支持三种分词模式:精确模式、全模式、搜索引擎模式,并且支持繁体分词和自定义词典。 以下是 jieba 库的基本使用步骤: 安装 首先,你需要安…

一篇文章带你玩懂数据库的基础函数

数据库的函数 单行函数1.数据函数2.字符串函数3.时间函数4.流程函数 多行函数聚合函数 阅读指南: 本文章讲述了对于数据库的单行和多行函数,如果读者感兴趣,后续我们会更新高级的操作在我们的对于数据库教程的合集中,大家可以来很…

唐兴通:银行金融数字化转型营销客户销售个金对公讲师培训师

唐兴通 数字化转型顾问、金融产品营销专家、数字化销售增长教练、沃顿商学院演讲嘉宾。全球创新增长战略大家EM罗杰斯(创新的扩散)、杰弗里摩尔(跨越鸿沟)、亨利切萨布鲁夫(开放式创新)在中国合作者。《中…

服务接口请求 CORS跨域漏洞修复

通过nginx去对Origin请求头的来源地址去做逻辑处理,不在白名单内返回403 具体配置 location / {set $flag 0;if ($http_origin ){set $flag "${flag}1";}if ($http_origin !~* ^(http|https)://www\.abc\.com$){set $flag "${flag}1";}if ($f…

一位OpenAI大模型训练工程师繁忙的一天

早晨:迎接新的一天 7:00 AM - 起床 早晨七点起床。洗漱、吃早餐后,查看手机上的邮件和公司消息,以便提前了解今天的工作安排和任务优先级。 7:30 AM - 前往公司 乘坐地铁前往位于旧金山的OpenAI总部。在地铁上习惯性地阅读一些与人工智能和…

秋招倒计时?到底需要准备到什么程度?

秋招倒计时?需要准备到什么程度? 秋招,面向全国的毕业生,招聘的激烈程度可想而知!按照往年时间,秋招通常从八月初开始,九月黄金期,十月中后期。距今刚好差不多60天,时间其…

npm常用命令大全(非常详细)

npm(Node Package Manager)是Node.js的包管理工具,它允许你安装、更新、删除和管理Node.js项目的依赖。 以下是npm的一些常用命令,按照不同的功能进行分类和解释: 1. 初始化项目 init # 初始化一个新的npm项目&…

【.NET全栈】第16章 Web开发

文章目录 16.1 HTML概述16.1.1 HTML的基本概念16.1.2 HTML语言的基本元素16.1.3 格式设置16.1.4 超级链接16.1.5 图像16.1.6 表格16.1.7 框架16.1.8 表单 16.2 ASP.NET Web Forms的组织16.2.1 认识ASP.NET16.2.2 Web Forms的组织 16.3 Web服务器组件16.3.1 使用Label和TextBox控…

【PyScript】PyScript 基础入门

【PyScript】PyScript 基础入门 PyScript 是一个为了支持 Python 运行在浏览器的开源平台。 1.PyScript 应用程序的创建 PyScript 程序需要以下三个内容 一个提供给浏览器的 index.html 文件。PyScript 的运行环境描述,通常是一个 pyscript.json 或 pyscript.to…

陪诊小程序搭建:构建便捷医疗陪诊服务的创新实践

在当今快节奏的社会,医疗服务与人们的生活息息相关。然而,在医疗体系中,患者往往面临着信息不对称、流程繁琐、陪伴需求得不到满足等问题。为了解决这些问题,我们提出了一种创新的解决方案——陪诊小程序,旨在为患者提…

从零到一打造自己的大模型:模型训练

前言 最近看了很多大模型,也使用了很多大模型。对于大模型理论似乎很了解,但是好像又缺点什么,思来想去决定自己动手实现一个 toy 级别的模型,在实践中加深对大语言模型的理解。 在这个系列的文章中,我将通过亲手实践…

2734. 执行子串操作后的字典序最小字符串

Powered by:NEFU AB-IN Link 文章目录 2734. 执行子串操作后的字典序最小字符串题意思路代码 2734. 执行子串操作后的字典序最小字符串 题意 给你一个仅由小写英文字母组成的字符串 s 。在一步操作中,你可以完成以下行为: 选择 s 的任一非空子字符串…

Elasticsearch中的match_phrase_prefix、prefix和wildcard查询详解

Elasticsearch中的match_phrase_prefix、prefix和wildcard查询详解 match_phrase_prefix 查询示例优点缺点 prefix 查询示例优点缺点 wildcard 查询示例优点缺点 总结适用场景性能比较精度比较 在Elasticsearch中,对于以特定前缀开头的查询需求,常用的查…