Een NER-model kiezen: spaCy, GLiNER, Transformers of LLMs?
Automatische vertaling
Dit artikel is automatisch vertaald vanuit de oorspronkelijke Engelse versie.
Named entity recognition (NER) vindt en labelt tekstspans, zoals personen, bedrijven en productcodes. Deze pagina is bedoeld voor engineers die een extractieaanpak kiezen voor een productieomgeving. Je krijgt een startpunt dat je kunt testen met je schema, documenten en operationele randvoorwaarden.
Gebruik spaCy voor stabiele labels en snelle pipelines. Kies GLiNER wanneer labels vaak veranderen. Test een bi-encoder wanneer veel labels gecachte embeddings kunnen hergebruiken, of een fine-tuned Transformer tokenclassifier wanneer je gelabelde voorbeelden hebt. Gebruik gestructureerde extractie met LLMs wanneer je een complex record nodig hebt in plaats van een eenvoudige lijst met spans.
Kies op basis van de vereiste labels, de taal, de vorm van de uitvoer, de gelabelde data en het latencybudget.
Beslissingstabel
| Behoefte | Startpunt | Waarom |
|---|---|---|
| Bekende labels en deployment op CPU | spaCy-baseline | Voorgetrainde pipelines en regels bieden een baseline; controleer de nauwkeurigheid voor de taal en het domein. |
| Nieuwe labels zonder volledige training | GLiNER | Extractie op basis van labels werkt goed wanneer de labelset verandert. Begin met duidelijke typebeschrijvingen, niet met kale namen. |
| Grote, herbruikbare labelinventaris | GLiNER bi-encoder | Kan labelembeddings vooraf berekenen en cachen in plaats van labels voor elk document opnieuw te encoden. |
| Entiteiten en relaties in één doorgang | GLiNER-Relex als kandidaat | Extraheert entiteits- en relatietypen gezamenlijk. Vergelijk dit met afzonderlijke stappen op het beoogde relatieschema. |
| Entiteiten en documentvelden of classificatie | GLiNER2 | De schema-interface combineert entiteitsherkenning, classificatie en gestructureerde extractietaken. |
| Geneste of overlappende entiteiten | Decoder met ondersteuning voor geneste entiteiten, waaronder GLiNER met flat_ner=False | Vlakke decodering onderdrukt overlap. Test geneste spans op annotaties met de overlapspatronen die je verwacht. |
| Meertalige extractie of extractie met meerdere schriftsoorten | GLiNER-X of XLM-R-baseline | Test elke doeltaal, elk domein en de formulering van de typebeschrijvingen. |
| Stabiele domeinlabels met representatieve gelabelde spans | Fine-tuned tokenclassifier of spaCy-pipeline | Stel een supervised baseline op en vergelijk daarna exact-span F1, latency en kosten op je domeinset. |
| Impliciete velden, velden over zinsgrenzen heen of gestructureerde velden | LLM of hybride kandidaat | Structured outputs beperken de vorm van het antwoord, niet de juistheid van de extractie. Valideer de nauwkeurigheid per veld op een domeintestset. |
| PII met hoge impact of gereguleerde workflow | Presidio plus GLiNER2-PII als kandidaat | Combineer modeluitvoer met deterministische controles, controles op het onleesbaar maken van gegevens en beoordeling. |
| Exacte ID’s, productcodes of bekende termen | Regels en woordenboeken | Deterministische matching is nuttig voor vaste patronen; test gemiste varianten en onjuiste overeenkomsten. |
Zo kies je
Beschrijf de entiteitstypen en enkele gelabelde voorbeelden voordat je een model kiest. Neem dubbelzinnige termen en spans binnen andere spans op als de taak die nodig heeft.
Als labels stabiel zijn, test dan eerst een bestaande pipeline. Pas fine-tuning toe op een tokenclassifier wanneer fouten binnen het domein training rechtvaardigen en representatieve gelabelde voorbeelden beschikbaar zijn. Vergelijk de classifier op een apart gehouden domeinset. Hij voorspelt tokenlabels zonder het antwoord token voor token te genereren.
Als labels vaak veranderen, test dan GLiNER of een LLM-extractor. Schrijf een korte beschrijving voor elk dubbelzinnig type. ZeroNER evalueert typebeschrijvingen met entiteitstypen die tijdens de training niet voorkwamen. Beschrijvingen verduidelijken het label; een test van onbekende typen moet die typen ook buiten de training houden.
Als je een grote labelinventaris hergebruikt, evalueer dan een bi-encoder voordat je een gezamenlijke label-tekstencoder gebruikt. Het artikel over de GLiNER-bi-encoder rapporteert ongeveer 130 keer hogere throughput voor gliner-bi-edge-v2.0 met gecachte labelembeddings dan voor gliner_small-v2.5 bij 1.024 labels. Die vergelijking gebruikte één H100 GPU en batchgrootte 1; de snelheidstests omvatten invoer van 64, 256 en 512 tokens. Dit laat zien waarom labelhergebruik het testen waard is, niet welke versnelling je bij een andere belasting mag verwachten.
Als documenten meerdere talen omvatten, benchmark dan elke doeltaal en elk schrift. OpenNER 1.0 vond geen enkel model dat het beste presteerde over de volledige verzameling van 52 talen. Test zowel Engelse als gelokaliseerde typebeschrijvingen, omdat de labeltekst deel uitmaakt van de modelinput.
Als de uitvoer een gestructureerd record is in plaats van spans, gebruik dan een LLM met structured outputs of een hybride pipeline. LangExtract is nuttig wanneer elke extractie moet kunnen worden teruggekoppeld aan de bronlocatie. NuExtract is een zelf gehoste optie voor multimodale documentextractie. Beide hebben nog steeds evaluatie per veld op de beoogde documenten nodig.
Veel zakelijke extractietaken zijn geen pure NER. “Vind de partijen, verplichtingen, ingangsdatum, beëindigingsclausule en toepasselijk recht” is documentbegrip met entiteitsvelden.
Gebruik voor PII een PII-framework zoals Presidio als integratielaag en laag voor het onleesbaar maken van gegevens. Behandel GLiNER2-PII als een modelkandidaat, niet als een compliancebeslissing. Meet recall op de gevoelige formaten, talen en documenten die het systeem zal verwerken.
Productiepipeline
Een extractiepipeline voor productie voegt vaak stappen rond het model toe:
- Kandidaatextractie: spaCy, GLiNER, Transformer-model, LLM, regels of een combinatie.
- Optionele normalisatie of entiteitskoppeling: koppel spans aan canonieke ID’s, productcodes, gebruikers, bedrijven of termen in je domeinwoordenboek.
- Validatie en beoordeling: wijs onmogelijke labels af, dwing schemabeperkingen af, dedupliceer spans en stuur onzekere gevallen ter beoordeling door.
Normalisatie koppelt geëxtraheerde tekst aan een stabiele ID in je data. Bepaal bij de span “Apple” eerst of deze het bedrijf, de vrucht, een productfamilie of een beurssymbool aanduidt. Koppel die betekenis vervolgens aan de bijbehorende ID.
Evaluatiechecklist
Meet meer dan F1 op entiteitsniveau:
Exact-span F1 telt een voorspelling alleen als correct wanneer zowel de span als het label overeenkomen met de annotatie. Een minder strikte score kan overlappende spans accepteren; leg daarom de matchingregel vast. Geen van beide scores controleert of de geëxtraheerde naam aan de juiste database-ID is gekoppeld.
- exact span F1
- relaxed span F1
- labelverwarringsmatrix
- omgang met geneste entiteiten
- nauwkeurigheid van entiteitsnormalisatie
- gevoeligheid voor typebeschrijving en labeltaal
- uitsplitsingen naar taal, schrift en documentformaat
- foutpositieven per label
- kalibratie van betrouwbaarheid
- latency en kosten per document
- percentage correcties door mensen
Houd de testset gescheiden van schema-ontwerp en drempelafstelling. Rapporteer het aantal documenten en entiteitsvermeldingen per label. Gebruik betrouwbaarheidsintervallen op documentniveau wanneer herhaalde vermeldingen in één document anders de zekerheid zouden vergroten.
Verder lezen
- NER-gids 2026 behandelt encoders, LLMs en de productiearchitectuur met drie niveaus.
- Schemageleid redeneren is relevant wanneer NER overgaat in gestructureerde extractie.
Referenties
- GLiNER-documentatie
- Artikel over de GLiNER-bi-encoder - gecachte labelembeddings voor grote inventarissen.
- GLiNER2-documentatie
- Artikel over GLiNER-Relex - gezamenlijke entiteits- en relatie-extractie.
- Artikel over ZeroNER - strenge zero-shot-evaluatie met typebeschrijvingen.
- Artikel over OpenNER 1.0 - meertalige NER-evaluatie met meerdere ontologieën.
- LangExtract - LLM-extractie met bronverwijzingen.
- NuExtract - zelf gehoste multimodale extractie.
- Presidio - framework voor PII-detectie en anonimisering.
- Artikel over GLiNER2-PII - meertalige PII-modelkandidaat.
- spaCy-documentatie over benoemde entiteiten
- Hugging Face-gids voor tokenclassificatie
- OpenAI-gids voor structured outputs