Ekstraktor n-gramów

N-gram to ciąg n kolejnych wyrazów w tekście. Ten ekstraktor zamienia tekst na małe litery, dzieli go na wyrazy przy każdej spacji i każdym znaku interpunkcyjnym, a następnie zlicza wszystkie n-gramy o wybranej przez Ciebie długości (od 1 do 8). Wynikiem jest tabela częstotliwości w formacie CSV, uporządkowana od najczęstszych do najrzadszych: dokładnie taka, na jakiej opierają się analiza gęstości słów kluczowych w SEO, wygładzanie modeli językowych i wykrywanie plagiatu.

Jak wyodrębnić n-gramy

  1. 1

    Wklej swój tekst

    Może to być artykuł, transkrypcja lub opis produktu. Dla rozsądnych objętości nie ma limitu długości.

  2. 2

    Wybierz n

    Unigramy (1), bigramy (2), trigramy (3), aż do 8. Jedno uruchomienie to jedna długość.

  3. 3

    Wyodrębnij

    Tekst zostaje zamieniony na małe litery i podzielony na wyrazy, a znaki interpunkcyjne traktowane są jako separatory i usuwane.

  4. 4

    Przeczytaj tabelę częstotliwości

    Każdy n-gram pojawia się wraz z liczbą wystąpień, posortowany od najczęstszego.

  5. 5

    Skopiuj plik CSV

    Wynik jest rozdzielony przecinkami (N-gram,Count) i gotowy do wklejenia do arkusza kalkulacyjnego.

Co mówi Ci każda długość n-gramu

N Nazwa Zastosowanie
1 Unigram Gęstość słów kluczowych, mapowanie tematów
2 Bigram Frazy (“search intent”, “page speed”), kolokacje
3 Trigram Frazy z długiego ogona, wykrywanie cech
4+ Czterogram i dłuższe Wykrywanie zduplikowanych treści, sygnały plagiatu

Jak narzędzie dzieli Twój tekst

  • Wszystko trafia na małe litery, więc “The” i “the” lądują w tym samym wierszu.
  • Wyraz to dowolny ciąg liter, cyfr lub apostrofów. Każdy inny znak (interpunkcja, symbole, znaki końca wiersza) jest separatorem i zostaje usunięty.
  • Granice zdań nie są zachowywane. Ostatni wyraz jednego zdania i pierwszy wyraz następnego wciąż mogą utworzyć n-gram, więc pary przechodzące przez granicę zdania traktuj ostrożnie. Jeśli ma to znaczenie, analizuj tekst zdanie po zdaniu lub akapit po akapicie.
  • Słowa stop pozostają. Nic nie jest filtrowane za Ciebie: jeśli chcesz wyłącznie frazy znaczeniowe, usuń te wiersze z pliku CSV po eksporcie.
  • Wyrazy rozpoznawane są po spacjach i interpunkcji. Polski oddziela wyrazy spacjami, więc narzędzie działa od razu. Pamiętaj jednak, że formy fleksyjne liczone są osobno: “strona”, “strony” i “stronie” trafią do różnych wierszy. Jeśli potrzebujesz form podstawowych, przepuść tekst najpierw przez lematyzator (Morfeusz, spaCy dla polskiego). Chiński, japoński i tajski nie stawiają spacji między wyrazami: całe zdanie trafi tu jako jeden wyraz, więc trzeba je wcześniej podzielić (jieba, MeCab, segmentator tajskiego).

Kiedy usuwać słowa stop

Słowa stop to bardzo częste wyrazy funkcyjne: w angielskim “the”, “a”, “of”, “and”, a w polskim “i”, “w”, “na”, “się”. Pozostawienie ich zapycha listę bigramów śmieciami w rodzaju “of the” czy “w się”. Ten ekstraktor ich nie usuwa, więc skasuj takie wiersze z eksportu, gdy zależy Ci na frazach znaczeniowych, i zostaw je, gdy badasz styl, atrybucję autorstwa albo modele językowe, w których wyrazy funkcyjne same w sobie niosą sygnał.

Zastosowanie w SEO

Dla artykułu celującego w “nginx config generator” sprawdź:

  • Czy docelowy bigram i trigram są w pierwszej dwudziestce. Jeśli “nginx config” zajmuje 40. miejsce, prawdopodobnie używasz tego terminu zbyt rzadko.
  • Czy nie upychasz słów kluczowych. Jeśli fraza jest na 1. miejscu z ogromną przewagą, tekst czyta się jak spam.
  • Czy istnieją sąsiedzi semantyczni. Powiązane bigramy w rodzaju “server block”, “proxy pass” i “ssl certificate” upewniają wyszukiwarki, że temat został omówiony.

Zastosowania w NLP i nauce

  • Modele językowe wykorzystują częstotliwości n-gramów do wygładzania i metody backoff (Kneser-Ney, Good-Turing).
  • Badania nad atrybucją autorstwa porównują rozkłady trigramów u poszczególnych kandydatów na autora.
  • Ocena tłumaczenia maszynowego (BLEU) punktuje pokrycie n-gramów między tłumaczeniem kandydującym a referencyjnym.

Najczęściej zadawane pytania

Od tweeta (gdzie n-gramy niemal nie mają sensu) po rozdział książki. Aby bigramy były wiarygodne statystycznie, potrzeba ponad 1000 wyrazów, a dla trigramów ponad 10 000. Poniżej tej wielkości rankingi są zaszumione.

Tutaj nie. Tekst przed zliczaniem zawsze trafia na małe litery, więc “The” i “the” (a także “Apple” i “apple”) dzielą jeden wiersz zamiast rozpadać się na dwa. Nie ma trybu z rozróżnianiem wielkości liter: jeśli musisz oddzielić nazwy własne lub kod, oznacz je w tekście przed wklejeniem.

Działają jak separatory wyrazów i nigdy nie trafiają do wnętrza n-gramu. Nie przerywają jednak okna zliczania: ostatni wyraz jednego zdania i pierwszy wyraz następnego wciąż liczą się razem jako bigram. Jeśli potrzebujesz ścisłych granic zdań, przetwarzaj zdania lub akapity osobno.

Z polskim działa od razu, bo wyrazy oddzielone są spacjami. Pamiętaj tylko, że fleksja nie jest sprowadzana do formy podstawowej: “narzędzie”, “narzędzia” i “narzędziem” to trzy osobne wiersze. Do analizy na formach podstawowych zlematyzuj tekst (Morfeusz, spaCy) i dopiero wklej wynik. Chiński, japoński i tajski nie oddzielają wyrazów spacjami, więc całe zdanie przychodzi jako jeden wyraz: najpierw podziel je narzędziem do segmentacji (jieba, MeCab, segmentator tajskiego), a potem wklej rozdzielony spacjami tekst.

Narzędzie nie stosuje żadnej listy, filtrujesz po eksporcie. Najpopularniejsza angielska lista to zestaw 179 słów z NLTK, używany przez większość narzędzi SEO. Snowball, SpaCy i scikit-learn dostarczają nieco inne listy. Dla polskiego skorzystaj z polskiej listy słów stop (na przykład ze stopwords-pl albo ze spaCy).

Powiązane narzędzia

Narzędzie jest dostępne w innych językach