Прескочи към съдържанието

Анализ и визуализация на честотата на символите

Безплатен инструмент за анализ на честотата на символите. Визуализирайте моментално разпределението на буквите. Перфектен за криптография, компресия на данни, разпознаване на кодиране и лингвистичен анализ.

Анализ на честотата на символите

Калкулатор за зареждане...
📚

Документация

Какво представлява анализът на честотата на символите?

Анализът на честотата на символите е процесът на преброяване колко пъти се появява всеки символ в даден текст. Той обхваща букви, цифри, интервали, пунктуационни знаци и всеки друг символ в текста. Резултатът е проста таблица или диаграма: един символ — един брой срещания.

Този инструмент приема всеки поставен или въведен текст и преброява автоматично всеки символ. Той начертава стълбовидна диаграма на броя, така че най-често срещаните символи се открояват веднага. Посочването или докосването на стълб показва точния брой на съответния символ.

Техниката е стара. Арабският учен Ал-Кинди я описва през 9 век като начин за разбиване на прости шифри. Днес тя се използва и при компресиране на данни, проверки на правописа и кодирането, както и за основно разпознаване на езика.

Как се изчислява честотата на символите

Ръчното изчисляване на честотата на символите се извършва на три стъпки:

  1. Прегледайте текста символ по символ, включително интервалите и пунктуацията.
  2. Водете текущ сбор за всеки отделен символ. Нов символ започва с 1; повтарящ се символ добавя 1 към съществуващия му сбор.
  3. Избройте всеки символ с крайния му сбор.

Този инструмент прави същото автоматично, като използва структура от данни, наречена хеш-таблица (справочна таблица, която съхранява стойност под ключ). За всеки символ в текста той проверява дали този символ вече има запис в таблицата. Ако има, инструментът добавя 1 към съхранения брой. Ако няма, създава нов запис с брой 1. Този метод обработва всеки символ точно веднъж, така че необходимото време нараства право пропорционално на дължината на текста, а не по-бързо.

След преброяването инструментът подрежда резултатите по символи в азбучен ред. В момента няма възможност за сортиране по брой.

Честота на символите като процент

Самите бройки могат да се сравняват трудно между текстове с различна дължина. Затова честотата често се изразява като процент от общия брой символи:

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

Тук ncn_c е броят пъти, които символът cc се появява, а NN е общият брой символи в текста. Този инструмент показва необработените бройки и общия брой символи, а не колона с проценти, но процентът за всеки символ може да се изчисли, като неговата бройка се раздели на общия брой и се умножи по 100.

Решен пример

Да вземем думата „mississippi“, която има 11 символа и не съдържа интервали или пунктуация.

Преброяването на всяка буква дава:

СимволБройПроцент
i436,4%
m19,1%
p218,2%
s436,4%

Таблицата е подредена по азбучен ред (i, m, p, s), съобразно начина, по който този инструмент подрежда резултатите. Бройките дават общо 11, което е общата дължина на думата. За да се получи колоната с проценти, всяка бройка е разделена на 11 и умножена по 100, например 4 ÷ 11 × 100 ≈ 36,4%.

Как се използва този инструмент

Въведете или поставете текст в полето за въвеждане. Инструментът го анализира незабавно, без да е необходимо натискане на бутон. При промяна на текста списъкът със символи и стълбовидната диаграма се обновяват съответно.

Разделът с резултатите показва:

  • Стълбовидна диаграма с по един стълб за всеки символ. По-високите стълбове означават, че символът се среща по-често.
  • Общия брой символи в текста, включително интервалите и пунктуацията.
  • Точният брой за всеки символ, показван при посочване или докосване на неговия стълб.

Бутонът „Копиране“ форматира резултатите като обикновен текст, по един символ и брой на ред, готов за поставяне в електронна таблица или документ. Интервалите са обозначени като „интервал“ в този изход, за да не бъдат объркани с празни редове.

В обикновен английски текст букви като E, T, A, O и I обикновено са сред най-често срещаните. Текст, в който редки букви като Q или Z се появяват необичайно често, може да е кодиран, шифрован или написан на друг език.

Приложения на анализа на честотата на символите

Разбиване на шифри със заместване

Шифърът със заместване заменя всяка буква от съобщението с друга буква или символ, като използва едно и също заместване навсякъде. Тъй като заместването е последователно, честотният модел на оригиналния език се запазва в шифрования текст. В английския език буквата E се среща приблизително в 12–13% от случаите. Ако един символ в шифротекста се появява приблизително с тази честота, той е вероятен заместител на E. В продължение на векове това е основният метод за разбиване на шифри със заместване, преди съвременното шифроване да го направи неприложим за всичко освен пъзели и исторически документи.

Компресиране на данни

Формати за компресиране като ZIP и GZIP използват честотата на символите чрез подход, наречен кодиране на Хъфман. Често срещаните символи получават кратки двоични кодове, а редките символи — по-дълги. Тъй като често срещаните символи заемат по-малко място при всяка поява, целият файл се свива, без да се губи информация.

Откриване на проблеми с кодирането

Текст, който показва странни, неочаквани символи (например „é“ вместо очакваното „é“), често сочи към несъответствие между кодирането на символите, с което е записан файлът, и това, използвано за прочитането му. Честотна диаграма, която показва необичаен пик от странни символи вместо обичайни букви, може да помогне за потвърждаване на проблем с кодирането.

Разпознаване на езика

Различните езици имат различни типични разпределения на символите. В английския език преобладават E, T и A. В немския се срещат много повече E и N, както и букви като ä, ö и ü, които изобщо не се използват в английския. Сравняването на честотите на символите в даден текст с известни езикови профили предоставя бърз, приблизителен начин за отгатване на езика му.

Стил на писане и авторство

Тъй като писателите обикновено имат постоянни навици при употребата на пунктуация и букви, моделите на ниво символ могат да бъдат малка част от доказателствата при установяване на авторството. Само по себе си анализът на честотата на символите рядко доказва кой е написал нещо; той работи най-добре в съчетание с избора на думи, дължината на изреченията и други стилистични белези.

Други методи за анализ на текст

Честотата на символите не е единственият начин за анализиране на текст.

  • Честотата на думите брои цели думи, а не символи. Тя е по-близо до значението на текста и се използва често при проучване на ключови думи и анализ на теми.
  • N-грамният анализ разглежда кратки поредици от символи или думи, например двойки или тройки. Предиктивните клавиатури и автоматичното довършване използват този метод, за да предположат следващата буква или дума.
  • Анализът на настроенията определя дали текстът звучи положително, отрицателно или неутрално, като използва методи, които надхвърлят простото броене.
  • Анализът на четливостта, например оценката на Флеш–Кинкейд, оценява колко трудно се чете даден текст въз основа на дължината на изреченията и думите.

Често задавани въпроси

Какво показва анализът на честотата на символите?

Той показва колко често се появява всеки символ в даден текст. Разглеждането на резултата може да разкрие модели, полезни за криптография, компресиране, откриване на грешки в кодирането или отгатване на езика на текста.

Как този инструмент подрежда резултатите?

Той подрежда символите по азбучен ред. Няма възможност за сортиране по брой. Най- и най-малко често срещаните символи трябва да се открият чрез разглеждане на стълбовидната диаграма или чрез преглеждане на бройките в копирания текст.

Инструментът показва ли проценти?

Не. Той показва необработената бройка за всеки символ и общия брой символи. Процентът може да се изчисли, като бройката на даден символ се раздели на общия брой и се умножи по 100.

Може ли анализът на честотата на символите да разбие съвременно шифроване?

Не. Той работи само срещу прости шифри със заместване, при които един символ винаги се заменя с един и същ символ. Съвременното шифроване, например AES, създава изход без такава последователна закономерност, затова честотните бройки не разкриват нищо за оригиналното съобщение.

Инструментът брои ли интервалите и пунктуацията?

Да. Всеки символ във входа се брои, включително интервали, табулации, нови редове и пунктуационни знаци. В обикновения текст интервалите често са най-често срещаният единичен символ.

Колко текст е необходим за надеждни закономерности?

Няколкостотин символа представляват разумен минимум. Много краткият текст може да покаже честоти, които се различават значително от очаквания модел единствено по случайност. По-дългите извадки от хиляда или повече символа обикновено съответстват по-точно на известните езикови модели.

Източници

  1. MDN Web Docs: Map — документация за структурата от данни хеш-таблица, използвана за ефективно преброяване на символи.
  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