FreeToGenerate.com

100% free · no sign-up · everything in your browser

Sizing the font by the count makes a word twice as common cover four times the area. Sizing by the square root makes the area match the count instead.

Pick the language your text is in, not the language of this page. The lists are a judgement call — no official one exists for any language.

60

What this cloud is claiming

Most frequent word
word
Share of the ink it takes
16.0%
Share of the words it is
16.0%
Biggest word vs smallest, by area
8×

These two match, so the picture is truthful.

A reader judges a word by how much ink it covers. The two rows above should be the same number; under font-size scaling they are not.

Also available in: Español · Português · Français · العربية

Word cloud generator

Paste text, get a word cloud — sized so the ink each word takes matches how often it actually appears, with the distortion measured for you.

What is a word cloud generator?

It counts the words in a piece of text and draws them at sizes that reflect how often each one appears. Common words come out big, rare ones small, and the shape gives a rough sense of what a document is about at a glance. They turn up in report summaries, survey write-ups, conference posters and classrooms.

This one runs entirely in your browser. Your text is never uploaded, the cloud is drawn on a canvas on your own machine, and the PNG you download is produced there too.

It also does one thing differently, and the difference is the reason the page exists: it sizes words so that the amount of ink each one covers is proportional to its count. Almost every other generator does not, and the result overstates the common words badly.

How to use the word cloud generator

  1. Paste your text. Any length. The cloud redraws as you type, and the panel underneath updates with it.
  2. Choose the sizing and the language. “Area” is the honest setting and the default; “font size” is what most tools do, kept so you can see the difference for your own text. The stop-word list should match the language your text is in, not the language of this page.
  3. Adjust how many words, then download. The slider runs from ten to a hundred and fifty words. Download gives you a PNG, generated in your browser with no watermark.

Most word clouds overstate the common words

A word cloud encodes one number — how often a word appears — as one visual property. The question is which property. Almost every generator sets the font size in proportion to the count. But a reader does not judge a word by its height; they judge it by how much of the picture it covers. And area grows with the square of the font size.

So a word twice as common is drawn twice as tall and ends up covering four times the area. It looks four times as important when it is twice as frequent.

On real prose this compounds badly, because word frequencies follow Zipf's law: the most common word appears about twice as often as the second, three times as often as the third, and so on. Take a Zipf distribution of thirty words. The most frequent is ten times as common as the tenth — and under font-size scaling it covers a hundred times the area. Against the thirtieth word it is thirty times as frequent and 918 times the area. The most frequent word ends up taking 62.0% of all the ink in a picture where it accounts for 25.0% of the words.

The fix is exact and costs nothing: set the font size to the square root of the count. Area is size squared, so the square root cancels it out and the area is proportional to the count again. With that setting the most frequent word takes exactly 25.0% of the ink — the same as its share of the words, to the decimal. That is not an approximation that happens to work on this example; it is an identity, checked here over five hundred randomly generated distributions and holding to within one part in a trillion every time.

The panel under the cloud shows both numbers for your own text. When they match, the picture is telling the truth.

Honest limitations

Even at its best, a word cloud is a weak way to show data. It has no axis, no zero, no ordering you can rely on, and the position of a word carries no meaning at all — it is wherever the layout happened to fit it. Long words look bigger than short ones at the same size simply because they have more letters. If you actually need to compare frequencies, a bar chart does it better and this page will not pretend otherwise. What a cloud is genuinely good at is being glanced at.

The layout packs rectangles, not letter shapes. Nesting words into each other's descenders looks tighter, and several tools do it, but then the ink a word covers stops being a simple function of its size — and the honesty this page is built on depends on that relationship staying simple. Rectangles keep the claim true.

The stop-word lists are a judgement call and are openly labelled as one. No official list exists for any language, and every published one disagrees with the others. These cover the function words that would otherwise swamp any cloud. Choose the language of your text, and turn the list off entirely if you want the raw counts.

Words are counted as written. There is no stemming and no lemmatisation, so “run”, “runs” and “running” are three different words, and a plural is separate from its singular. Doing otherwise needs a dictionary per language and gets the ambiguous cases wrong; counting exactly what is on the page is at least a thing you can verify.

The counting and sizing carry 45 assertions, including the identity above over five hundred distributions and a control confirming that font-size scaling never satisfies it. The tokeniser is built on Unicode letter properties rather than the Latin alphabet, so Arabic, accented Spanish and Portuguese, and French survive intact — a word counter built on `[a-z]` would be wrong in four of the five languages this site ships in.

Why is it free?

It is counting and a canvas, both running on your own machine. Nothing is uploaded, there is no account, and the PNG has no watermark because there is no cost to recover by putting one there.

If you want the frequencies as numbers rather than as a picture, the word counter on this site gives you those, also without uploading anything.