Ładowanie...

W jaki sposób komputer analizuje wyrazy?

Krzysztof Jassem 30 listopada 2020

Czym jest analiza morfologiczna i do czego się przydaje?

Analiza morfologiczna ma na celu określenie, jak zbudowany jest wyraz. Wynikiem takiej analizy może być na przykład stwierdzenie, że wyraz mercedesa składa się z rdzenia mercedes oraz końcówki a, która jest w języku polskim charakterystyczna dla przypadków dopełniacza i biernika rzeczowników rodzaju męskiego. Na podstawie tych informacji można wywnioskować, że wyraz mercedesa jest najpewniej dopełniaczem lub biernikiem rzeczownika o formie podstawowej1 mercedes.

Tego typu rozumowanie bardzo przydatne jest między innymi w przypadku wyszukiwania kontekstowego. Dzięki odszyfrowaniu prawdopodobnego kontekstu skierowanego zapytania (czyli na przykład określeniu kim jest pytający, gdzie się aktualnie znajduje oraz jakiego typu informacji poszukuje) zidentyfikowany zostaje dokument najbliżej odpowiadający potrzebom pytającego – nawet jeśli dokument ten nie zawiera dokładnie tych form wyrazowych, których użyto w pytaniu.

W odpowiedzi na frazę “kupię mercedesa” wyszukiwarka Google wyświetla na przykład snippet2 o treści: “Znajdziesz najpopularniejsze modele samochodów Mercedes, takie jak AMG GT, A-klasa, ... Wszystko kupisz. ... Sprzedam Mercedes . Zauważmy, że w snippecie tym nie występuje sensu stricto żadne ze słów zawartych w zapytaniu. Jeśli chodzi o wyraz mercedesa, snippet zawiera jego formę podstawową mercedes, natomiast w przypadku wyrazu kupię – formę innej osoby liczby pojedynczej (kupisz).

Aby móc poprawnie odmieniać wyrazy (tak jak w powyższym przykładzie), system wyszukiwania kontekstowego wymaga wspomagania słownikiem, w którym zawarte będą wszystkie formy wyrazowe danego języka. W przypadku niektórych zastosowań tak wielki zasób stanowi jednak zbędny balast. Na potrzeby klasyfikacji tekstów pod względem ich tematyki bardzo dobrze sprawdza się na przykład uproszczona wersja analizy morfologicznej zwana stemowaniem (ang. stemming). Polega ona na odcięciu końcówki wyrazu (a niekiedy również jego początku) w celu identyfikacji rdzenia. Przykładowo, wynik stemowania dla wyrazów budowa, budowniczy oraz budowlany będzie taki sam: budow. Stemowanie jest procesem znacznie szybszym niż analiza słownikowa, a dla celów klasyfikacji tematycznej – całkowicie wystarczającym.

Analiza wyrazów ze słownikiem

Lematyzacja

Lematyzacja to proces, który dla każdego wyrazu występującego w dokumencie wskazuje wszystkie formy podstawowe, od której wyraz ten może potencjalnie pochodzić. Na przykład w przypadku wyrazu czci tzw. lematyzator (tj. program dokonujący lematyzacji) zwraca informację, iż wyraz ten może pochodzić albo od czasownika czcić, albo od rzeczownika cześć. Podobnie wyraz mamy rozpoznawany jest jako forma pochodna bądź to od czasownika mieć, bądź też od rzeczownika mama, natomiast w przypadku wyrazu droga wskazane zostaje, iż jest on albo formą podstawową odpowiedniego rzeczownika, albo też formą rodzaju żeńskiego przymiotnika drogi.

Współczesne lematyzatory analizują kontekst, w jakim występuje dany wyraz i w przypadku istnienia kilku form podstawowych zwracają tylko tę, która wynika z kontekstu. A zatem nowoczesny lematyzator dla zdania Moja droga siostra nie czci swojej mamy poda informację, że formą podstawową wyrazu droga w tym konkretnym zdaniu jest przymiotnik drogi, formą podstawową wyrazu czci jest czasownik czcić, a formą podstawową wyrazu mamy jest rzeczownik mama.

POS-tagging

Celem tagowania (ang. POS-tagging od: Part of Speech Tagging) jest jednoznaczne określenie, jaką część mowy reprezentuje dany wyraz w zdaniu, w którym został użyty. W przypadku zdania: Moja droga siostra nie czci swojej mamy POS-tagger powinien stwierdzić, że w analizowanym kontekście słowo droga użyte zostało jako przymiotnik, słowo czci – jako czasownik, natomiast słowo mamy – jako rzeczownik.

Współczesne POS-taggery działają natomiast ze skutecznością na poziomie ok. 95–98%, co oznacza, że w niektórych przypadkach zdarza im się zwrócić nieprawidłowy wynik.

Analiza wyrazów bez użycia słownika

W przypadku braku słownika, w którym system komputerowy mógłby sprawdzić istnienie danego wyrazu, analiza jego budowy, a w szczególności stemowanie, odbywa się w sposób dość prymitywny. Większość opracowanych dotychczas na powyższe potrzeby metod opiera się na odcinaniu kolejnych liter od końca wyrazu począwszy – tak długo jak spełnione pozostają odpowiednio zdefiniowane warunki.

Algorytm Portera

Jedną z najpopularniejszych metod stemowania jest algorytm Portera. Powyższy zrzut ekranowy demonstruje efekty działania tej metody. Jak widać, dla wyrazu isolation algorytm wyznaczył rdzeń isol poprzez odcięcie końcówki ation. Jednak wynikiem stemowania wyrazu ration jest całość tego słowa. Wynika to z faktu, że potencjalny rdzeń pozostały po odcięciu końcówki ation, czyli pojedyncza litera r, jest zbyt krótki według założeń przyjętych przez algorytm, by możliwe było zastosowanie tego typu odcięcia. Podobna sytuacja ma miejsce w przypadku pary wyrazów: conditional i zonal. Końcówka ness została z kolei odcięta od wyrazu madness. W wyrazie hopefulness algorytm wykonuje odcięcie dwóch końcówek: rzeczownikowej ness oraz przymiotnikowej ful, natomiast wymyślony przez użytkownika rozwiązania wyraz aness pozostaje nienaruszony przez algorytm z dokładnie tego samego powodu co wyraz ration.

Reguły algorytmu Portera

Algorytm opiera się na ręcznie opracowanych regułach. Każda z nich składa się z dwóch części: pierwsza z części mówi, jakie warunki musi spełniać potencjalny rdzeń, aby można było zastosować operację odcięcia zdefiniowaną w drugiej części.

Przykładowa reguła algorytmu Portera ma następującą postać:

(m>0) ational -> ate

Pierwsza część powyższej reguły (m>0) narzuca ograniczenie na rozmiar rdzenia po odcięciu końcówki – rozmiar ten (który w pewnym przybliżeniu jest równoważny liczbie sylab) musi być większy niż zero. Druga część reguły (ational -> ate) wskazuje, jak powinna zostać zastąpiona końcówka.

Zgodnie z powyższą regułą wyraz relational zastąpiony zostanie wyrazem relate, jednakże wyraz rational pozostanie bez zmian, gdyż rdzeń r nie spełnia zdefiniowanego warunku rozmiaru.

Czy komputer może być kreatywny?

Jedną z przeszkód dla skutecznej automatycznej analizy morfologicznej z użyciem słownika stanowi ludzka kreatywność leksykalna. Praktycznie co dzień powstają w każdym języku nowe słowa. Aktualizowany na bieżąco Ciekawe zestawienie i ranking polskich neologizmów z ostatnich 10 lat można znaleźćna stronie: https://polszczyzna.pl/neologizmy-ranking/.

W momencie tworzenia niniejszego wpisu czołówka prezentowała się akurat następująco:

  1. plażing
  2. urlop tacierzyński
  3. alternatywka
  4. jesieniara
  5. smakówka

A przecież możliwości tworzenia nowych słów poprzez dodawanie końcówek lub przedrostków – czy to do wyrazów polskich, czy też zaczerpniętych z języka obcego, w szczególności angielskiego – są praktycznie nieograniczone (porównaj chociażby takie słowa jak: megafajny, makroproducent czy fejsować).

Algorytmy maszynowe nie powinny w tym zakresie pozostawać w tyle. Aby system komputerowy miał możliwość analizy słownikowej nowo powstałych wyrazów, powinny się one znaleźć w jego słowniku.

W powyższym celu system może samodzielnie wygenerować potencjalne neologizmy – na przykład łącząc popularne słowa z popularnymi przedrostkami. Dzięki temu w słowniku systemowym znaleźć się mogą wyrazy, których na próżno szukać w tradycyjnych źródłach leksykograficznych – takie jak chociażby: supermaszyna czy eko-promocja.

Tego typu kreatywność słowotwórczą komputera trzeba jednak odpowiednio kontrolować. Przede wszystkim bowiem proces łączenia jednostek leksykalnych będzie nieuchronnie prowadził do wygenerowania wyrazów niestosowanych w języku. Ten problem można akurat skutecznie wyeliminować, poddając każde wygenerowane automatycznie słowo odpowiedniej weryfikacji, a następnie dołączając do systemowego słownika jedynie wyrazy o odpowiednio wysokiej częstości występowania w wybranym korpusie tekstów (chociażby w treściach indeksowanych przez wyszukiwarkę Google).

Co gorsza jednak, słowa automatycznie wygenerowane przez system mogą okazać się tzw. fałszywymi derywatami, czyli wyrazami o zupełnie innym znaczeniu niż sugerowałyby to ich elementy składowe, na przykład:

mini+ster ≠ minister
nie+dzielny ≠ niedzielny
pod+miot ≠ podmiot
pod+ręcznik ≠ podręcznik
tera+kota ≠ terakota

Odpowiadając zatem na pytanie postawione w tytule bieżącej sekcji niniejszego wpisu: Tak, komputer może być kreatywny. I to niestety aż za bardzo!

Podsumowanie

Analiza morfologiczna, czyli analiza budowy wyrazów, jest niezbędnym elementem wielu systemów przetwarzania języka naturalnego. W przypadku niektórych zastosowań konieczne jest korzystanie z wyczerpującego słownika danego języka. Obecnie dąży się do tego, aby w pojedynczym procesie połączyć lematyzację z tagowaniem.

Niekiedy jednak wystarczające okazują się metody bezsłownikowe, których działanie ogranicza się do ustalenia rdzeni poszczególnych wyrazów.

Kreatywność ludzka prowadzi do nieustannego powstawania nowych wyrazów. Komputer też można skłonić do kreatywności słowotwórczej, jednakże jej rezultaty mogą być bardzo nieoczekiwane, a wręcz zabawne.


1 Forma podstawowa wyrazu to ta, która pojawia się w słownikach – np. mianownik liczby pojedynczej w przypadku rzeczowników czy bezokolicznik w przypadku czasowników.
2 Snippet to wycinek strony internetowej zwracany przez wyszukiwarkę w odpowiedzi na sformułowane zapytanie.

W jaki sposób komputer analizuje wyrazy?

Spis treści

Translator<br/><small>zbudowany na sieciach neuronowych</small> Nasz translator