Skip to content

JevSpan

Zero-shot named entity recognition that turns Jev's Choice answers into entity spans via nominate, verify and boundary questions.

LibrarybetaMIT

Overview

JevSpan turns Jev, which answers typed multiple-choice questions but never returns spans, into a zero-shot named entity recogniser. You describe each entity type in one line, optionally with examples and counter-examples. The text is cut at punctuation, every candidate window is offered to Jev as an option per entity type, each nominee is verified with a second Choice (the type, none, mixed or partial), and a third Choice settles the exact boundary and type. Every entity comes back with a probability and a trace of the questions that produced it.

On 12 public Chinese and English NER benchmarks, including five CrossNER domains, the README reports 73.7 average strict F1 fully zero-shot, 1.6 points above prompting Qwen3.8-27B with the same type descriptions and more than 20 points above Baidu UIE and GLiNER on unseen datasets, using 200 sentences per dataset. There are no weights to host or GPU to rent; the client is plain HTTPS. Segmentation handles CJK punctuation. A web UI draws the decision tree.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich candidate window contains an entity of this type?—
ChoiceIs this nominee the type, none, mixed or partial?type · none · mixed · partial
ChoiceWhich boundary is exact for this entity?—

How it works

  1. Define entity types in a JSON file
  2. Segment text at punctuation into candidate windows
  3. Jev nominates windows per type
  4. Each nominee is verified and its boundary settled
  5. Entities are returned with probabilities and an optional trace

Strengths

  • No training data, GPU or fine-tuning
  • Benchmarked across 12 datasets
  • Auditable trace per entity
  • Strong Chinese support

Caveats

  • Multiple Jev calls per entity type and sentence
  • Benchmarks use 200-sentence samples
  • Unofficial; requires a TypeSafe key

Getting started

jevspan "Tim Cook announced that Apple will open a new office in Austin, Texas."

At a glance

Type
Library
Status
beta
Language
Python
Runtime
CLI and web UI
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Information extraction: zero-shot named entity recognition that splits text at punctuation, asks Jev one `Choice` over every candidate window per entity type, verifies each nominee with a second `Choice` (the type, none, mixed or partial) and settles its boundary with a third, averaging 73.7 strict F1 across 12 Chinese and English NER benchmarks against 72.1 for direct extraction with Qwen3.8-27B.

    yibie/awesome-jev
  • Unofficial zero-shot named entity recognition for Chinese and English: code enumerates candidate spans at punctuation, Jev `Choice` questions nominate, verify, and fix the boundary of each entity, and every entity keeps its probability and a decision trace

    AnotiaWang/awesome-decision-models
  • Jev answers typed multiple-choice questions with calibrated probabilities, but it never returns entity spans on its own. \*\*JevSpan turns it into an entity recognizer.\*\* It cuts text at punctuation, offers every candidate window to Jev as an option, verifies what Jev nominates, and then lets Jev settle the exact boundaries and type. Every entity comes back with a probability and a trace of the questions that produced it.

    logicrw/awesome-jev-projects

Frequently asked questions

How can Jev find spans if it only answers choices?

Code enumerates candidate windows as options; Jev nominates, verifies and fixes boundaries through successive Choice questions.

How accurate is it?

The README reports 73.7 average strict F1 across 12 benchmarks, zero-shot.

Can I define my own entity types?

Yes, each type is a name and one-line description, with optional examples.

Related projects

  • Grounded extraction where code proposes spans with exact offsets and Jev only classifies each one; a LangExtract alternative.

    LibrarybetaPython
  • Zero-dependency library that numbers a text's words so Jev can pick them, returning exact substrings for extraction and PII.

    DemoprototypeTypeScript
  • Fills Japanese government PDF forms by asking Jev which profile item each unlabeled field is; personal values stay in the browser.

    ServicebetaJavaScript
  • Streaming PII redaction library for TypeScript with 155 regex detectors, optional NER, and opt-in Jev confirmation before redacting names.

    ProjectbetaTypeScript
  • Benchmark testing whether Jev or open Kev can replace an LLM judge in agent guardrail callbacks on 7,925 public examples.

    ProjectresearchPython
  • FGV Direito SP experiment comparing Jev with Gemini 3.8 Flash and GPT-5.6 Luna for annotating 12 variables in 120 TJSP court rulings.

    ProjectresearchPython