SpaCy od kilku lat jest de facto standardem dla każdej firmy chcącej uruchomić projekt wydobycia podmiotu. Co sprawiło, że SpaCy jest tak popularne? I czy istnieją dobre alternatywy spaCy w 2023 roku dla każdego, kto próbuje rozpocząć projekt ekstrakcji podmiotu? Omówmy te kwestie w tym artykule.

Pierwsza wersja spaCy została wydana w 2015 roku i szybko stała się standardowym frameworkiem do ekstrakcji encji klasy korporacyjnej (znanej również jako NER).
Jeśli masz kawałek nieustrukturyzowanego tekstu (pochodzącego na przykład z sieci) i chcesz wyodrębnić z niego dane strukturalne, takie jak daty, nazwiska, miejsca itp. spaCy jest bardzo dobrym rozwiązaniem.
SpaCy jest interesujący, ponieważ kilka wstępnie wytrenowanych modeli jest dostępnych w około 20 językach. (zobacz więcej tutaj). Oznacza to, że nie musisz koniecznie trenować własnego modelu do ekstrakcji encji. Oznacza to również, że jeśli chcesz trenować swój własny model, możesz zacząć od wstępnie wytrenowanego modelu, zamiast zaczynać od zera, co może zaoszczędzić dużo czasu.
SpaCy jest uważany za framework "klasy produkcyjnej", ponieważ jest bardzo szybki, niezawodny i dostarczany z obszerną dokumentacją.
Jeśli jednak domyślne encje obsługiwane przez wstępnie wytrenowane modele spaCy nie są wystarczające, trzeba będzie popracować nad "adnotacją danych" (znaną również jako "etykietowanie danych"), aby wytrenować własny model. Proces ten jest niezwykle czasochłonny i wiele projektów ekstrakcji encji przedsiębiorstw kończy się niepowodzeniem z powodu tego wyzwania.
Powiedzmy, że chcesz wyodrębnić nazwy stanowisk z tekstu (na przykład z CV lub z firmowej strony internetowej). Ponieważ wstępnie wytrenowane modele spaCy nie obsługują domyślnie tego typu encji, będziesz musiał nauczyć spaCy jak rozpoznawać tytuły stanowisk. Będziesz musiał stworzyć zbiór danych treningowych, który będzie zawierał kilka tysięcy przykładów ekstrakcji nazw stanowisk (a może nawet o wiele więcej!). Możesz użyć płatnego oprogramowania do adnotacji, takiego jak Prodigy (stworzonego przez zespół spaCy), ale nadal wymaga to dużej ilości pracy ludzkiej. W rzeczywistości dość często można zobaczyć, jak firmy zatrudniają grupę wykonawców na kilka miesięcy w celu przeprowadzenia projektu anotacji danych. Taka praca jest na tyle powtarzalna i nudna, że powstałe zbiory danych często zawierają mnóstwo błędów...

Zobaczmy, jakich alternatywnych rozwiązań można spróbować w 2023 roku!

Pierwsza wersja Stanford CoreNLP została wydana w 2013 roku. Jest to framework Java (podczas gdy spaCy to Python), który pozwala na przeprowadzenie ekstrakcji encji z bardzo dobrymi wynikami.
Stanford CoreNLP również proponuje wstępnie wytrenowane modele, ale mniej niż SpaCy (zobacz więcej tutaj).
Dokładność tego frameworka jest podobna do spaCy, ale zależy to od danych, które analizujesz. Na przykład Stanford CoreNLP daje lepsze wyniki na danych prawnych. Warto też zauważyć, że niektóre podmioty są adresowane nieco inaczej niż w spaCy (tak jest np. w przypadku podmiotu GPE).
Jeśli chodzi o wydajność, Stanford wyraźnie wydaje się wolniejszy niż spaCy, co może być problemem, jeśli próbujesz osiągnąć bardzo wysoką przepustowość.

Flair to nowszy framework Pythona (wydany w 2018 roku) oparty na frameworku głębokiego uczenia PyTorch.
Zyskuje on dużą popularność, ponieważ osiąga wyższą dokładność w wielu językach w porównaniu do SpaCy. Zaproponowano kilka wstępnie wytrenowanych modeli (zobacz więcej tutaj).
Jednak ta poprawa dokładności odbywa się kosztem prędkości. Twoja przepustowość będzie znacznie niższa w porównaniu do spaCy.
Kilka lat temu zaczął pojawiać się nowy rodzaj modeli AI: modele generatywne. Modele te były początkowo tworzone do generowania tekstu (pisanie początku fragmentu tekstu i pozwalanie modelowi na wygenerowanie reszty), ale ludzie szybko zdali sobie sprawę, że modele te są bardzo dobre we wszystkich rodzajach przypadków użycia przetwarzania języka naturalnego, w tym w ekstrakcji encji.
Najpopularniejsze obecnie modele generatywne to GPT-3, GPT-J, GPT-NeoX, T5 i Bloom. Wszystkie te modele głębokiego uczenia wykorzystują architekturę Transformer, wynalezioną przez Google w 2017 roku.
Ta nowa generacja modeli AI jest bardzo ciężka i droga do uruchomienia. Zazwyczaj wymagają one wysokiej klasy sprzętu opartego na jednym lub kilku procesorach graficznych. Są również wolniejsze niż frameworki takie jak SpaCy. Jednak dzięki tym modelom możliwe jest teraz wyodrębnienie dowolnego rodzaju bytów bez konieczności trenowania dedykowanego modelu!
Wyodrębnianie dowolnych bytów bez tworzenia dedykowanego modelu jest możliwe dzięki technice few-shot learning. Technika ta polega na szybkim pokazaniu modelowi, co chcesz zrobić, wykonując tylko kilka przykładów w czasie pracy. Dowiedz się więcej o nauce few-shot tutaj.
Wracając do naszego przykładu ekstrakcji tytułów stanowisk pracy, jeśli chcesz wyodrębnić tytuły stanowisk pracy za pomocą modelu takiego jak GPT-J, nie będziesz musiał adnotować żadnych danych. Zaoszczędzi Ci to wtedy tygodni lub miesięcy pracy człowieka. A dokładność będzie najprawdopodobniej znacznie wyższa niż jakakolwiek ekstrakcja encji za pomocą spaCy.
Zobacz nasz artykuł o tym, jak łatwo przeprowadzić ekstrakcję encji za pomocą modeli GPT.
SpaCy to świetny framework do przetwarzania języka naturalnego, który jest dziś używany produkcyjnie przez wiele firm do zadań związanych z ekstrakcją encji.
Jednak spaCy i alternatywy takie jak Stanford CoreNLP lub Flair są ograniczone pod względem dokładności i wymagają żmudnej pracy z adnotacją w celu wyodrębnienia nowych encji. W 2023 roku kilka alternatywnych modeli opartych na generowaniu tekstu może być wykorzystanych do ekstrakcji encji bez żadnej adnotacji, jak GPT-J, GPT-NeoX, GPT-3.... Te nowe modele naprawdę pomogą coraz większej liczbie firm odnieść sukces w ich projektach ekstrakcji encji.
Jeśli chcesz używać GPT-J i GPT-NeoX, nie wahaj się spróbować na API NLP Cloud (spróbuj tutaj)!
Juliette
Kierownik ds. marketingu w NLP Cloud