Jakie narzędzie wybrać do pracy z Named Entity Recognition?
Jednym z istotnych zadań podczas przetwarzania języka może okazać się Named Entity Recognition. Dzięki tej technice można uzyskać więcej informacji dotyczących treści analizowanych tekstów. W tym wpisie zaproponuję narzędzia, które będą pomocne przy pracy nad NER i omówię jedno z nich.
NER, czyli Named Entity Recognition
Mówiąc w skrócie, jest to technika, dzięki której jesteśmy w stanie automatycznie określić znaczenie poszczególnych fragmentów tekstu. Po wytrenowaniu nasz model będzie sam określał, czy podana treść oznacza osobę, rzecz, datę, miejsce itd. Najpierw jednak (jak często ma to miejsce w uczeniu maszynowym) musimy zebrać odpowiednią porcję danych.
Narzędzia do pracy nad NER
Przeczesując Sieć w poszukiwaniu odpowiedniego rozwiązania, natknąłem się na wiele aplikacji. Niestety większość z nich posiadała duży defekt — nie działały. Ostatecznie przetestowałem dwa rozwiązania, które wydawały się sensowne:
Pierwsze z nich powstało już dawno temu, ale za to nadal jest darmowe, umożliwia też korzystanie z interfejsu graficznego. Jest za to bardzo nieintuicyjne w obsłudze, a znalezienie informacji, jak coś przy jego pomocy wykonać, zajmie Ci trochę czasu. Dlaczego? Ano dlatego, że w internecie ciężko znaleźć interesujące informacje, a dokumentacja do projektu ma prawie 700 stron; za to zaczyna się świetnym cytatem:
Software documentation is like sex: when it is good, it is very, very good; and
when it is bad, it is better than nothing. (Anonymous)
Drugi produkt jest opcją płatną, ale na pewno nie będziesz żałować wydanych pieniędzy. W mojej opinii obecnie nie znajdziesz lepszego rozwiązania. Głównymi atutami Prodi.gy są:
- intuicyjny interfejs,
- rozbudowana, ale czytelna dokumentacja,
- znakomite wsparcie techniczne,
- różne tryby wprowadzania danych,
- wbudowane narzędzia do trenowania modeli sztucznej inteligencji.
Każdy z tych punktów omówię w kolejnych sekcjach wpisu.
Intuicyjny interfejs
Podczas pracy z GATE sporo problemów sprawiało mi zrozumienie, jak zacząć wprowadzać dane i jak zachowuje się interfejs użytkownika podczas pracy. Interfejs graficzny tego narzędzia okazał się mocno skomplikowany, zawierał dużo niepotrzebnych opcji, a bez zapoznania się z dokumentacją nie jest się w stanie rozpocząć pracy.
Odmienne odczucia mam z kolei po pracy na Prodi.gy, bo w tym nardziędziu użytkownik widzi tylko to, czego aktualnie potrzebuje. Jest to istotne, gdy wprowadzaniem danych zajmują się osoby nietechniczne — a tak jest w naszym przypadku. Ponadto Prodi.gy działa w trybie aplikacji internetowej, dzięki czemu wiele osób może pracować równolegle i nie trzeba martwić się późniejszym scalaniem wytworzonych zbiorów danych.
Czytelna dokumentacja
Prodi.gy otrzymaliśmy wraz z dokumentacją w formacie HTML. Dokument jest podzielony na sekcje opisujące konkretne moduły oprogramowania. Wszystkie informacje, jakich potrzebowałem, udało mi się znaleźć w dokumentacji, a jeśli nie, to zawsze miałem do dyspozycji kolejną opcję, czyli…
Znakomite wsparcie techniczne
Dawno nie spotkałem się z tak dobrą obsługą. Już podczas kontaktu przed zakupem otrzymywałem konkretne odpowiedzi i wskazówki, więc z całą pewnością można stwierdzić, że zespół Prodi.gy jest bardzo pomocny. To właśnie w dużej mierze dzięki ich wsparciu udało się mi zorganizować darmową wersję Prodi.gy do sprawdzenia tak, by mieć pewność, że narzędzie to spełni nasze oczekiwania.
Jeżeli korzystasz z Prodi.gy i masz problem, którego rozwiązania nie możesz znaleźć w dokumentacji, to najprawdopodobniej będzie ono w dziale wsparcia technicznego. Gdy już tam będziesz, to zwróć uwagę na to, że żaden temat nie jest pominięty przez twórców rozwiązania — a są to tylko dwie osoby 🙂
Różne tryby wprowadzania danych
Aplikacja oferuje kilka trybów zasilania naszej bazy danymi, a każdy z nich działa w trochę inny sposób. Przedstawię te, z których sam korzystałem.
Manual
Jest to tryb, od którego należy zacząć. Pozwala na etykietowanie czystego tekstu. Pozwala on więc na stworzenie wstępnego zbioru danych.
Make-Gold
Tryb, którego możemy użyć, gdy nasz model już coś umie. Zasada jego działania jest podobna do trybu manual, z tym że pojawiają się tu już automatycznie zaznaczone fragmenty tekstu wraz z etykietami. Człowiek podczas pracy z tym trybem powinien poprawić widoczne dane oraz potwierdzić poprawność predykcji.
Teach
Tryb, który od człowieka potrzebuje tylko potwierdzenia, czy predykcja jest prawidłowa, wykorzystuje zatem tylko przyciski: Akceptuj, Odrzuć, Ignoruj. Tekst jest natomiast zaznaczany przy użyciu modelu sztucznej inteligencji. Podczas wprowadzania danych w tym trybie na bieżąco widzimy wynik, jaki osiąga sztuczna inteligencja.
Narzędzia do pracy z modelami sztucznej inteligencji
Twórcy Prodi.gy są również autorami biblioteki spaCy służącej do zaawansowanej pracy z NLP. Dlaczego o tym mówię? Ano dlatego, że w Prodi.gy możemy w prosty sposób skorzystać właśnie z modelu spaCy. Aplikacja zawiera ponadto implementację narzędzi najczęściej używanych podczas prac z modelami sztucznej inteligencji. Dzięki temu możliwe jest, by w prosty sposób:
- tworzyć nowe modele lub używać istniejących,
- trenować modele,
- rysować wykres krzywej uczenia.
Nie tylko aplikacja
Do tej pory, pisząc o Prodi.gy, posługiwałem się określeniami takimi jak: aplikacja, oprogramowanie, system. To rozwiązanie można jednak zaliczyć przede wszystkim do grupy frameworków, dlatego że pozwala nie tylko na wykorzystywanie już zaimplementowanych funkcjonalności, lecz także na dokładanie własnych modułów. W tym celu potrzebna będzie znajomość języka programowania Python.
Reasumując
Jeżeli szukasz rozwiązania, które pozwoli Ci na sprawną pracę z NER, to jedynym słusznym wyborem będzie Prodi.gy. Jest to oprogramowanie, które działa szybko, posiada wbudowane najpotrzebniejsze narzędzia, a jeżeli potrzebujesz czegoś dodatkowego, to bez problemu możesz sam to stworzyć, przy użyciu Pythona. Jeżeli wciąż nie masz pewności, czy jest to rozwiązanie odpowiednie, to być może odsłuchanie rozmowy z współzałożycielem Prodi.gy rozwieje Twoje wątpliwości.
Photo by rawpixel.com from Pexels