Stemming: skracanie do rdzenia
Zmapuj running i runs na run
Stemming: skracanie do rdzenia to bezpłatna lekcja NLP Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej NLP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs NLP Academy zawiera 4 lekcji w sumie.
Jedno słowo, wiele form
Czasownik run występuje jako running, runs i ran. Dla Pana/Pani mają one wspólne znaczenie, ale nieprzetworzony tekst zlicza każdą formę osobno, rozdzielając signal. 🌱
Czas na stemming
Stemming odcina końcówki słowa, aby dotrzeć do przybliżonego rdzenia zwanego stemem. Celem jest sprowadzenie powiązanych form do jednego wspólnego tokenu.
Reguły zamiast słownika
Stemmer stosuje proste reguły dotyczące przyrostków, zamiast wyszukiwać słowa. Usuwa końcówki takie jak ing, ed i s, dlatego działa szybko, ale jest nieco crude.
PorterStemmer
NLTK zawiera klasyczny PorterStemmer. Należy utworzyć jedną instancję, a następnie wywoływać jej metodę stem dla dowolnego słowa, które ma zostać zredukowane.
from nltk.stem import PorterStemmer
ps = PorterStemmer()
print(ps.stem('running'))Formy łączą się
Przekaż kilka form tego samego czasownika, a wszystkie zostaną zredukowane do tego samego stem. Teraz zliczenia mogą się wreszcie sumować.
for w in ['running', 'runs', 'ran']:
print(ps.stem(w))Stemy nie są prawdziwymi słowami
Stemming jest mało precyzyjny. Słowo studies zostaje przekształcone w studi, które nie jest prawdziwym słowem, ale nadal pasuje do study i studied jako jeden stem.
print(ps.stem('studies'))Uważaj na nadmierny stemming
Czasami stemmer odcina zbyt wiele i łączy niepowiązane słowa. To zjawisko, zwane over-stemming, może zacierać znaczenia, dlatego zawsze należy sprawdzić wynik na własnym tekście.
print(ps.stem('universal'))
print(ps.stem('university'))Stemming listy tokenów
W praktyce wykonuje się stemming każdego tokenu w dokumencie. Comprehension stosuje stemmer do całej listy w jednej przejrzystej linijce.
words = ['cats', 'caring', 'cared']
print([ps.stem(w) for w in words])Istnieją też inne stemmery
Porter jest domyślny, ale NLTK oferuje również szybszy SnowballStemmer, który obsługuje wiele języków i poprawia niektóre niedoskonałości Portera.
from nltk.stem import SnowballStemmer
sb = SnowballStemmer('english')
print(sb.stem('happily'))Najpierw małe litery
Stemmery oczekują danych wejściowych zapisanych małymi literami. Najpierw ujednolić wielkość liter, a dopiero potem wykonać stemming, inaczej Running i running mogą ponownie przejść jako dwa różne tokens.
print(ps.stem('Running'.lower()))Kiedy warto go użyć
Stemming poświęca precyzję na rzecz szybkości. Sprawdza się w wyszukiwaniu i dużych potokach przetwarzania, gdzie przybliżone, ale szybkie match jest lepsze niż powolna, dokładna analiza. ⚡
Szybkie sprawdzenie
Utrwalmy, jak działa stemming.
Podsumowanie
Nauczył(a) się Pan/Pani, że stemming odcina przyrostki za pomocą prostych reguł, aby sprowadzić różne formy słowa do jednego stema. Działa szybko i przybliżenie, czasami tworząc formy, które nie są słowami. Świetna praca! 🎉
Często zadawane pytania
Czy lekcja „Stemming: skracanie do rdzenia” jest bezpłatna?
Tak — pełny tekst „Stemming: skracanie do rdzenia” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu NLP Academy, przejdź na CoddyKit PRO. Kurs NLP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Stemming: skracanie do rdzenia”?
Zmapuj running i runs na run Ćwiczysz NLP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć NLP Academy?
Nie wymagamy żadnego doświadczenia. NLP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Stemming: skracanie do rdzenia”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji NLP Academy?
Tak. Każda lekcja NLP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego wielkość liter i odstępy mają znaczenie
- Zamiana na małe litery i usuwanie białych znaków
- Stemming: skracanie do rdzenia
- Lematyzacja: inteligentniejsze formy podstawowe