Word Frequency Counter
Paste text to see which words it leans on, ranked by how often they occur, with each word's share of the total.
—
| # | Word | Count | Share |
|---|
What this tool does
A word-frequency count is the quickest way to see what a text is actually about and where it repeats itself. Writers use it to catch overused words, editors to check keyword density, students to find the terms a passage relies on, and anyone pasting text into a form to spot repeated headings or boilerplate. This page does the count as you type and ranks the words from most to least frequent.
The count is over Unicode letters and digits, so it works on Cyrillic, Greek, Arabic or CJK text as well as English — the same word boundary rule applies, rather than an English-only dictionary.
Method
The text is split with the Unicode-aware pattern
[\p{L}\p{N}][\p{L}\p{N}'’-]*, which takes a word to be a letter or digit followed by more
letters, digits, apostrophes or hyphens. Each token is lowercased unless "case sensitive" is ticked,
counted in a map, then sorted by count descending and alphabetically on ties. The share column is the
count divided by the total number of words.
Example
For “the cat the dog the” the top entry is the with a count of 3 and a share of 60%.
What counts as a word
A token is a run of letters or digits, so contractions and hyphenated compounds stay together and numbers count as words. Punctuation on its own is not a token, and case is folded by default — “The” and “the” are one entry, displayed in the form it was first seen.
This is a practical definition rather than a linguistic one. It matches how a search engine and a readability checker split text closely enough for keyword work, and it deliberately does not do stemming or lemmatisation: “run”, “runs” and “running” are three entries. If you need them merged, that is a different tool with a stemming dictionary, and the result depends on which dictionary.
Reading the percentages
The share is the word's count divided by the total number of tokens, so the percentages over the whole list sum to 100%. That is useful for keyword density — how much of a document is really about one term — and it is not the same as “share of unique words”, which would weight every entry equally.
| Text | Token | Count | Share |
|---|---|---|---|
| the cat the dog the | the | 3 | 60% |
| the cat the dog the | cat | 1 | 20% |
| the cat the dog the | dog | 1 | 20% |
Stop words and why the top of the list is boring
In any ordinary prose sample, the highest-frequency words are “the”, “a”, “of”, “and” — they carry almost no information about the topic. That is not a flaw in the counter; it is what frequency distribution looks like. If you want the words that characterise a text, you either filter stop words or look further down the list, where the topic vocabulary appears.
A common trap is to treat a high count as a signal of importance. “The” at 8% is not the document's subject. The useful comparison is against a baseline: a word that is rare in general English but 2% here is far more telling than a stop word at 10%.
What it is useful for
- Keyword density — checking whether a page is genuinely about its target term.
- Translation and glossaries — the repeated terms are the ones that must be translated consistently.
- Editing — a word repeated far more than expected is often a tic worth cutting.
- Corpus checks — comparing two documents by their top terms reveals whether they are actually about the same thing.
- Language learning — frequency lists are the basis of most vocabulary order.
Case sensitivity and the display form
With case folding on, entries merge and the list shows the form first encountered. Turning it off splits “The” and “the”, which is occasionally what you want — for example when checking whether a heading capitalisation is consistent across a document.
Large texts and the CSV export
The summary and the CSV are computed over the whole text, not over the rows shown on screen. The table displays the top 50 entries, but “N words, M distinct” is the true total, and the copied CSV contains every word, not just the visible ones. That distinction matters when the visible list is truncated: a summary taken from the first 50 rows would badly under-report both counts.
Frequently asked questions
What does this tool do?
It splits your text into words and counts how often each one occurs, showing the words ranked from most to least frequent with their percentage share of the total.
How are words defined?
A word is a run of Unicode letters and digits, optionally containing an apostrophe or hyphen, so "don't" and "well-known" count as single words. Everything else — punctuation, symbols, spaces — is a separator.
Is it case-sensitive?
By default no: "The" and "the" are counted together, and the most common spelling is shown. Tick "case sensitive" to keep them apart.
What is the percentage column?
Each word's count divided by the total number of words counted, so the column sums to 100%. It is the share of the text each word accounts for.
Can I get the result as data?
Yes. "Copy CSV" puts the whole table on your clipboard as comma-separated values, ready to paste into a spreadsheet.
Is my text uploaded?
No. Counting runs entirely in the page; nothing is sent anywhere.
Go deeper
Longer explanations of the problems this tool solves:
Sources
- Unicode Standard — the
\p{L}and\p{N}general categories used for word boundaries. - Unicode Text Segmentation (UAX #29) — background on word boundaries.
Everything runs in your browser — nothing you type is uploaded.