Máte potíže s umělou inteligencí nebo s vývojem celého balíku? Naši odborníci jsou tu pro vás: poradenství na míru, technická integrace a další. Obraťte se na [email protected].

Alternativy SpaCy pro extrakci entit (NER)

SpaCy je již několik let de facto standardem pro každou společnost, která chce zahájit projekt extrakce entit. Čím si spaCy získalo takovou oblibu? A existují v roce 2023 dobré alternativy spaCy pro každého, kdo se snaží spustit projekt extrakce entit? Pojďme tyto body probrat v tomto článku.

SpaCy

SpaCy pro extrakci entit

První verze spaCy byla vydána v roce 2015 a rychle se stala standardním rámcem pro extrakci entit na podnikové úrovni (známá také jako NER).

Pokud máte kus nestrukturovaného textu (například z webu) a chcete z něj získat strukturovaná data, jako jsou data, jména, místa atd., spaCy je velmi dobré řešení.

SpaCy je zajímavý tím, že je k dispozici několik předtrénovaných modelů v přibližně 20 jazycích. (více zde). To znamená, že pro extrakci entit nemusíte nutně trénovat vlastní model. Znamená to také, že pokud chcete trénovat vlastní model, můžete začít s předtrénovaným modelem, místo abyste začínali od nuly, což vám může ušetřit spoustu času.

SpaCy je považován za framework "produkční třídy", protože je velmi rychlý, spolehlivý a má rozsáhlou dokumentaci.

Pokud však výchozí entity podporované předtrénovanými modely spaCy nestačí, budete muset pracovat na "anotaci dat" (známé také jako "označování dat"), abyste mohli trénovat svůj vlastní model. Tento proces je časově velmi náročný a mnoho projektů extrakce podnikových entit kvůli němu selhává.

Řekněme, že chcete extrahovat názvy pracovních pozic z části textu (například ze životopisu nebo z webové stránky společnosti). Protože předtrénované modely spaCy takovou entitu ve výchozím nastavení nepodporují, budete muset spaCy naučit rozpoznávat názvy pracovních pozic. Budete muset vytvořit trénovací datovou sadu, která bude obsahovat několik tisíc příkladů extrakcí názvů pracovních míst (a možná i mnohem více!). Můžete použít placený anotační software, jako je Prodigy (vytvořený týmem spaCy), ale i tak to vyžaduje spoustu lidské práce. Ve skutečnosti je zcela běžné, že si společnosti najímají na několik měsíců skupinu dodavatelů, aby provedli projekt anotace dat. Taková práce je natolik opakovaná a nudná, že výsledné datové sady často obsahují spoustu chyb...

Příklad anotace dat
Příklad anotace dat

Podívejme se, jaká alternativní řešení byste mohli vyzkoušet v roce 2023!

Stanford CoreNLP

Stanford CoreNLP

První verze Stanford CoreNLP byla vydána v roce 2013. Jedná se o framework v jazyce Java (zatímco spaCy je framework v jazyce Python), který umožňuje provádět extrakci entit s velmi dobrými výsledky.

Stanford CoreNLP také navrhuje předtrénované modely, ale méně než spaCy (více zde).

Přesnost tohoto rámce je podobná jako u spaCy, ale závisí na analyzovaných datech. Například Stanford CoreNLP poskytuje lepší výsledky u právních dat. Za zmínku také stojí, že některé entity jsou ve srovnání se spaCy řešeny mírně odlišně (to je například případ entity GPE).

Co se týče výkonu, Stanford se zdá být jednoznačně pomalejší než spaCy, což může být problém, pokud se snažíte dosáhnout velmi vysoké propustnosti.

Flair

Flair NLP

Flair je novější framework pro Python (vydaný v roce 2018) založený na frameworku PyTorch pro hluboké učení.

Získává si velkou oblibu, protože v porovnání se spaCy dosahuje v mnoha jazycích vyšší přesnosti. Je navrženo několik předtrénovaných modelů (více zde).

Toto zvýšení přesnosti je však na úkor rychlosti. Vaše propustnost bude ve srovnání se spaCy mnohem nižší.

Generativní modely AI (GPT-J, GPT-3...)

Před několika lety se začal objevovat nový druh modelů umělé inteligence: generativní modely. Tyto modely byly původně vytvořeny pro generování textu (napsání začátku textu a nechání modelu vygenerovat zbytek), ale lidé si rychle uvědomili, že tyto modely jsou velmi dobré pro všechny druhy případů použití při zpracování přirozeného jazyka, včetně extrakce entit.

Mezi nejoblíbenější generativní modely v současnosti patří GPT-3, GPT-J, GPT-NeoX, T5 a Bloom. Všechny tyto modely hlubokého učení využívají architekturu Transformer, kterou v roce 2017 vynalezla společnost Google.

Tato nová generace modelu umělé inteligence je velmi náročná a nákladná na provoz. Obvykle vyžadují špičkový hardware založený na jednom nebo několika grafických procesorech. Také jsou pomalejší než frameworky jako spaCy. Díky těmto modelům je však nyní možné extrahovat jakýkoli druh entit, aniž by bylo nutné trénovat specializovaný model!

Extrakce libovolné entity bez vytvoření speciálního modelu je možná díky učení několika snímků. Tato technika spočívá v tom, že modelu rychle ukážete, co chcete udělat, a to tak, že za běhu vytvoříte pouze několik příkladů. Více informací o učení s několika snímky najdete zde.

Vrátíme-li se k našemu příkladu extrakce názvů pracovních míst, pokud chcete extrahovat názvy pracovních míst pomocí modelu, jako je GPT-J, nebudete muset anotovat žádná data. Ušetří vám to pak týdny nebo měsíce lidské práce. A přesnost bude s největší pravděpodobností mnohem vyšší než jakákoli extrakce entit pomocí spaCy.

Viz náš článek o tom, jak snadno provádět extrakci entit pomocí modelů GPT.

Závěr

SpaCy je skvělý framework pro zpracování přirozeného jazyka, který dnes používá mnoho společností pro úlohy extrakce entit.

SpaCy a alternativy jako Stanford CoreNLP nebo Flair jsou však omezené z hlediska přesnosti a vyžadují zdlouhavou anotaci, aby bylo možné extrahovat nové entity. V roce 2023 lze pro extrakci entit bez anotace použít několik alternativních modelů založených na generování textu, jako jsou GPT-J, GPT-NeoX, GPT-3.... Tyto nové modely skutečně pomohou stále více společnostem uspět v jejich projektech extrakce entit.

Pokud chcete používat GPT-J a GPT-NeoX, neváhejte a vyzkoušejte si je na rozhraní NLP Cloud API. (zkuste to zde)!

Juliette
Marketingový manažer ve společnosti NLP Cloud