Przejdź do treści

Narzędzie do Analizy i Wizualizacji Częstotliwości Znaków

Darmowe narzędzie do analizy częstotliwości znaków. Natychmiastowa wizualizacja wzorców rozkładu liter. Idealne dla kryptografii, kompresji danych, wykrywania kodowania tekstu oraz analizy lingwistycznej.

Analiza Częstotliwości Znaków

Kalkulator załadunku...
📚

Dokumentacja

Czym jest analiza częstości znaków?

Analiza częstości znaków polega na zliczaniu, ile razy każdy znak występuje w tekście. Obejmuje litery, cyfry, spacje, znaki interpunkcyjne i wszystkie inne symbole zawarte w tekście. Wynikiem jest prosta tabela lub wykres: jeden znak, jedna liczba wystąpień.

To narzędzie przyjmuje dowolny wklejony lub wpisany tekst i automatycznie zlicza każdy znak. Tworzy wykres słupkowy liczby wystąpień, dzięki czemu najczęstsze znaki od razu się wyróżniają. Wskazanie lub dotknięcie słupka pokazuje dokładną liczbę wystąpień danego znaku.

Technika ta jest stara. Arabski uczony Al-Kindi opisał ją w 9. wieku jako sposób łamania prostych szyfrów. Obecnie stosuje się ją także do kompresji danych, sprawdzania pisowni i kodowania oraz podstawowej identyfikacji języka.

Jak obliczać częstość znaków

Ręczne obliczanie częstości znaków obejmuje trzy kroki:

  1. Przejdź przez tekst znak po znaku, uwzględniając spacje i znaki interpunkcyjne.
  2. Prowadź bieżące zliczanie każdego odrębnego znaku. Nowy znak otrzymuje wartość 1, a powtórzony znak zwiększa istniejącą liczbę o 1.
  3. Wypisz każdy znak wraz z jego końcową liczbą wystąpień.

To narzędzie wykonuje to samo automatycznie, korzystając ze struktury danych nazywanej mapą haszującą (tabelą wyszukiwania, która przechowuje wartość pod kluczem). Dla każdego znaku w tekście sprawdza, czy dany znak ma już wpis w mapie. Jeśli tak, narzędzie zwiększa zapisaną liczbę o 1. Jeśli nie, tworzy nowy wpis z liczbą 1. Metoda ta przetwarza każdy znak dokładnie raz, więc czas działania rośnie wprost proporcjonalnie do długości tekstu, a nie szybciej.

Po zliczeniu narzędzie wyświetla wyniki alfabetycznie według znaków. Obecnie nie oferuje opcji sortowania według liczby wystąpień.

Częstość znaków wyrażona procentowo

Same liczby mogą być trudne do porównania w tekstach o różnej długości. Z tego powodu częstość często wyraża się jako procent całkowitej liczby znaków:

f(c)=ncN×100%f(c) = \frac{n_c}{N} \times 100\%

W tym wzorze ncn_c oznacza liczbę wystąpień znaku cc, a NN oznacza całkowitą liczbę znaków w tekście. To narzędzie podaje surowe liczby wystąpień i całkowitą liczbę znaków, a nie kolumnę procentową, ale procent dla dowolnego znaku można obliczyć, dzieląc jego liczbę wystąpień przez całkowitą liczbę znaków i mnożąc przez 100.

Przykład obliczeń

Rozważmy słowo „mississippi”, które ma 11 znaków i nie zawiera spacji ani znaków interpunkcyjnych.

Zliczenie każdej litery daje:

ZnakLiczba wystąpieńProcent
i436,4%
m19,1%
p218,2%
s436,4%

Tabela jest posortowana alfabetycznie (i, m, p, s), zgodnie ze sposobem porządkowania wyników przez to narzędzie. Liczby wystąpień sumują się do 11, czyli całkowitej długości słowa. Aby uzyskać kolumnę procentową, każdą liczbę wystąpień podzielono przez 11 i pomnożono przez 100, na przykład 4 ÷ 11 × 100 ≈ 36,4%.

Jak korzystać z tego narzędzia

Wpisz lub wklej tekst w polu wejściowym. Narzędzie analizuje go natychmiast, bez konieczności naciskania przycisku. Gdy tekst się zmienia, lista znaków i wykres słupkowy są odpowiednio aktualizowane.

Sekcja wyników pokazuje:

  • Wykres słupkowy z jednym słupkiem na każdy znak. Wyższe słupki oznaczają częstsze występowanie znaku.
  • Całkowitą liczbę znaków w tekście, wraz ze spacjami i znakami interpunkcyjnymi.
  • Dokładną liczbę wystąpień każdego znaku, wyświetlaną po wskazaniu lub dotknięciu jego słupka.

Przycisk „Kopiuj” formatuje wyniki jako zwykły tekst, po jednym znaku i jego liczbie wystąpień w każdym wierszu, gotowe do wklejenia do arkusza kalkulacyjnego lub dokumentu. Spacje są w tym wyniku oznaczane jako „space”, aby nie pomylić ich z pustymi wierszami.

W zwykłym tekście angielskim litery takie jak E, T, A, O i I zwykle należą do najczęstszych. Tekst, w którym rzadkie litery, takie jak Q lub Z, pojawiają się wyjątkowo często, może być zakodowany, zaszyfrowany lub napisany w innym języku.

Zastosowania analizy częstości znaków

Łamanie szyfrów podstawieniowych

Szyfr podstawieniowy zastępuje każdą literę wiadomości inną literą lub symbolem, stosując tę samą zamianę w całym tekście. Ponieważ zamiana jest stała, rozkład częstości właściwy dla języka oryginału zachowuje się w tekście zaszyfrowanym. W języku angielskim litera E występuje w przybliżeniu w 12–13% przypadków. Jeśli jakiś symbol w szyfrogramie pojawia się z podobną częstością, jest prawdopodobnym odpowiednikiem litery E. Przez stulecia była to główna metoda łamania szyfrów podstawieniowych, zanim współczesne szyfrowanie sprawiło, że stały się one nieprzydatne poza łamigłówkami i dokumentami historycznymi.

Kompresja danych

Formaty kompresji, takie jak ZIP i GZIP, wykorzystują częstość znaków w metodzie nazywanej kodowaniem Huffmana. Często występujące znaki otrzymują krótkie kody binarne, a rzadkie — dłuższe. Ponieważ częste znaki zajmują mniej miejsca przy każdym wystąpieniu, cały plik zostaje zmniejszony bez utraty informacji.

Wykrywanie problemów z kodowaniem

Tekst wyświetlający dziwne, nieoczekiwane znaki (na przykład „é” zamiast oczekiwanego „é”) często wskazuje na niezgodność między kodowaniem znaków, w którym zapisano plik, a kodowaniem użytym do jego odczytu. Wykres częstości pokazujący nietypowy wzrost liczby dziwnych symboli zamiast często występujących liter może pomóc potwierdzić problem z kodowaniem.

Identyfikacja języka

Różne języki mają różne typowe rozkłady znaków. W języku angielskim często występują E, T i A. W niemieckim znacznie częstsze są E i N, a ponadto występują litery ä, ö i ü, których w ogóle nie ma w języku angielskim. Porównanie częstości znaków w tekście ze znanymi profilami językowymi pozwala szybko i zgrubnie odgadnąć jego język.

Styl pisania i autorstwo

Ponieważ autorzy mają zwykle stałe nawyki dotyczące interpunkcji i użycia liter, wzorce na poziomie znaków mogą stanowić niewielki element dowodu przy ustalaniu autorstwa. Sama częstość znaków rzadko dowodzi, kto napisał dany tekst; najlepiej działa w połączeniu z doborem słów, długością zdań i innymi wyznacznikami stylu.

Inne metody analizy tekstu

Częstość znaków nie jest jedynym sposobem analizowania tekstu.

  • Częstość słów zlicza całe słowa zamiast znaków. Jest bliższa znaczeniu tekstu i często stosuje się ją w analizie słów kluczowych oraz tematów.
  • Analiza n-gramów bada krótkie sekwencje znaków lub słów, takie jak pary lub trójki. Klawiatury predykcyjne i autouzupełnianie korzystają z niej, aby przewidywać następną literę lub słowo.
  • Analiza sentymentu ocenia, czy tekst brzmi pozytywnie, negatywnie czy neutralnie, wykorzystując metody wykraczające daleko poza proste zliczanie.
  • Analiza czytelności, na przykład wynik Flescha-Kincaida, szacuje trudność tekstu na podstawie długości zdań i słów.

Najczęściej zadawane pytania

Co pokazuje analiza częstości znaków?

Pokazuje, jak często każdy znak występuje w tekście. Analiza wyników może ujawnić wzorce przydatne w kryptografii, kompresji, wykrywaniu błędów kodowania lub odgadywaniu języka tekstu.

Jak narzędzie sortuje wyniki?

Sortuje znaki alfabetycznie. Nie ma opcji sortowania według liczby wystąpień. Najczęstsze i najrzadsze znaki trzeba znaleźć, odczytując wykres słupkowy lub przeglądając liczby w skopiowanym tekście.

Czy narzędzie pokazuje wartości procentowe?

Nie. Podaje surową liczbę wystąpień każdego znaku oraz całkowitą liczbę znaków. Procent można obliczyć, dzieląc liczbę wystąpień znaku przez sumę wszystkich wystąpień i mnożąc przez 100.

Czy analiza częstości znaków może złamać współczesne szyfrowanie?

Nie. Działa tylko przeciwko prostym szyfrom podstawieniowym, w których jeden znak zawsze oznacza ten sam znak zastępczy. Współczesne szyfrowanie, takie jak AES, tworzy dane wyjściowe pozbawione takiego stałego wzorca, więc zliczanie częstości nie ujawnia niczego o oryginalnej wiadomości.

Czy narzędzie zlicza spacje i znaki interpunkcyjne?

Tak. Liczy się każdy znak wejściowy, w tym spacje, tabulatory, podziały wierszy i znaki interpunkcyjne. W zwykłym tekście spacje są często pojedynczym najczęściej występującym znakiem.

Jak dużo tekstu potrzeba do uzyskania wiarygodnych wzorców?

Kilkaset znaków to rozsądne minimum. Bardzo krótki tekst może przypadkowo wykazywać częstości znacznie odbiegające od oczekiwanego wzorca. Dłuższe próbki, liczące tysiąc znaków lub więcej, zwykle lepiej odpowiadają znanym wzorcom językowym.

Piśmiennictwo

  1. MDN Web Docs: Map — dokumentacja struktury danych mapy haszującej używanej do wydajnego zliczania znaków.
  2. Shannon, C. E. (1951). „Prediction and entropy of printed English”. The Bell System Technical Journal, 30(1), 50-64.
  3. Huffman, D. A. (1952). „A Method for the Construction of Minimum-Redundancy Codes”. Proceedings of the IRE, 40(9), 1098-1101.
  4. Huffman Coding — Wikipedia