Frequency distribution

Build a character, byte, or n-gram frequency table from text or hex — counts and percentages, ranked most to least frequent. Runs in your browser; nothing is uploaded.

Frequency table (most frequent first)

About this tool

Frequency distribution counts how often each symbol appears in your input and ranks the symbols from most to least frequent, with both a raw count and a percentage of the total. It's the building block of classic frequency analysis.

Choose what to tally:

You can read the input as plain text or as a hex string (whitespace and an optional 0x prefix are ignored) — handy for analyzing binary or encoded data.

Privacy

Everything runs in your browser via WebAssembly — your input is never uploaded to a server. You can also run it from the gizza CLI or inside a gizza chat (which return the distribution as structured JSON with counts and percentages).

Common uses

FAQ

Can I count 'A' and 'a' as the same letter?

Yes — turn case sensitive off and characters and n-grams are folded to lowercase before tallying, so The and the land in the same bucket. Byte mode ignores the switch: raw bytes have no case, so 0x41 and 0x61 always stay separate there.

Do the n-grams overlap?

Yes. N-gram mode slides a window one character at a time, so banana with size 2 yields ba, an, na, an, naan and na each count twice. The size must be at least 1; size 2 gives the classic bigram table used in cipher analysis.

How do I analyze binary data instead of text?

Set the input kind to hex and paste the bytes as a hex string — whitespace and a leading 0x are ignored. An odd number of hex digits or a non-hex character is reported as an error rather than silently skipped, so you know the paste was clean.

Why don't byte counts match character counts for my text?

UTF-8. ASCII letters are one byte each, but é is two bytes and most emoji are four, so byte mode splits one character across several 0xNN entries. Use char mode for human-readable text and byte mode when you care about the raw encoding.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool frequency-distribution "Paste text to analyze…"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/frequency-distribution/?input=Paste%20text%20to%20analyze%E2%80%A6&input_kind=text&mode=char&n=2&case_sensitive=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.