NLP Academy · Lekcja

Cechy N-gramowe w scikit-learn

Dodaj frazy do wektoryzatora

Lekcja 3 z 413 kroki

Cechy N-gramowe w scikit-learn 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.

Pozwólmy działać bibliotece

N-gramy można tworzyć ręcznie, ale scikit-learn zrobi to za Państwa. Wystarczy jeden niewielki argument w wektoryzatorze.

Parametr ngram_range

Każdy wektoryzator tekstu przyjmuje parametr ngram_range, czyli krotkę określającą minimalny i maksymalny rozmiar. Informuje ona wektoryzator, które n-gramy należy zliczać.

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(ngram_range=(1, 2))

Unigramy są ustawieniem domyślnym

Jeśli pozostawić ten parametr bez zmian, ngram_range ma wartość (1, 1), czyli obejmuje wyłącznie pojedyncze słowa. To znany już zwykły model bag-of-words.

Dodawanie bigramów

Ustawienie ngram_range na (1, 2) sprawia, że wektoryzator zachowuje pojedyncze słowa i każdą sąsiadującą parę — wszystko w jednej przestrzeni cech.

vec = CountVectorizer(ngram_range=(1, 2))
X = vec.fit_transform(["this is not good"])

Tylko bigramy

Potrzebne są tylko pary? Należy użyć (2, 2). Pojedyncze słowa znikną, a jako cechy pozostaną wyłącznie bigramy.

vec = CountVectorizer(ngram_range=(2, 2))

Sprawdzanie słownika

Po dopasowaniu można podejrzeć poznane cechy za pomocą get_feature_names_out. Na liście znajdą się zarówno słowa, jak i połączone wyrażenia.

print(vec.get_feature_names_out())
# ['is not', 'not good', 'this is']

Wyrażenia łączone spacją

scikit-learn nazywa każdy bigram, łącząc jego słowa pojedynczą spacją, na przykład not good. Ten ciąg staje się jedną kolumną.

To samo ustawienie, TF-IDF

Ten sam parametr ngram_range działa również z TfidfVectorizer. Otrzymuje się frazy n-gramowe, którym dodatkowo przypisywane są wagi zależne od ich charakterystyczności.

from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer(ngram_range=(1, 2))

Teraz negacja zostaje zachowana

Gdy bigramy są włączone, not good trafia do własnej kolumny. Klasyfikator może wreszcie nauczyć się, że ta para sygnalizuje negatywną opinię.

Obserwuj liczbę cech

Dodanie bigramów może znacznie zwiększyć liczbę kolumn. Macierz nadal pozostaje rzadka, ale słownik szybko się rozrasta.

print(X.shape)  # many more columns than unigrams alone

Połącz to z min_df

Aby ograniczyć ten rozrost, połącz ngram_range z parametrem min_df. Usunięcie rzadkich fraz pozwala zachować tylko te n-gramy, które powtarzają się w użyteczny sposób.

vec = CountVectorizer(ngram_range=(1, 2), min_df=2)

Szybkie sprawdzenie

Jakie ustawienie ngram_range zapewnia pojedyncze słowa oraz sąsiadujące pary w jednym wektoryzatorze?

Podsumowanie: n-gramy w scikit-learn

Jedna krotka ngram_range zmienia dowolny wektoryzator w narzędzie do obsługi n-gramów. Należy sprawdzić cechy, a następnie ograniczyć je za pomocą min_df. Teraz wybierzesz odpowiedni zakres. 🎯

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Cechy N-gramowe w scikit-learn” jest bezpłatna?

Tak — pełny tekst „Cechy N-gramowe w scikit-learn” 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 „Cechy N-gramowe w scikit-learn”?

Dodaj frazy do wektoryzatora Ć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 „Cechy N-gramowe w scikit-learn”?

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

  1. Dlaczego pojedyncze słowa tracą znaczenie
  2. Bigramy i trigramy — wyjaśnienie
  3. Cechy N-gramowe w scikit-learn
  4. Wybór właściwego zakresu N-gramów
← Powrót do NLP Academy