JevSpan
Zero-shot named entity recognition that turns Jev's Choice answers into entity spans via nominate, verify and boundary questions.
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
| Type | Question | Answers |
|---|---|---|
| Choice | Which candidate window contains an entity of this type? | — |
| Choice | Is this nominee the type, none, mixed or partial? | type · none · mixed · partial |
| Choice | Which boundary is exact for this entity? | — |
How it works
- Define entity types in a JSON file
- Segment text at punctuation into candidate windows
- Jev nominates windows per type
- Each nominee is verified and its boundary settled
- 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-jevUnofficial 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-modelsJev 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.
LibrarybetaPythonZero-dependency library that numbers a text's words so Jev can pick them, returning exact substrings for extraction and PII.
DemoprototypeTypeScriptFills Japanese government PDF forms by asking Jev which profile item each unlabeled field is; personal values stay in the browser.
ServicebetaJavaScriptStreaming PII redaction library for TypeScript with 155 regex detectors, optional NER, and opt-in Jev confirmation before redacting names.
ProjectbetaTypeScriptBenchmark testing whether Jev or open Kev can replace an LLM judge in agent guardrail callbacks on 7,925 public examples.
ProjectresearchPythonFGV 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