Stemming
Jak działa
Algorytm stosuje sekwencję reguł obcinania sufiksów (np. Porter stemmer: -ing, -ed, -s). Działa czysto powierzchniowo, na podstawie wzorców znakowych, bez analizy gramatycznej ani słownika. Wynik (stem) nie musi być poprawnym słowem.
Rozwiązany problem
Bag-of-Words i TF-IDF traktują "biega", "biegał", "bieganie" jako osobne terminy, rozpraszając statystyki. Stemming scala je, zmniejszając słownik i poprawiając recall.
Implementacja
Over-stemming scala niespokrewnione słowa ("universal", "university" → "univers"); under-stemming nie scala spokrewnionych.
Porter stemmer projektowano dla angielskiego; dla polskiego daje słabe wyniki.
Hiperparametry (konfigurowalne osie)
Wybór stemmera: Porter (łagodny), Snowball/Porter2 (ulepszony, wielojęzyczny), Lancaster (agresywny).
Złożoność obliczeniowa
Złożoność czasowa: O(n) względem liczby tokenów. Złożoność przestrzenna: O(1) na token.
Paradygmat wykonania
Równoległość
Wymagania sprzętowe
Manipulacja stringów oparta na regułach — bez akceleracji sprzętowej.