Laboratorium Inżynierii Lingwistycznej

U nas słowo staje się liczbą

Matematykę i statystykę zaprzęgliśmy do odkrywania wiedzy z tekstów. Z dr. Markiem Kozłowskim, kierownikiem Laboratorium Inżynierii Lingwistycznej OPI PIB, rozmawia Michał Rolecki

dr Marek Kozłowski
kierownik
Laboratorium
Inżynierii
Lingwistycznej

Marek Kozłowski jest doktorem informatyki, kierownikiem Laboratorium Inżynierii Lingwistycznej w Ośrodku Przetwarzania Informacji – Państwowym Instytucie Badawczym w Warszawie, gdzie prowadzi ponad 30-osobowy zespół badaczy i programistów zajmujący się tworzeniem oprogramowania wzbogaconego inteligentnymi metodami przetwarzania danych

(m.in. JSA, chatboty, semantyczne wyszukiwarki). Pasjonuje go przetwarzanie języka naturalnego, eksploracja danych i uczenie maszynowe. Napisał ponad 40 publikacji naukowych z zakresu semantycznego przetwarzania tekstów i uczenia maszynowego.

Michał Rolecki: Laikowi inżynieria kojarzy się głównie z budową dróg i mostów. Co to jest inżynieria lingwistyczna?

Marek Kozłowski: Inżynieria lingwistyczna to dziedzina, która zajmuje się badaniami nad automatyzacją przetwarzania danych w języku naturalnym, czyli w skrócie – danych tekstowych. Przyznam, ta nazwa może trochę dezorientować osoby nieznające tej dziedziny. Jest w pewnym sensie pokłosiem próby zwięzłego przetłumaczenia nazw angielskich, bo to Anglosasi jako pierwsi stworzyli tę dziedzinę i zaczęli ją rozwijać. W języku angielskim używają nazw natural language processing (przetwarzanie języka naturalnego) lub computational linguistics (lingwistyka obliczeniowa). Chcieliśmy wybrać polską nazwę, która będzie krótka i mocno wyrażała podejście programistyczne czy inżynierskie, stąd „inżynieria lingwistyczna”. W ten sposób odcinamy się od pewnego mocno lingwistycznego nurtu w tej dziedzinie, jak formalna analiza języka (dogłębne badanie morfologiczno-składniowe wypowiedzi), a skupiamy cały wysiłek na wykorzystaniu matematyki – w skrócie i upraszczając: statystyki – do odkrywania wiedzy z tekstów.

Czym się konkretnie zajmujecie?

Nasze główne zadania to wyszukiwanie w tekstowych repozytoriach, grupowanie tekstów w celu zbudowania pewnej spójnej reprezentacji tematycznej, klasyfikacja tekstów do zadanych kategorii (np. klasyfikacja maila jako spam) czy ekstrakcja informacji z tekstów (np. wykrywanie i identyfikowanie nazw własnych, wykrywanie określonych faktów i argumentów), a także tłumaczenie maszynowe i streszczanie tekstów. Należy pamiętać, że w szeroko rozumianej lingwistyce komputerowej występują dwa główne nurty badań: formalny opis języka i praw nim rządzących oraz metody statystyczne pomijające problem rozumienia tekstu na rzecz analizy częstości występowania wybranych zależności. My poszliśmy drugą drogą, stąd nacisk na inżynierię w nazwie. Reasumując, działamy w interdyscyplinarnej dziedzinie zajmującej się statystycznym lub opartym na regułach modelowaniem języka naturalnego z perspektywy obliczeniowej, a także badaniem odpowiednich podejść obliczeniowych do szerokiej klasy pozyskiwania wiedzy i informacji z tekstów.

A co robicie teraz?

Laboratorium stało się obecnie tworem mocno interdyscyplinarnym. Mamy pion badawczy, który zajmuje się kwestiami ściśle naukowymi. To inteligentne metody detekcji plagiatów w pracach dyplomowych, chatboty, predykcja sondaży wyborczych w oparciu o tekstowe wypowiedzi na forach publicznych, metody detekcji nadużyć w sieciach na podstawie logów z ruchu czy automatyczne metody oceny (na przykład obuwia na podstawie samych zdjęć). Mamy też piony operacyjne, czyli zajmujące się rozwojem i utrzymaniem. To zespoły programistyczne odpowiedzialne za rozwój i utrzymanie działających już systemów, między innymi JSA (Jednolity System Antyplagiatowy), PBN (Polska Bibliografia Naukowa), SEDN (System Ewaluacji Dorobku Naukowego) i ELA (ogólnopolski system monitorowania Ekonomicznych Losów Absolwentów). Jest u nas zespół testerów, zespół analityków, jest też zespół administratorów wsparcia aplikacji i usług laboratorium (devOps).

Pracują u was sami programiści?

Programiści to oczywiście znacząca większość naszych pracowników, ale są też u nas testerzy, analitycy czy admini. Najważniejsze, że poza stricte operacyjnymi działaniami mamy czas na prace badawcze w takich dziedzinach, jak przetwarzanie tekstu czy, jak ostatnio, obrazu.

Co trzeba zrobić, żeby u was pracować?

Przejść rekrutację. Mamy szereg otwartych pozycji, jak np. programista back-end (głównie Java-oriented Stack), programista front-end (głównie z użyciem Angular czy Vue), administrator w zespole devOps. Pracujemy z szerokim spektrum technologii, głównie z użyciem języków Java, JavaScript, Python. Większość aktualnie rozwijanych systemów ma osobne warstwy front i back-end, czyli tworzymy rozdzielne aplikacje front-end i aplikacje back-end, które ze sobą się komunikują, np. głównie z użyciem REST API.

Co można zrobić, analizując język?

Zaskakująco dużo. Zacznijmy od tego, że można wykrywać plagiaty. Opracowany przez naszych specjalistów Jednolity System Antyplagiatowy działa od początku ubiegłego roku i pozwala określić, w jakim stopniu praca jest dziełem podpisującego się pod nią człowieka. Nasz algorytm jest niewrażliwy na zmiany szyku zdania, kolejności wyrazów, wielkości liter czy interpunkcji. Oczyszcza sobie analizowany tekst, buduje z niego jednoznaczne zbiory słów, pojedynczych tokenów, i na nich pracuje. O szczegółach jego działania rozmawialiśmy z portalem sztucznainteligencja.org.pl, którego wydawcą jest OPI PIB. Za pomocą maszynowych metod analizy języka można też profilować ludzi behawioralnie, czyli traktować język jak swoisty odcisk palca (co z kolei tłumaczyłem w tekście „Co cię zdradzi w sieci”). Przez całe swoje życie każdy z nas wykształca charakterystyczny tylko dla siebie styl pisania. Ludziom to, czy dwa dane teksty napisała ta sama osoba, podpowiada intuicja. Natomiast maszyna, która ma pewne dane wejściowe, może porównać pewne cechy tekstu w czasie. W przestrzeni takich cech tworzy sobie pewne wektory, czyli uporządkowane zbiory cech. Opisują one profil danej osoby, a kolejne teksty są z tym profilem porównywane. Nazywamy to stylometrycznym profilowaniem behawioralnym i na tej podstawie można stworzyć profil konkretnej osoby. A konkretnie tego, w jaki sposób używa ona języka pisanego. Oczywiście, jeśli mamy wystarczająco wiele tekstów, które ktoś napisał. Z kolei z Antonim Sobkowiczem w naszym laboratorium od kilku lat pracowaliśmy nad metodami predykcyjnymi, które przekładają emocjonalny język używany w politycznej debacie internetowej na ostateczne preferencje polityczne. Nasze algorytmy były bliższe wynikowi wyborów parlamentarnych niż ostatni przedwyborczy sondaż opinii publicznej.

Jak to możliwe?

W dużej mierze dzięki bardzo dużej ilości danych, które algorytmy mają do dyspozycji. Sondaże przedwyborcze prowadzone są na próbach rzędu tysiąca ankietowanych, a w dniu wyborów na dziesiątkach tysięcy. Metody, które wykorzystaliśmy, analizują kilka milionów komentarzy pod artykułami politycznymi na portalach internetowych. Te z kolei wyrażają poglądy kilkuset tysięcy do nawet miliona użytkowników. Żadne badanie PAPI/CAWI/CATI, czyli prowadzone tradycyjnymi metodami, nie dociera do takiej liczby osób. Dziś spora część komentarzy na tematy polityczne odbywa się na publicznie dostępnych forach w internecie. Korzystaliśmy z komentarzy dostępnych w popularnych informacyjnych serwisach internetowych, takich z dużą liczbą politycznych artykułów. Na początku potrzebny był zbiór wyrażeń o silnym nacechowaniu emocjonalnym i popierających jedną z dwóch opcji politycznych. By dokładnie przypisać komentarze do konkretnych obozów politycznych, wykorzystaliśmy uczenie maszynowe. Na koniec pozostało już tylko obliczyć, ile osób z ogółu komentujących prezentuje poglądy popierające daną opcję polityczną – dokładnie tak, jak dzieje się to w przypadku sondaży. Liczebność próby idzie tu w miliony, co rekompensuje jej ewentualną niższą jakość.

Długo nad tym pracowaliście?

Taki sposób badania testowaliśmy od kilku lat. W przedwyborczych miesiącach (od lipca 2019) regularnie co dziesięć dni. Wyniki przewidywań swoich algorytmów porównywaliśmy z wynikami badań opinii publicznych przeprowadzanych przez różne pracownie tradycyjnymi metodami. Jedne i drugie niewiele od siebie odbiegały. Wynik ubiegłorocznych wyborów algorytm przewidział zaś bardzo trafnie, lepiej niż sondaże. Nie jest to temat zupełnie nowy. Analizy politycznych nastrojów na podstawie wykrywania emocji w publicznie dostępnych postach przeprowadza się na świecie od wielu lat. Ale Ośrodek Przetwarzania Informacji jest w moim przekonaniu jedyną polską placówką badawczą, która prowadzi regularne badania naukowe nad analizą preferencji politycznych Polaków na szeroko rozumianych portalach internetowych za pomocą metod sztucznej inteligencji.

Czy maszyny będą kiedyś mówić i pisać tak, że nie odróżnimy ich od ludzi?

Już tak jest. Podobno część chatbotów jest blisko zdania testu Turinga (zaproponowanego do odróżnienia maszyny od człowieka), a niektórzy twierdzą, że go zdały, tyle że w pewnych ograniczonych warunkach. Sądzę, że za jakieś pięć lat większość ludzi nie będzie w stanie odróżnić, czy rozmawia z człowiekiem, czy chatbotem, jeśli będą rozmawiać z nimi na określone tematy, takie jak rezerwacja towarów, sprawy podatkowe lub zakupy.

Działacie na sporą skalę.

Tak, prowadzimy prace badawcze w różnych obszarach. Analiza języka pozwala tworzyć dziedzinowe wyszukiwarki kontekstowe (Word Sense Induction Based Search Engines), statystyczne tłumaczenie maszynowe ograniczone do konkretnej dziedziny (Statistical Machine Translation), klasyfikować dokumenty w ramach konkretnej dziedziny czy odkrywać argumenty w tekście prawniczym. Pozwala też na analizę sentymentu (Sentiment Analysis), czyli ukrytych w tekście emocji. Wreszcie na podstawie narzędzi do statystycznej analizy maszynowej języka powstają systemy rekomendacji, od muzyki po kierunki studiów i uczelnie, czy narzędzie do streszczania tekstów. Te wszystkie obszary to dziedzina naszych badań.