Słownik języka polskiego, który pomoże komputerom rozeznać się w znaczeniach słów, przygotowali badacze z Łodzi. Dokument wyznacza odległości między słowami, a przez to – określa relacje między nimi. Dzięki temu programy będą np. sprawniej sugerować poprawki w tekstach.
Na Politechnice Łódzkiej powstał nowy rodzaj słownika, przeznaczony dla badaczy języka oraz naukowców pracujących nad sztuczną inteligencją. Słownik ma szansę wznieść na wyższy poziom możliwość edycji testów – być może dzięki niemu łatwiej będzie pisać teksty na smartfonach, a w edytorach tekstowych wykrywane będą pomyłki, których dotąd programy te nie pokazywały. Słownik jest już udostępniony za darmo.
Inteligentny słownik języka polskiego oparty o wektorowe reprezentacje słów opracowali doktorant Marek Rogalski oraz prof. Piotr Szczepanek z Instytutu Informatyki Politechniki Łódzkiej. Ich rozwiązanie zostało docenione na wystawie wynalazków Geneva Innovations – otrzymało złoty medal z wyróżnieniem.
„Dla komputera każde słowo to tylko losowy zbiór liter, który nic nie znaczy” – zwraca uwagę w rozmowie z PAP Marek Rogalski. Dlatego naukowcy zastanawiali się, jak sprawić, żeby komputerom lepiej się pracowało na tekstach tworzonych w języku naturalnym.
Wcześniej powstawały już słowniki z założenia przyjazne maszynom, w których np. poszczególne hasła były połączone hiperlinkami z synonimami (np.: helikopter – śmigłowiec), antonimami (np.: młody – stary) czy hiponimami (jamnik jest hiponimem słowa pies). Były to jednak ciągle dokumenty przypominające budową słowniki tradycyjne.
Natomiast słownik z Politechniki Łódzkiej skonstruowany jest w zupełnie inny sposób – tam związki między słowami wyznaczać można matematycznie. A przecież operacje na liczbach to coś, w czym komputery czują się jak ryba w wodzie.
Sto wymiarów każdego słowa. „Zbudowaliśmy sieć neuronową, która czytała polską Wikipedię. Sieć patrzyła na słowa – które dla niej nic nie znaczą – i w poszczególnych zdaniach próbowała odgadnąć kolejne wyrazy. Dzięki temu system sam uczył się, jak poprzednie słowa wpływają na kolejne, rozpoznawał, które się ze sobą łączą i które wyrazy są ze sobą powiązane tematycznie i znaczeniowo” – mówi Marek Rogalski.
Efektem pracy tej sieci jest słownik, w którym każde słowo reprezentowane jest punktem opisanym setką liczb. Każde słowo w języku staje się więc dla komputera punktem w stuwymiarowej przestrzeni. W ten sposób między różnymi punktami – czyli słowami – można wyliczać odległości. „Cechą słownika jest to, że słowa, która znajdują się bliskosiebie, znaczą coś podobnego, np. są synonimami” – opowiada Rogalski.
Jak opowiada naukowiec, różne obszary tej przestrzeni odpowiadają różnym klasom słów. Jest więc przestrzeń związana z rzeczownikami, nazwami własnymi, czy czasownikami. Poza tym różne podobszary tych przestrzeni zawierają coraz węższe kategorie słów – na przykład w okolicy słowa herbata, możemy znaleźć słowa takie jak kawa, cytryna czy mleko.
Doktorant zdradza jeszcze inną ciekawą właściwość słownika. „Jeśli np. wyprowadzimy ze słowa: Polska odcinek do słowa: Warszawa, a następnie przeniesiemy ten odcinek i wyprowadzimy go ze słowa: Francja, to koniec tego odcinka wypadnie gdzieś niedaleko punktu, w którym leży słowo: Paryż – podaje przykład badacz. Dzięki temu można wyznaczać zależności między słowami, rozpoznawać między nimi analogie i przenosić te analogie na inne słowa.
Pomysł na słownik opracowali kilka lat temu naukowcy zagraniczni. Problemem było jednak dostosowanie algorytmów do języka polskiego. „Było to dość kłopotliwe – wymagało rozwiązania problemów technicznych i zabrało sporo czasu” – zaznacza Rogalski. Przyznaje, że takie słowniki powstają już dla różnych języków, ale specjaliści niechętnie się nimi dzielą. Tymczasem rozwiązanie z Politechniki Łódzkiej – jak deklaruje badacz z tej uczelni – w ciągu kilku miesięcy zostanie udostępnione za darmo. Będą z niego mogli korzystać wszyscy zainteresowani.
Aplikacja w aplikacjach. Jak wyjaśnia naukowiec z Politechniki Łódzkiej, słownik ma postać ważącego ok. 1 GB pliku tekstowego. Można go wykorzystać np. w przygotowaniu aplikacji mobilnych lub edytorów tekstów. Słownik mógłby sprytnie podpowiadać użytkownikowi smartfona następne słowa wpisywanego tekstu. Poza tym, jak dodaje Rogalski – słownik usprawniłby pracę programów do edycji tekstów. Możliwości wykrywania błędów językowych przez te aplikacje są dziś ograniczone. Wprawdzie w tekstach zaznaczane są literówki, ale jeśli przez pomyłkę napiszemy słowo, które już istnieje – program tego nie wychwyci. Jeśli np. chcemy zwrócić uwagę „na różnice między pokoleniami”, a omsknie nam się palec na klawiaturze, i wpiszą się „narożnice miedzy pokoleniami”, tradycyjny edytor tekstowy nie zauważy pomyłek. Tymczasem komputerowy słownik z Politechniki Łódzkiej mógłby powiadomić użytkownika, że w tekście coś się nie klei.
Rogalski przyznaje, że Wikipedia (z której na razie korzystano przy konstruowaniu słownika) to dość specyficzny zbiór tekstów. Język Wikipedii nie jest przecież językiem, jakim posługujemy się na co dzień w rozmowach. Stąd też na razie w słowniku są pewne braki. „Określeń potocznych się tu raczej nie znajdzie. Ale za to nasz słownik świetnie nadaje się do rozpoznawania nazwisk, krajów, miast, gatunków roślin” – wymienia badacz.
Jego zdaniem, z nowego rozwiązania mogliby korzystać wielbiciele krzyżówek. „Możemy podać kilka słów, w okolicy których szukamy odpowiedzi, i nasz słownik podałby jakieś możliwe hasła” – tłumaczy.
Twórcy słownika zastanawiają się jednak nad jego udoskonaleniem dzięki pracy na bazie Narodowego Korpusu Języka Polskiego, który zawiera teksty bardziej różnorodne i reprezentatywne dla języka polskiego. To sprawiłoby, że słownik lepiej spisywałby się w codziennych sytuacjach.
PAP – Nauka w Polsce, Ludwika Tomala
Źródło: Serwis Nauka w Polsce – www.naukawpolsce.pap.pl
Ilustracja własna redakcji IMPRESJee.pl:
Grafileksonia V, Stefania Pruszyńska