Aveți probleme cu inteligența artificială sau cu dezvoltarea full-stack? Experții noștri sunt aici pentru a vă ghida: consiliere personalizată, integrare tehnică și multe altele. Contactați-ne la [email protected].

SpaCy Alternative pentru extragerea entităților (NER)

SpaCy este de mai mulți ani un standard de facto pentru orice companie care dorește să lanseze un proiect de extracție a entităților. Ce a făcut spaCy atât de popular? Și există alternative bune la spaCy în 2023 pentru oricine încearcă să demareze un proiect de extragere de entități? Să discutăm aceste puncte în acest articol.

SpaCy

SpaCy pentru extragerea entităților

Prima versiune spaCy a fost lansată în 2015 și a devenit rapid un cadru standard pentru extragerea entităților la nivel de întreprindere (cunoscută și sub numele de NER).

Dacă aveți o bucată de text nestructurat (provenind de pe web, de exemplu) și doriți să extrageți date structurate din el, cum ar fi date, nume, locuri etc. spaCy este o soluție foarte bună.

SpaCy este interesant pentru că sunt disponibile mai multe modele preinstruite în aproximativ 20 de limbi. (vezi mai multe aici). Aceasta înseamnă că nu trebuie neapărat să vă antrenați propriul model pentru extragerea entităților. De asemenea, înseamnă că, dacă doriți să vă antrenați propriul model, puteți porni de la un model pre-antrenat în loc să începeți de la zero, ceea ce vă poate economisi mult timp.

SpaCy este considerat un cadru de "calitate de producție", deoarece este foarte rapid, fiabil și vine cu o documentație cuprinzătoare.

Cu toate acestea, dacă entitățile implicite acceptate de modelele preinstruite spaCy nu sunt suficiente, va trebui să lucrați la "adnotarea datelor" (cunoscută și sub numele de "etichetarea datelor") pentru a vă instrui propriul model. Acest proces necesită foarte mult timp, iar multe proiecte de extragere a entităților de întreprindere eșuează din cauza acestei provocări.

Să spunem că doriți să extrageți titlurile posturilor dintr-un text (de exemplu, dintr-un CV sau de pe pagina web a unei companii). Deoarece modelele preinstruite de spaCy nu acceptă în mod implicit o astfel de entitate, va trebui să învățați spaCy cum să recunoască titlurile de locuri de muncă. Va trebui să creați un set de date de instruire care să conțină câteva mii de exemple de extrageri de titluri de locuri de muncă (și poate chiar mult mai multe!). Puteți utiliza un software de adnotare plătit, cum ar fi Prodigy (realizat de echipa spaCy), dar acest lucru implică totuși multă muncă umană. De fapt, este destul de frecvent să vezi companii care angajează o grămadă de contractori pentru câteva luni pentru a realiza un proiect de adnotare a datelor. O astfel de muncă este atât de repetitivă și plictisitoare încât seturile de date rezultate conțin adesea o mulțime de greșeli...

Exemplu de adnotare a datelor
Exemplu de adnotare a datelor

Haideți să vedem ce soluții alternative ați putea încerca în 2023!

Stanford CoreNLP

Stanford CoreNLP

Prima versiune a Stanford CoreNLP a fost lansată în 2013. Este un framework Java (în timp ce spaCy este unul Python) care permite realizarea extracției de entități cu rezultate foarte bune.

Stanford CoreNLP propune și el modele pre-antrenate, dar mai puțin decât spaCy (vezi mai multe aici).

Acuratețea acestui cadru este similară cu cea a spaCy, dar depinde de datele pe care le analizați. De exemplu, Stanford CoreNLP oferă rezultate mai bune în cazul datelor juridice. De asemenea, este demn de remarcat faptul că unele entități sunt abordate ușor diferit față de spaCy (acesta este cazul entității GPE, de exemplu).

În ceea ce privește performanța, Stanford pare în mod clar mai lent decât spaCy, ceea ce ar putea fi o problemă dacă încercați să atingeți un debit foarte mare.

Flair

Flair NLP

Flair este un cadru Python mai recent (lansat în 2018), bazat pe cadrul de învățare profundă PyTorch.

Este din ce în ce mai popular, deoarece atinge o acuratețe mai mare în multe limbi în comparație cu spaCy. Sunt propuse mai multe modele preinstruite (vezi mai multe aici).

Cu toate acestea, această îmbunătățire a acurateței se face cu prețul vitezei. Viteza de procesare va fi mult mai mică în comparație cu spaCy.

Modele generative AI (GPT-J, GPT-3...)

În urmă cu câțiva ani, a început să apară un nou tip de modele de inteligență artificială: modelele generative. Aceste modele au fost create inițial pentru generarea de text (scrierea începutului unui text și lăsarea modelului să genereze restul), dar oamenii au realizat rapid că aceste modele sunt foarte bune pentru tot felul de cazuri de utilizare a procesării limbajului natural, inclusiv pentru extragerea entităților.

Cele mai populare modele generative din prezent sunt GPT-3, GPT-J, GPT-NeoX, T5 și Bloom. Toate aceste modele de învățare profundă utilizează arhitectura Transformer, inventată de Google în 2017.

Această nouă generație de modele de inteligență artificială este foarte grea și costisitoare. De obicei, acestea necesită hardware de înaltă performanță bazat pe una sau mai multe GPU. De asemenea, acestea sunt mai lente decât cadrele precum spaCy. Dar, datorită acestor modele, acum este posibil să extragem orice tip de entitate fără a antrena un model dedicat!

Extragerea oricărei entități fără a crea un model dedicat este posibilă datorită învățării în câteva focuri. Această tehnică constă în a arăta rapid modelului ceea ce doriți să faceți, realizând doar câteva exemple în timpul execuției. Aflați mai multe despre învățarea cu câteva focuri de armă aici.

Revenind la exemplul nostru de extragere a titlurilor de locuri de muncă, dacă doriți să extrageți titlurile de locuri de muncă cu un model precum GPT-J, nu va fi nevoie să adnotați niciun fel de date. Astfel, veți economisi săptămâni sau luni de muncă umană. Iar acuratețea va fi, cel mai probabil, mult mai mare decât orice extracție de entități cu spaCy.

Consultați articolul nostru despre cum să efectuați cu ușurință extragerea entităților cu modele GPT.

Concluzie

SpaCy este un cadru excelent de procesare a limbajului natural care este utilizat în producție de multe companii în prezent pentru sarcini de extragere a entităților.

Cu toate acestea, spaCy și alternative precum Stanford CoreNLP sau Flair sunt limitate în ceea ce privește acuratețea și necesită o muncă de adnotare plictisitoare pentru a extrage noi entități. În 2023, mai multe modele alternative bazate pe generarea de text pot fi utilizate pentru extragerea de entități fără nicio adnotare, cum ar fi GPT-J, GPT-NeoX, GPT-3... Aceste noi modele vor ajuta cu adevărat tot mai multe companii să aibă succes în proiectele lor de extragere a entităților.

Dacă doriți să folosiți GPT-J și GPT-NeoX, nu ezitați să încercați pe NLP Cloud API. (încercați-o aici)!

Juliette
Manager de marketing la NLP Cloud