Jakie narzędzie wybrać do pracy z Named Entity Recognition?

 In Python, Technicznie

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:

  1. GATE
  2. Prodi.gy

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.

Interfejs Prodi.gy

Interfejs Prodi.gy

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.

Prodi.gy - Tryb manual

Prodi.gy – Tryb manual

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.

Prodi.gy - Tryb make-gold

Prodi.gy – Tryb make-gold

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.

Prodi.gy - Tryb teach

Prodi.gy – Tryb teach

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

Recent Posts