Máte problémy s AI alebo vývojom celého balíka? Naši odborníci sú tu, aby vám poradili: poradenstvo na mieru, technická integrácia a ďalšie služby. Obráťte sa na [email protected].

Alternatívy SpaCy pre extrakciu entít (NER)

SpaCy je už niekoľko rokov de facto štandardom pre každú spoločnosť, ktorá chce spustiť projekt extrakcie subjektu. Čím si SpaCy získal takú popularitu? A existujú v roku 2023 dobré alternatívy spaCy pre každého, kto sa snaží spustiť projekt extrakcie entít? Poďme si tieto body rozobrať v tomto článku.

SpaCy

SpaCy pre extrakciu entít

Prvá verzia spaCy bola vydaná v roku 2015 a rýchlo sa stala štandardným rámcom pre extrakciu entít na podnikovej úrovni (známa aj ako NER).

Ak máte neštruktúrovaný text (napríklad z webu) a chcete z neho získať štruktúrované údaje, ako sú dátumy, mená, miesta atď., spaCy je veľmi dobré riešenie.

SpaCy je zaujímavý tým, že je k dispozícii niekoľko predtrénovaných modelov v približne 20 jazykoch. (viac informácií nájdete tu). To znamená, že nemusíte nevyhnutne trénovať vlastný model na extrakciu entít. Znamená to tiež, že ak chcete trénovať vlastný model, môžete začať s predtrénovaným modelom namiesto toho, aby ste začínali od nuly, čo vám môže ušetriť veľa času.

SpaCy sa považuje za framework "produkčnej triedy", pretože je veľmi rýchly, spoľahlivý a má rozsiahlu dokumentáciu.

Ak však predvolené entity podporované predtrénovanými modelmi spaCy nestačia, budete musieť pracovať na "anotácii údajov" (známej aj ako "označovanie údajov"), aby ste mohli trénovať svoj vlastný model. Tento proces je mimoriadne časovo náročný a mnoho podnikových projektov extrakcie entít kvôli tejto výzve zlyháva.

Povedzme, že chcete extrahovať názvy pracovných pozícií z nejakého textu (napríklad zo životopisu alebo z webovej stránky spoločnosti). Keďže predtrénované modely spaCy takéto entity štandardne nepodporujú, budete musieť spaCy naučiť, ako rozpoznávať názvy pracovných miest. Budete musieť vytvoriť tréningový súbor údajov, ktorý bude obsahovať niekoľko tisíc príkladov extrakcie názvov pracovných miest (a možno aj oveľa viac!). Môžete použiť platený anotačný softvér, ako je Prodigy (vytvorený tímom spaCy), ale aj tak to vyžaduje veľa ľudskej práce. V skutočnosti je celkom bežné, že spoločnosti si na realizáciu projektu anotácie údajov najímajú na niekoľko mesiacov skupinu dodávateľov. Takáto práca je taká opakujúca sa a nudná, že výsledné súbory údajov často obsahujú veľa chýb...

Príklad anotácie údajov
Príklad anotácie údajov

Pozrime sa, ktoré alternatívne riešenia by ste mohli vyskúšať v roku 2023!

Stanford CoreNLP

Stanford CoreNLP

Prvá verzia Stanford CoreNLP bola vydaná v roku 2013. Je to framework v jazyku Java (zatiaľ čo spaCy je framework v jazyku Python), ktorý umožňuje vykonávať extrakciu entít s veľmi dobrými výsledkami.

Stanford CoreNLP tiež navrhuje predtrénované modely, ale menej ako spaCy (viac informácií nájdete tu).

Presnosť tohto rámca je podobná ako pri spaCy, ale závisí od analyzovaných údajov. Napríklad Stanford CoreNLP poskytuje lepšie výsledky pri právnych údajoch. Tiež stojí za zmienku, že niektoré entity sú v porovnaní so spaCy adresované mierne odlišne (to je napríklad prípad entity GPE).

Pokiaľ ide o výkon, Stanford sa zdá byť jednoznačne pomalší ako spaCy, čo môže byť problém, ak sa snažíte dosiahnuť veľmi vysokú priepustnosť.

Flair

Flair NLP

Flair je novší framework Pythonu (vydaný v roku 2018) založený na frameworku PyTorch pre hlboké učenie.

Získava si veľkú popularitu, pretože v porovnaní so spaCy dosahuje vyššiu presnosť v mnohých jazykoch. Navrhuje sa niekoľko predtrénovaných modelov (viac informácií nájdete tu).

Toto zlepšenie presnosti je však na úkor rýchlosti. Vaša priepustnosť bude v porovnaní so spaCy oveľa nižšia.

Generatívne modely AI (GPT-J, GPT-3...)

Pred niekoľkými rokmi sa začal objavovať nový druh modelov umelej inteligencie: generatívne modely. Tieto modely boli pôvodne vytvorené na generovanie textu (napísanie začiatku textu a nechanie modelu vygenerovať zvyšok), ale ľudia si rýchlo uvedomili, že tieto modely sú veľmi dobré vo všetkých druhoch prípadov použitia spracovania prirodzeného jazyka vrátane extrakcie entít.

Najobľúbenejšie generatívne modely v súčasnosti sú GPT-3, GPT-J, GPT-NeoX, T5 a Bloom. Všetky tieto modely hlbokého učenia využívajú architektúru Transformer, ktorú vynašla spoločnosť Google v roku 2017.

Táto nová generácia modelu umelej inteligencie je veľmi náročná a nákladná na prevádzku. Zvyčajne si vyžadujú špičkový hardvér založený na jednom alebo viacerých GPU. Taktiež sú pomalšie ako rámce ako spaCy. Vďaka týmto modelom je však teraz možné extrahovať akýkoľvek druh entity bez toho, aby bolo potrebné trénovať špecializovaný model!

Extrakcia akejkoľvek entity bez vytvorenia špecializovaného modelu je možná vďaka učeniu sa pomocou niekoľkých snímok. Táto technika spočíva v tom, že modelu rýchlo ukážete, čo chcete urobiť, a to tak, že za behu vytvoríte len niekoľko príkladov. Viac informácií o učení sa pomocou niekoľkých záberov nájdete tu.

Ak sa vrátime k nášmu príkladu extrakcie názvov pracovných miest, ak chcete extrahovať názvy pracovných miest pomocou modelu, ako je GPT-J, nemusíte anotovať žiadne údaje. Ušetrí vám to potom týždne alebo mesiace ľudskej práce. A presnosť bude s najväčšou pravdepodobnosťou oveľa vyššia ako akákoľvek extrakcia entít pomocou spaCy.

Pozrite si náš článok o tom, ako jednoducho vykonávať extrakciu entít pomocou modelov GPT.

Záver

SpaCy je skvelý rámec na spracovanie prirodzeného jazyka, ktorý dnes používa mnoho spoločností na úlohy extrakcie entít.

SpaCy a alternatívy ako Stanford CoreNLP alebo Flair sú však obmedzené, pokiaľ ide o presnosť, a na extrakciu nových entít vyžadujú zdĺhavú anotáciu. V roku 2023 sa na extrakciu entít bez anotácie môže použiť niekoľko alternatívnych modelov založených na generovaní textu, ako napríklad GPT-J, GPT-NeoX, GPT-3... Tieto nové modely skutočne pomôžu čoraz väčšiemu počtu spoločností uspieť v ich projektoch extrakcie entít.

Ak chcete používať GPT-J a GPT-NeoX, neváhajte a vyskúšajte si ich v rozhranie NLP Cloud API (vyskúšajte to tu)!

Juliette
Marketingový manažér v spoločnosti NLP Cloud