Skip to content

Repository files navigation

Tagger 图标

🏷️ Tagger

橘子不是唯一的水果,但 Tagger 可以是五彩斑斓的 😊 如果这个小工具对你有帮助,请顺手点点小星星⭐️,这对我是莫大的鼓励!🥺

轻量、灵活、自定义、本地优先的 CSV/TSV 数据标注器

Tagger 用普通表格查看数据,用快捷键对单元格、行、列或整张表添加标签。标签定义、颜色和标注位置可保存在配套 JSON 中,表格仍保持普通 CSV/TSV 格式。支持复用与配合大模型分析数据。

详细功能说明见 CURRENT_FEATURES.md。

✨ 特点

  • ⌨️ 键盘优先 — 选中数据,按快捷键打标签,标注速度极快
  • 🎯 四种标注范围 — 单元格、行、列、数据集,选什么标什么
  • 📂 标签不污染数据 — 标签存独立 JSON,CSV 始终干净
  • 🤖 AI 友好 — 一键导出结构化 JSON
  • 🔒 本地优先 — 无需注册或联网
  • 💻 双端可用 — 浏览器版零安装即用,桌面版支持大文件

🎨 使用场景

1. 科学研究

  • 基因-疾病关联标注
  • 实验数据分类
  • 文献筛选

2. 数据分析

  • 数据质量评估
  • 异常值标记
  • 数据分类

3. AI训练

  • 训练数据标注
  • 模型评估
  • 数据清洗

4. 内容审核

  • 文本分类
  • 情感分析
  • 内容筛选

🚀 快速开始

方式一:浏览器版(零安装,推荐新手)

开发时不需要 Rust,使用 Vite 启动本地浏览器版:

# 克隆仓库
git clone https://github.com/your-username/tagger.git
cd tagger

npm ci
npm run dev

终端会显示本地地址,复制到浏览器打开即可。不要直接打开仓库里的 index.html,它是 Vite 源文件,不是浏览器可直接运行的构建文件。

需要离线打开时运行 npm run build,然后打开 dist/index.html。构建产物使用相对路径,可以直接用浏览器打开。

📌 浏览器版适合 3 MB 以内的文件,数据保存在浏览器本地存储中。清除网站数据、无痕窗口关闭、换浏览器或换设备可能丢失,重要工作请导出配套 ZIP。

方式二:桌面版(支持大文件)

# 环境要求:Node.js 18+(https://nodejs.org)

# 1️⃣ 克隆仓库
git clone https://github.com/your-username/tagger.git
cd tagger

# 2️⃣ 安装依赖
npm ci

# 3️⃣ 启动(三选一)
npm run dev                # 浏览器开发版
npm run tauri dev          # 桌面开发版(需要 Rust)
npm run tauri build        # 构建安装包(需要 Rust)

📌 构建安装包需要先安装 ++Rust++。如果只想用浏览器版,不需要 Rust。

⚠️该仓库提供了Release途径下载安装包,但是版本一般没有仓库更新及时,推荐还是自己克隆最新仓库构建。

📖 使用指南

① 打开文件

在存档界面导入 CSV/TSV。恢复已有标注时,点击“导入 ZIP”,选择配套 ZIP;也可以同时选择 CSV/TSV 与标签 JSON。默认进入标注模式。选择单元格、拖动范围、点击行号或表头,再点击标签或按标签快捷键。

工作区中的“保存”按钮或 Cmd/Ctrl+S 会保存当前修改。桌面端打开已有文件时写回原路径并提示位置;从 ZIP 恢复且没有原路径时,首次保存会弹出系统保存对话框;“另存为”可随时选择新位置,并同时写入对应的标签 JSON。

② 创建标签

点击标签栏「+ 创建标签」,设置四个属性:

属性 说明 示例
名称 标签标识 important
定义 语义含义 高置信度候选,应保留
颜色 视觉标记 🔵 #4A90E2
快捷键 快速操作 Cmd+1

③ 标注数据

选中数据 → 按快捷键 → 完成 ✅

Tagger 会根据你的选择自动判断标注范围:

你的操作 标注结果
选中一个单元格,按 Cmd+1 给这个单元格打标签
点击行号选中一行,按 Cmd+1 给整行打标签
点击表头选中一列,按 Cmd+1 给整列打标签
不选任何内容,按 Cmd+1 给整个数据集打标签

一个单元格可以叠加多个标签,行标签、列标签、数据集标签也会一起显示 🌈

④ 常用快捷键

操作 快捷键
🔄 切换标注/编辑模式 Shift+L
➕ 添加标签 Cmd+1 / Cmd+2 …
➖ 移除标签 Shift+Cmd+1 / Shift+Cmd+2 …
📏 选择整行 点击行号
📐 选择整列 点击表头
🔀 多选行 Cmd + Click
✅ 全选 Cmd+A
🔍 搜索 Cmd+K 或 Cmd+F
💾 保存 Cmd/Ctrl+S 或工作区“保存”按钮
↩️ 撤销 / ↪️ 重做 Cmd+Z / Cmd+Shift+Z
❌ 清除选择 Esc

⑤ 导出

点击右上角「导出」按钮会直接生成配套 ZIP;悬停后也可以选择单独导出:

选项 格式 用途
📦 配套 ZIP .zip 包含 CSV/TSV、标签 JSON 和样例 JSON,可重新导入
📄 只导出 CSV .csv / .tsv 给其他工具使用
🏷️ 只导出标签 .tags.json 给 AI / Python 分析,包含每个标注的 ISO 8601 时间戳

🤖 给 AI 用

不想自己写标签?

很简单:

1.点击样例json导出

2.告诉大模型自己的打标要求,类别,让它根据任务需求以及给到的样例json去设计标签

3.将大模型返回的标签文件重新导入到你的目标文件

4.开始标注!

不想自己分析怎么办?

导出标签 JSON 后,可以这样发给大模型:

我有一个数据集,已用 Tagger 进行人工标注。

标签定义:
- important: 高置信度候选
- review: 需要进一步审查

标注情况:
- row-0、row-1 标记为 important
- row-2 标记为 review

请分析标注模式,给出建议。

大模型能直接理解标签含义和标注位置 🔮


📁 文件格式

records.csv           ← 你的原始数据(不被修改)
records.tags.json     ← 标签定义 + 标注位置

CSV 保持干净,标签独立存储。用 Excel 打开 CSV 看不到标签,但 Tagger 可以同时读取两者恢复完整状态。 标签 JSON 的 annotations.timestamps 保存表格、行、列和单元格级别的标注时间;annotation_events 是按条目展开的时间事件,便于大模型直接读取。


构建安装包

npm run tauri build

安装包输出在 src-tauri/target/release/bundle/。请在目标操作系统上分别构建和测试。也可以使用:

./dev.sh
./build.sh

💬 反馈

使用中遇到任何问题或有建议,欢迎邮件联系:

📧 1747819157@qq.com

每封邮件都会认真阅读,你的反馈会直接帮助 Tagger 变得更好 🙏

About

A CSV/TSV Editor for Data Tagging used in MANY FILEDS!!!

Topics

Resources

Stars

35 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages