SpaCy har i flere år vært en de facto-standard for alle selskaper som ønsker å starte et prosjekt for utvinning av enheter. Hva gjorde spaCy så populært? Og finnes det gode spaCy-alternativer i 2023 for alle som prøver å starte et enhetsutvinningsprosjekt? La oss diskutere disse punktene i denne artikkelen.

Den første spaCy-versjonen ble utgitt i 2015, og den ble raskt et standardrammeverk for uttrekk av enheter på virksomhetsnivå (også kjent som NER).
Hvis du har et stykke ustrukturert tekst (for eksempel fra nettet) og ønsker å trekke ut strukturerte data fra det, som datoer, navn, steder osv., er spaCy en veldig god løsning.
SpaCy er interessant fordi flere forhåndsopplærte modeller er tilgjengelige på rundt 20 språk. (se mer her). Det betyr at du ikke nødvendigvis trenger å trene opp din egen modell for enhetsuttrekk. Det betyr også at hvis du ønsker å trene din egen modell, kan du ta utgangspunkt i en ferdig trent modell i stedet for å starte fra bunnen av, noe som kan spare deg for mye tid.
SpaCy betraktes som et rammeverk av "produksjonskvalitet" fordi det er svært raskt, pålitelig og leveres med omfattende dokumentasjon.
Men hvis standardenhetene som støttes av forhåndsopplærte spaCy-modeller ikke er nok, må du jobbe med "dataanmerkninger" (også kjent som "datamerking") for å lære opp din egen modell. Denne prosessen er ekstremt tidkrevende, og mange uttrekksprosjekter mislykkes på grunn av denne utfordringen.
La oss si at du ønsker å trekke ut stillingstitler fra en tekst (for eksempel fra en CV eller fra en bedrifts nettside). Ettersom spaCy forhåndsopplærte modeller ikke støtter en slik enhet som standard, må du lære spaCy å gjenkjenne stillingstitler. Du må opprette et treningsdatasett som inneholder flere tusen eksempler på uttrekk av stillingstitler (og kanskje enda flere!). Du kan bruke en betalt annotasjonsprogramvare som Prodigy (laget av spaCy-teamet), men det innebærer fortsatt mye menneskelig arbeid. Det er faktisk ganske vanlig å se selskaper ansette en rekke entreprenører i flere måneder for å gjennomføre et dataanmerkelsesprosjekt. En slik jobb er så repeterende og kjedelig at de resulterende datasettene ofte inneholder mange feil ...

La oss se hvilke alternative løsninger du kan prøve i 2023!

Den første versjonen av Stanford CoreNLP ble utgitt i 2013. Det er et Java-rammeverk (mens spaCy er et Python-rammeverk) som lar deg utføre entitetsekstraksjon med svært gode resultater.
Stanford CoreNLP foreslår også forhåndsutdannede modeller, men mindre enn spaCy. (se mer her).
Nøyaktigheten til dette rammeverket ligner på spaCy, men det avhenger av dataene du analyserer. For eksempel gir Stanford CoreNLP bedre resultater for juridiske data. Det er også verdt å merke seg at noen enheter behandles litt annerledes enn spaCy (dette gjelder for eksempel GPE-enheten).
Når det gjelder ytelse, virker Stanford helt klart tregere enn spaCy, noe som kan være et problem hvis du prøver å oppnå en veldig høy gjennomstrømning.

Flair er et nyere Python-rammeverk (utgitt i 2018) basert på PyTorch-rammeverket for dyp læring.
Det blir stadig mer populært fordi det oppnår en høyere nøyaktighet på mange språk sammenlignet med spaCy. Flere forhåndsopplærte modeller er foreslått (se mer her).
Denne nøyaktighetsforbedringen kommer imidlertid på bekostning av hastigheten. Gjennomstrømningen vil være mye lavere sammenlignet med spaCy.
For et par år siden begynte en ny type AI-modeller å dukke opp: generative modeller. Disse modellene ble opprinnelig laget for tekstgenerering (å skrive begynnelsen av et stykke tekst og la modellen generere resten), men folk innså raskt at disse modellene var veldig gode til alle slags bruksområder for naturlig språkbehandling, inkludert entitetsekstraksjon.
De mest populære generative modellene i dag er GPT-3, GPT-J, GPT-NeoX, T5 og Bloom. Alle disse dybdelæringsmodellene bruker Transformer-arkitekturen, oppfunnet av Google i 2017.
Denne nye generasjonen AI-modeller er svært tunge og dyre å kjøre. De krever vanligvis avansert maskinvare basert på en eller flere GPU-er. De er også tregere enn rammer som spaCy. Men takket være disse modellene er det nå mulig å trekke ut alle slags enheter uten å trene en dedikert modell!
Det er mulig å trekke ut en hvilken som helst enhet uten å lage en dedikert modell takket være "few-shot learning". Denne teknikken handler om å raskt vise modellen hva du vil gjøre ved å bare lage et par eksempler under kjøring. Lær mer om læring med få skudd her.
For å gå tilbake til eksemplet med uttrekk av stillingstitler: Hvis du vil trekke ut stillingstitler med en modell som GPT-J, trenger du ikke å kommentere noen data. Det vil da spare deg for uker eller måneder med menneskelig arbeid. Og nøyaktigheten vil sannsynligvis være mye høyere enn ved uttrekk av enheter med spaCy.
Se vår artikkel om hvordan du enkelt kan utføre enhetsuttrekk med GPT-modeller.
SpaCy er et flott rammeverk for naturlig språkbehandling som brukes i produksjon av mange selskaper i dag for enhetsutvinningsoppgaver.
SpaCy og alternativer som Stanford CoreNLP eller Flair er imidlertid begrenset når det gjelder nøyaktighet, og de krever tidkrevende annoteringsarbeid for å trekke ut nye entiteter. I 2023 kan flere alternative modeller basert på tekstgenerering brukes til uttrekk av entiteter uten annotasjon, som GPT-J, GPT-NeoX, GPT-3 osv. Disse nye modellene vil virkelig hjelpe flere og flere selskaper med å lykkes i sine entitetsekstraksjonsprosjekter.
Hvis du vil bruke GPT-J og GPT-NeoX, ikke nøl med å prøve NLP Cloud API. (prøv det her)!
Juliette
Markedssjef hos NLP Cloud