NLP
Przetwarzanie języka naturalnego, to dziedzina informatyki, która ma bardzo długą tradycję. Zaledwie kilka lat po stworzeniu pierwszego komputera, zaczęto zastanawiać się nad możliwością wykorzystania komputera do takich zadań jak automatyczne tłumaczenie tekstów, automatyczne tworzenie streszczeń czy wydobywanie informacji, z tekstów napisanych w językach naturalnych.
Tym niemniej, pomimo upływu wielu lat, nie udało się dotychczas wynaleźć ogólnych algorytmów, które pozwoliłyby na realizację mniej lub bardziej wyszukanych zadań związanych z NLP. Co prawda, również na rynku polskim istnieją np. programy do komputerowego tłumaczenia tekstów, ale ich jakość jest ciągle bardzo mizerna. Wynika to z prostego, choć na pierwszy rzut oka, niedostrzegalnego faktu dotyczącego języka, którym posługujemy się na co dzień. Otóż większość słów jest polisemiczna, tzn. posiada wiele, choć spokrewnionych, to jednak odrębnych znaczeń, co nie stanowi problemu dla przeciętnego użytkownika języka, ale jest prawdziwą zmorą konstruktorów algorytmów przetwarzających języki naturalne.
Zagadnienie wyboru właściwego znaczenia słowa, spośród zbioru dopuszczalnych znaczeń, określane jest w skrócie WSD. Jeśli chcemy np. uzyskać tłumaczenie wysokiej jakości, z języka polskiego na angielski, to nie wystarczy nam dobry słownik, zawierający setki tysięcy słów i utartych zwrotów. Będzie on mało użyteczny, jeśli nie będziemy mogli określić, w jakim znaczeniu występuję dane słowo w tłumaczonej frazie.
Najbardziej oklepany przykład to: Wsadziłem klucz do zamka. i Na wzgórzu stał wspaniały zamek. Żeby nie było wątpliwości – w tym przykładzie mamy do czynienia z homonimią, a nie polisemią (choć niektórzy lingwiści, jak np. John Lyons, utrzymują, że różnica pomiędzy tymi zjawiskami jest wyłącznie ilościowa, żeby nie powiedzieć subiektywna). Wracając do sedna – słowo zamek w obu przykładach posiada odmienne znaczenie. W pierwszym wypadku odnosi się ono do urządzenia, w które wyposażone są zwykle drzwi wejściowe, a którego przeznaczeniem, jest chronienie właściciela mieszkania przed niepowołanym dostępem. W drugim przypadku słowo to odnosi się do budowli, która w zamierzchłych czasach wykorzystywana była jako siedziba monarchów i co bardziej prominentnych przedstawicieli społeczeństwa.
Słowo zamek tłumaczone jest na język angielski jako lock albo castle, w zależności od znaczenia w jakim występuje (dopuszczalne są jeszcze inne tłumaczenia, ale pominiemy je dla jasności wywodu). Oczywiście lock to urządzenie przeciwwłamaniowe, a castle to budowla. Jeśli jednak nie wiemy, że w zdaniu Wsadziłem klucz do zamka, mamy do czynienia z urządzeniem, to nie mamy sensownej podstawy, by wybrać lock a nie castle. Można co prawda posługiwać się prostymi heurystykami i np. wybierać znaczenie, które pojawia się najczęściej, ale, pominąwszy fakt, że rozwiązanie takie będzie tylko trochę lepsze od wcześniejszego, musimy również odpowiedzieć sobie na pytanie – skąd wziąć dane, na podstawie których wygenerujemy odpowiednią statystykę. Jeśli w korpusie tekstów, występujących na wejściu naszego algorytmu, będą dominować teksty dotyczące średniowiecza, to całkiem prawdopodobne jest to, że drugie znaczenie będzie występować częściej. Mało tego! Korpus będzie musiał być ręcznie oznaczony przez specjalistę, co jest zajęciem niezwykle żmudnym.
Ponieważ problem ten jest tak ważny dla wielu zagadnień należących do dziedziny NLP, kilka lat temu zaczęto organizować konferencji jemu poświęcone. Jedną z nich jest senseval , której kolejne edycje zmierzają do wypracowania testów i metod pozwalających na porównywanie różnych algorytmów pod kątem ich zdolności do rozwiązywania problemu WSD.