В продължение на няколко години SpaCy е фактически стандарт за всяка компания, която иска да стартира проект за извличане на структури. Какво направи SpaCy толкова популярен? И има ли добри алтернативи на spaCy през 2023 г. за всеки, който се опитва да стартира проект за извличане на същности? Нека да обсъдим тези въпроси в тази статия.

Първата версия на spaCy беше пусната през 2015 г. и бързо се превърна в стандартна рамка за извличане на същности от корпоративен клас (известна също като NER).
Ако имате неструктуриран текст (например от уеб) и искате да извлечете от него структурирани данни, като дати, имена, места и т.н., spaCy е много добро решение.
SpaCy е интересен, защото са налични няколко предварително обучени модела на около 20 езика. (вижте повече тук). Това означава, че не е задължително да обучавате свой собствен модел за извличане на същности. Това също така означава, че ако искате да обучите свой собствен модел, можете да започнете от предварително обучен модел, вместо да започвате от нулата, което може да ви спести много време.
SpaCy се счита за рамка от "производствен клас", тъй като е много бърза, надеждна и разполага с изчерпателна документация.
Ако обаче същностите по подразбиране, поддържани от предварително обучените модели на spaCy, не са достатъчни, ще трябва да работите по "анотиране на данни" (известно също като "етикетиране на данни"), за да обучите свой собствен модел. Този процес отнема изключително много време и много проекти за извличане на ентитети в предприятията се провалят поради това предизвикателство.
Да речем, че искате да извлечете заглавия на длъжности от част от текст (например от автобиография или от уеб страница на компанията). Тъй като предварително обучените модели на spaCy по подразбиране не поддържат такава единица, ще трябва да научите spaCy как да разпознава заглавията на длъжностите. Ще трябва да създадете набор от данни за обучение, който да съдържа няколко хиляди примера за извличане на заглавия на длъжности (а може би дори много повече!). Можете да използвате платен софтуер за анотиране като Prodigy (направен от екипа на spaCy), но това все пак е свързано с много човешки труд. Всъщност е доста често срещано явление компаниите да наемат група изпълнители за няколко месеца, за да осъществят проект за анотиране на данни. Подобна работа е толкова повтаряща се и скучна, че получените набори от данни често съдържат много грешки...

Нека видим кои алтернативни решения можете да опитате през 2023 г.!

Първата версия на Stanford CoreNLP беше пусната през 2013 г. Тя е рамка на Java (докато spaCy е на Python), която ви позволява да извършвате извличане на същности с много добри резултати.
Stanford CoreNLP също предлага предварително обучени модели, но в по-малка степен от spaCy (вижте повече тук).
Точността на тази рамка е подобна на тази на spaCy, но зависи от данните, които анализирате. Например Stanford CoreNLP дава по-добри резултати при правни данни. Също така си струва да се отбележи, че някои същности са адресирани по малко по-различен начин в сравнение със spaCy (такъв е случаят с същността GPE например).
Що се отнася до производителността, Stanford изглежда по-бавен от spaCy, което може да се окаже проблем, ако се опитвате да постигнете много висока производителност.

Flair е по-нова рамка за Python (пусната през 2018 г.), базирана на рамката за дълбоко обучение PyTorch.
Той набира голяма популярност, тъй като постига по-висока точност на много езици в сравнение със spaCy. Предложени са няколко предварително обучени модела (вижте повече тук).
Това подобрение на точността обаче е за сметка на скоростта. Пропускателната способност ще бъде много по-ниска в сравнение със spaCy.
Преди няколко години започнаха да се появяват нов вид модели на ИИ: генеративни модели. Първоначално тези модели бяха създадени за генериране на текст (написване на началото на част от текста и оставяне на модела да генерира останалата част), но хората бързо осъзнаха, че тези модели са много добри във всички видове случаи на обработка на естествен език, включително извличане на същности.
Най-популярните генеративни модели днес са GPT-3, GPT-J, GPT-NeoX, T5 и Bloom. Всички тези модели за дълбоко обучение използват архитектурата Transformer, изобретена от Google през 2017 г.
Това ново поколение модел на изкуствен интелект е много тежък и скъп за работа. Обикновено те изискват хардуер от висок клас, базиран на един или няколко графични процесора. Освен това те са по-бавни от рамки като spaCy. Но благодарение на тези модели вече е възможно да се извлече всякакъв вид същност, без да се обучава специален модел!
Извличането на всяка същност без създаване на специален модел е възможно благодарение на обучението с няколко снимки. Тази техника се състои в това бързо да покажете на модела какво искате да направите, като направите само няколко примера по време на изпълнение. Научете повече за обучението с няколко изстрела тук.
Ако искате да извлечете заглавия на длъжности с модел като GPT-J, няма да е необходимо да анотирате никакви данни. Това ще ви спести седмици или месеци човешка работа. А точността най-вероятно ще бъде много по-висока от всяко извличане на същности със spaCy.
Вижте нашата статия за това как лесно да извършвате извличане на същности с модели на GPT.
SpaCy е чудесна рамка за обработка на естествен език, която днес се използва в производството от много компании за задачи за извличане на същности.
Въпреки това spaCy и алтернативи като Stanford CoreNLP или Flair са ограничени по отношение на точността и изискват досадна работа по анотиране, за да се извлекат нови същности. През 2023 г. за извличане на същности без анотиране могат да се използват няколко алтернативни модела, базирани на генериране на текст, като GPT-J, GPT-NeoX, GPT-3... Тези нови модели наистина ще помогнат на все повече компании да успеят в своите проекти за извличане на същности.
Ако искате да използвате GPT-J и GPT-NeoX, не се колебайте да опитате в API на NLP Cloud. (опитайте тук)!
Juliette
Мениджър маркетинг в NLP Cloud