Kæmper du med AI eller full-stack-udvikling? Vores eksperter er her for at vejlede dig: skræddersyet rådgivning, teknisk integration og meget mere. Kontakt os på [email protected].

SpaCy-alternativer til udtrækning af enheder (NER)

SpaCy har i flere år været en de facto-standard for alle virksomheder, der ønsker at lancere et projekt til udtrækning af enheder. Hvad har gjort spaCy så populær? Og er der gode spaCy-alternativer i 2023 for alle, der forsøger at starte et projekt til udtræk af enheder? Lad os diskutere disse punkter i denne artikel.

SpaCy

SpaCy til udtrækning af entiteter

Den første spaCy-version blev udgivet i 2015, og den blev hurtigt en standardramme til udtrækning af enheder i virksomhedskvalitet (også kendt som NER).

Hvis du har et stykke ustruktureret tekst (f.eks. fra internettet), og du ønsker at udtrække strukturerede data fra det, f.eks. datoer, navne, steder osv. er spaCy en rigtig god løsning.

SpaCy er interessant, fordi der findes flere forudtrænede modeller på omkring 20 sprog (se mere her). Det betyder, at du ikke nødvendigvis behøver at træne din egen model til udtrækning af enheder. Det betyder også, at hvis du ønsker at træne din egen model, kan du starte med en allerede trænet model i stedet for at starte helt forfra, hvilket kan spare dig en masse tid.

SpaCy betragtes som et framework af "produktionskvalitet", fordi det er meget hurtigt, pålideligt og leveres med en omfattende dokumentation.

Men hvis de standardentiteter, der understøttes af spaCy-prøvetrænede modeller, ikke er tilstrækkelige, skal du arbejde med "dataannotation" (også kendt som "datamærkning") for at træne din egen model. Denne proces er ekstremt tidskrævende, og mange projekter til udtrækning af virksomhedsenheder mislykkes på grund af denne udfordring.

Lad os sige, at du ønsker at udtrække stillingsbetegnelser fra et stykke tekst (f.eks. fra et CV eller fra en virksomheds webside). Da spaCy's prætrænede modeller ikke understøtter en sådan enhed som standard, skal du lære spaCy at genkende jobtitler. Du skal oprette et træningsdatasæt, der indeholder flere tusinde eksempler på uddrag af jobtitler (og måske endda mange flere!). Du kan bruge en betalt annotationssoftware som Prodigy (lavet af spaCy-holdet), men det indebærer stadig en masse menneskeligt arbejde. Det er faktisk ret almindeligt at se virksomheder hyre en flok entreprenører i flere måneder for at gennemføre et dataannotationsprojekt. Et sådant arbejde er så gentagende og kedeligt, at de resulterende datasæt ofte indeholder en masse fejl ...

Eksempel på dataannotation
Eksempel på dataannotation

Lad os se, hvilke alternative løsninger du kan prøve i 2023!

Stanford CoreNLP

Stanford CoreNLP

Den første version af Stanford CoreNLP blev udgivet i 2013. Det er en Java-ramme (mens spaCy er en Python-ramme), som gør det muligt at udføre entitetsekstraktion med meget gode resultater.

Stanford CoreNLP foreslår også forudtrænede modeller, men i mindre grad end spaCy (se mere her).

Nøjagtigheden af denne ramme svarer til spaCy, men den afhænger af de data, du analyserer. Stanford CoreNLP giver f.eks. bedre resultater på juridiske data. Det er også værd at bemærke, at nogle enheder adresseres en smule anderledes end spaCy (dette er f.eks. tilfældet med GPE-enheden).

Når det gælder ydeevne, virker Stanford klart langsommere end spaCy, hvilket kan være et problem, hvis du forsøger at opnå en meget høj gennemstrømning.

Flair

Flair NLP

Flair er en nyere Python-ramme (udgivet i 2018) baseret på PyTorch-rammen for dybdeindlæring.

Den er ved at blive meget populær, fordi den opnår en højere nøjagtighed på mange sprog sammenlignet med spaCy. Der er foreslået flere forudtrænede modeller (se mere her).

Denne forbedring af nøjagtigheden sker dog på bekostning af hastigheden. Dit gennemløb vil være meget lavere sammenlignet med spaCy.

Generative AI-modeller (GPT-J, GPT-3...)

For et par år siden begyndte der at dukke en ny slags AI-modeller op: generative modeller. Disse modeller blev oprindeligt skabt til tekstgenerering (man skriver begyndelsen af en tekst og lader modellen generere resten), men det gik hurtigt op for folk, at disse modeller var meget gode til alle mulige former for brug af naturlige sprogbehandlinger, herunder udtræk af enheder.

De mest populære generative modeller i dag er GPT-3, GPT-J, GPT-NeoX, T5 og Bloom. Alle disse deep learning-modeller bruger Transformer-arkitekturen, som Google opfandt i 2017.

Denne nye generation af AI-modeller er meget tunge og dyre at køre. De kræver normalt high-end hardware baseret på en eller flere GPU'er. De er også langsommere end rammeværker som spaCy. Men takket være disse modeller er det nu muligt at udtrække enhver form for enhed uden at træne en dedikeret model!

Det er muligt at udtrække enhver enhed uden at oprette en dedikeret model takket være few-shot learning. Denne teknik går ud på hurtigt at vise modellen, hvad du vil gøre, ved kun at lave et par eksempler ved kørselstid. Få mere at vide om læring med få skud her.

For at vende tilbage til vores eksempel med udtræk af jobtitler, behøver du ikke at annotere data, hvis du vil udtrække jobtitler med en model som GPT-J. Det sparer dig for uger eller måneder af menneskeligt arbejde. Og nøjagtigheden vil højst sandsynligt være meget højere end enhver udtrækning af enheder med spaCy.

Se vores artikel om, hvordan du nemt kan udføre udtrækning af enheder med GPT-modeller.

Konklusion

SpaCy er en fantastisk ramme til behandling af naturligt sprog, som anvendes i produktion af mange virksomheder i dag til opgaver med udtræk af enheder.

SpaCy og alternativer som Stanford CoreNLP eller Flair er imidlertid begrænsede med hensyn til nøjagtighed, og de kræver et besværligt annotationsarbejde for at udtrække nye enheder. I 2023 kan flere alternative modeller baseret på tekstgenerering anvendes til udtrækning af enheder uden annotation, f.eks. GPT-J, GPT-NeoX, GPT-3 ... Disse nye modeller vil virkelig hjælpe flere og flere virksomheder med at få succes med deres projekter til ekstraktion af enheder.

Hvis du ønsker at bruge GPT-J og GPT-NeoX, skal du ikke tøve med at prøve NLP Cloud API (prøv det her)!

Juliette
Marketingchef hos NLP Cloud