Przetwarzanie tekstu

Stemming

Daniel Wlaźlak
Ilustracja do artykułu
(Ilustracja do artykułu : envato, autor DC_Studio)

Jednym z kluczowych elementów wyszukiwania informacji, a szczególnie wyszukiwania pełnotekstowego, w wielu silnikach wyszukiwarek jest stemming, czyli technika redukcji wyrazów do ich podstawowej formy poprzez "obcięcie" końcówki. 

Stemming jest szeroko stosowany w wyszukiwarkach internetowych oraz w systemach przetwarzania języka naturalnego (NLP), które tak są wszechobecne w naszym świecie SEO.

  

Czym jest stemming (definicja)?

Stemming to proces redukcji wyrazów do ich podstawowej formy, zwanej rdzeniem lub korzeniem (ang. "stem"). W praktyce oznacza to, że słowa takie jak "biegnie", "biegający" i "biegacze" zostaną zredukowane do wspólnego korzenia "bieg". Celem stemmingu jest usunięcie końcówek fleksyjnych i sufiksów (końcówek), aby lepiej zidentyfikować i pogrupować podstawowe znaczenie słowa, niezależnie od jego odmiany.

Jak działa stemming?

Stemming wykorzystuje algorytmy, które automatycznie przetwarzają tekst, aby zredukować wyrazy do ich podstawowej formy. Najpopularniejszym algorytmem używanym do tego celu jest algorytm Portera, opracowany przez Martina Portera w 1980 roku. Algorytm ten działa poprzez stosowanie zestawu reguł usuwania końcówek z wyrazów, takich jak "-ing", "-ed" czy "-ly" w języku angielskim.

Inne popularne algorytmy stemmingu to algorytm Snowball, który jest rozwinięciem algorytmu Portera i oferuje bardziej elastyczne reguły dla różnych języków, oraz algorytm Lovinsa, który charakteryzuje się bardziej kompleksowym podejściem do analizy morfologicznej.

Jak działa stemming w języku polskim?

Stemming w języku polskim polega na redukcji wyrazów do ich podstawowej formy, czyli korzenia, przez usuwanie końcówek fleksyjnych. Przykładowo, słowa takie jak "biegnie", "biegł", "biegamy" mogą zostać zredukowane do korzenia "bieg". Algorytmy stemmingu muszą więc rozpoznać różne formy gramatyczne wyrazów i zidentyfikować ich wspólny rdzeń.

Dla języka polskiego stosowane są różne algorytmy stemmingu, takie jak wspomniany już Snowball (znany również jako Porter2) dostosowany do języka polskiego.

Algorytmy te wykorzystują zestawy reguł, które identyfikują końcówki i modyfikują słowa w taki sposób, aby zredukować je do ich rdzeni. Proces ten jest jednak bardziej skomplikowany w porównaniu z językiem angielskim, ze względu na bogactwo form fleksyjnych, rodzajów, przypadków oraz wyjątków gramatycznych występujących w języku polskim.

Dlaczego stemming w języku polskim jest trudny i nie zawsze wychodzi dobrze?

Język polski, w odróżnieniu od języka angielskiego, cechuje się wysokim stopniem fleksyjności i dużą liczbą form odmiany wyrazów. Oznacza to, że jeden wyraz może przybierać wiele różnych form w zależności od liczby, rodzaju, przypadku czy osoby. Przykładowo, rzeczownik "kot" może występować w formach "kota", "kotem", "kocie" i wielu innych, co znacznie utrudnia proste zredukowanie tych słów do wspólnego korzenia.

Trudność ta wynika również z dużej liczby wyjątków gramatycznych i reguł, które mogą się zmieniać w zależności od kontekstu. Dlatego algorytmy stemmingu dla języka polskiego muszą być bardziej zaawansowane i uwzględniać wiele reguł, co zwiększa ryzyko błędów i nieprecyzyjności.

W związku z powyższym, w  kontekście języka polskiego często pojawia się pytanie, czy lepiej stosować stemming czy lematyzację. Lematyzacja, w przeciwieństwie do stemmingu, uwzględnia kontekst gramatyczny słowa, co pozwala na dokładniejsze określenie jego podstawowej formy (lematu). Przykładowo, słowo "byliśmy" zostanie sprowadzone do "być", co jest bardziej precyzyjne niż proste usunięcie końcówek.

Lematyzacja jest jednak bardziej złożona obliczeniowo i wymaga większej mocy obliczeniowej oraz lepszych zasobów lingwistycznych, co może być problematyczne przy dużych zbiorach danych. Dlatego wybór między stemmingiem a lematyzacją zależy od specyfiki aplikacji i zasobów dostępnych dla danego projektu.

Jeśli chcemy uprościć dany tekst, żeby potem i tak z niego jakimś algorytmem zrobić wektor, to często stemming będzie wystarczającym i dobrym pomysłem. Jeśli wyciągamy słowa kluczowe z tekstu pod SEO , potem chcemy te słowa mapować z tagami lub kategoriami i to z pewnością lepiej zrobimy to lematami (które i tak nie są idealne i mają tylko kontekst gramatyczny, a nie merytoryczny).

Stemming jest użyteczny, gdy chcemy szybko zredukować różnorodność form gramatycznych słów, aby łatwiej porównywać teksty lub grupować podobne terminy a mniej potrzebujemy kontekst zasad gramatycznych.


Czy ten artykuł był Ci pomocny? Jesteśmy doświadczoną agencją SEO, skontakuj się z nami, jeśli potrzebujesz pomocy ze swoją stroną.

Prowadziłem i rozwijałem działy SEO w bardzo dużych wydawnictwach. Specjalizuję się w tworzeniu kompleksowych rozwiązań zasięgowych.

Spotkajmy się też w moich social media :
Zobacz moje wszystkie artykuły
Zaufali nam:
ElbudBis
Instytu cyfrowego obywatelstwa
Kinesso
Fundacja Orange
Rodzice.pl

Współpracuj z nami!

Naszą mocą jest technologia i doświadczony zespół

Przez lata zdobywaliśmy doświadczenie u największych wydawców w Polsce, a teraz zadbamy o rozwój Twojej firmy od strategii wzrostu po wdrożenia na stronach dzięki naszemu własnemu software house'owi. Zaufaj nam, aby osiągać dobre wyniki.

Porozmawiajmy o Twoich celach i potrzebach!

Przejrzyj najnowsze artykuły i wpisy na naszym blogu