Annotation

Text Classification Labeler

Paste lines, or load a CSV or JSONL and choose the text column. Each row is shown one at a time with your labels on number keys, and the result exports as CSV or JSONL with a label column, ready for scikit-learn, a Hugging Face sequence-classification run, or an LLM few-shot set.

Loading the tool…

How it works

01

Load text

Paste one item per line, or drop CSV/JSONL and pick the column. Existing labels in a label column are kept.

02

Label

Number keys assign, Space skips, Backspace goes back. Search and filter to jump to unlabelled or a particular label.

03

Export

CSV with text and label, or JSONL with {"text": ..., "label": ...}. Label ids are also written as a label map JSON.

Formats, limits and the numbers that matter

Guidelines

Write a one-line definition per label in the sidebar; it stays on screen and is exported with the label map, which is what a second annotator needs.

Balance

The counter per label shows class balance as you work; the Dataset Statistics tool draws it after export.

Long text

Rows are shown in full with wrapping; there is no length limit beyond memory.

Common questions

Multi-label?

Yes, toggle multi-label; the export uses a semicolon-separated string in CSV and a list in JSONL.

Can I label pairs (question, answer)?

Pick two columns and both are shown; the label applies to the row.

Is text sent anywhere?

No. Everything runs in the page; nothing is uploaded.