Анализ и визуализация на честотата на символите
Безплатен инструмент за анализ на честотата на символите. Визуализирайте моментално разпределението на буквите. Перфектен за криптография, компресия на данни, разпознаване на кодиране и лингвистичен анализ.
Анализ на честотата на символите
Документация
Какво представлява анализът на честотата на символите?
Анализът на честотата на символите е процесът на преброяване колко пъти се появява всеки символ в даден текст. Той обхваща букви, цифри, интервали, пунктуационни знаци и всеки друг символ в текста. Резултатът е проста таблица или диаграма: един символ — един брой срещания.
Този инструмент приема всеки поставен или въведен текст и преброява автоматично всеки символ. Той начертава стълбовидна диаграма на броя, така че най-често срещаните символи се открояват веднага. Посочването или докосването на стълб показва точния брой на съответния символ.
Техниката е стара. Арабският учен Ал-Кинди я описва през 9 век като начин за разбиване на прости шифри. Днес тя се използва и при компресиране на данни, проверки на правописа и кодирането, както и за основно разпознаване на езика.
Как се изчислява честотата на символите
Ръчното изчисляване на честотата на символите се извършва на три стъпки:
- Прегледайте текста символ по символ, включително интервалите и пунктуацията.
- Водете текущ сбор за всеки отделен символ. Нов символ започва с 1; повтарящ се символ добавя 1 към съществуващия му сбор.
- Избройте всеки символ с крайния му сбор.
Този инструмент прави същото автоматично, като използва структура от данни, наречена хеш-таблица (справочна таблица, която съхранява стойност под ключ). За всеки символ в текста той проверява дали този символ вече има запис в таблицата. Ако има, инструментът добавя 1 към съхранения брой. Ако няма, създава нов запис с брой 1. Този метод обработва всеки символ точно веднъж, така че необходимото време нараства право пропорционално на дължината на текста, а не по-бързо.
След преброяването инструментът подрежда резултатите по символи в азбучен ред. В момента няма възможност за сортиране по брой.
Честота на символите като процент
Самите бройки могат да се сравняват трудно между текстове с различна дължина. Затова честотата често се изразява като процент от общия брой символи:
Тук е броят пъти, които символът се появява, а е общият брой символи в текста. Този инструмент показва необработените бройки и общия брой символи, а не колона с проценти, но процентът за всеки символ може да се изчисли, като неговата бройка се раздели на общия брой и се умножи по 100.
Решен пример
Да вземем думата „mississippi“, която има 11 символа и не съдържа интервали или пунктуация.
Преброяването на всяка буква дава:
| Символ | Брой | Процент |
|---|---|---|
| i | 4 | 36,4% |
| m | 1 | 9,1% |
| p | 2 | 18,2% |
| s | 4 | 36,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, създава изход без такава последователна закономерност, затова честотните бройки не разкриват нищо за оригиналното съобщение.
Инструментът брои ли интервалите и пунктуацията?
Да. Всеки символ във входа се брои, включително интервали, табулации, нови редове и пунктуационни знаци. В обикновения текст интервалите често са най-често срещаният единичен символ.
Колко текст е необходим за надеждни закономерности?
Няколкостотин символа представляват разумен минимум. Много краткият текст може да покаже честоти, които се различават значително от очаквания модел единствено по случайност. По-дългите извадки от хиляда или повече символа обикновено съответстват по-точно на известните езикови модели.
Източници
- MDN Web Docs: Map — документация за структурата от данни хеш-таблица, използвана за ефективно преброяване на символи.
- Shannon, C. E. (1951). „Prediction and entropy of printed English.“ The Bell System Technical Journal, 30(1), 50-64.
- Huffman, D. A. (1952). „A Method for the Construction of Minimum-Redundancy Codes.“ Proceedings of the IRE, 40(9), 1098-1101.
- Huffman Coding — Wikipedia