Word Frequency Counter

A Chinese paragraph is not one word.

Runs locally

Runs entirely in your browser — open DevTools and check the Network tab

Most frequent
0Times it appears
Words (whitespace)Counting unit used
0Total tokens
0Distinct tokens
0Appear exactly once
Distinct / total
0CJK characters
0Words

Frequency table

Nothing to show yet — type or paste some text.

Paste text and see what you actually repeat, ranked. English is counted by words; Chinese, Japanese and Korean are counted by characters or by two- and three-character phrases, because splitting those languages on spaces produces one enormous meaningless token.

Why most frequency counters return garbage for Chinese

The standard implementation is one line: split the text on whitespace and count the pieces. That is correct for every language that separates words with spaces, and it is catastrophic for the ones that do not. A four-hundred-character Chinese article contains no spaces, so the whole article becomes a single token with a count of one, and the top-ten list has exactly one useless row in it.

Bilingual text is worse rather than better, because the result looks plausible. The English words are counted properly and appear in a normal-looking ranking, while the entire Chinese half sits in one row at the bottom — so nothing looks broken, and every conclusion you draw about your own repetition is wrong.

What this tool counts instead

On automatic, the counting unit is chosen from the content: whitespace words when the text is mostly Latin script, two-character phrases when it is mostly CJK. You can override it — single characters give you a character frequency, which is what Chinese typographers and language teachers usually want, and three-character phrases surface longer set terms and names.

The one thing we will not do is claim more precision than the method has. CJK phrases here are n-grams: every window of two or three adjacent characters, counted. That is not dictionary segmentation, so the list will contain fragments that straddle two real words. For finding what you over-repeat it is more than good enough, and saying so is more useful to you than a confident-looking list of wrong words.

How to read the numbers

The distinct-to-total ratio is a rough measure of vocabulary variety in a single piece of text. A low ratio in a long document usually means a handful of phrases are doing all the work; a very high ratio in a short one means little repetition, which is normal rather than good. Compare a text against another version of itself rather than against an absolute target, because the ratio falls naturally as documents get longer.

The count of tokens appearing exactly once is the most practical column for editing. In a translation or a technical document, terms that appear once are the ones most likely to be inconsistent with a synonym used elsewhere for the same thing — and inconsistent terminology is the defect readers notice without being able to name it.

Stop words, and when excluding them hurts

Function words dominate any frequency list: the, of, and in English, and their equivalents in Chinese. Excluding them is on by default because the list is more useful without them, and this page uses one shared list for both scripts so the counting is consistent with our keyword density tool.

Turn the exclusion off when the function words are the point. Checking whether a translation has drifted into unnatural connective density, auditing a style guide rule, or measuring how often a legal document says "shall" all need those words in the count. There is no universally correct stop list, which is exactly why it is a switch rather than a hidden behaviour.

Counted in your browser

Everything happens in this tab. Frequency analysis is usually run on drafts, transcripts, private correspondence and unpublished research — the kind of text people would think twice about uploading as a file but paste into a web tool without hesitating, because it is "just text".

There is no request to intercept here. Open DevTools, watch the Network tab, and paste. You can also disconnect your network and reload: the page still works, because the counting never needed a server.

Frequently asked questions

Why do other frequency counters show one huge token for my Chinese text?

Because they split on whitespace and Chinese has none, so the entire passage becomes a single token. This page counts characters or 2- and 3-character phrases instead.

Is the Chinese phrase list real word segmentation?

No. It is n-grams — every window of adjacent characters. Some entries are fragments. It is an estimate, and it is reliable for spotting over-repetition rather than for building a dictionary.

Are Data and data counted together?

Yes by default, because that is usually what you want. Turn on case sensitivity when you are auditing brand names, code identifiers or acronyms.

How many entries does the table show?

The top thirty by count. The summary figures above it — total tokens, distinct tokens and how many appear only once — cover the whole text.

Is my text sent anywhere?

No. The analysis runs in JavaScript in this tab and works with the network disconnected.