Skip to content

Text Frequency

See which words and phrases dominate a piece of writing. Rank single words, two-word phrases, or three-word phrases, filter out common stop words, and export the table as CSV for a keyword audit.

How Text Frequency works

  1. Paste an article, transcript, or a set of reviews.

  2. Choose word, bigram, or trigram frequency.

  3. Filter stop words to hide “the”, “and”, and friends.

  4. Copy the table or download it as CSV.

When to use Text Frequency

  • Auditing an article before you publish to see which keywords and phrases actually dominate, rather than which ones you think do.
  • Pulling the most common two- and three-word phrases out of a batch of customer reviews, survey answers, or support tickets.
  • Scanning a transcript or a talk script for filler words and stock phrases you lean on without noticing.
  • Producing a quick keyword-density table for an on-page SEO review and exporting it as CSV for a spreadsheet.
  • Comparing the vocabulary of two drafts by ranking each one’s terms and seeing what shifted.
  • Checking whether a single term has been repeated far more than you intended across a long piece.

Examples

Top words with stop words hidden

Input

The cat sat on the mat. The cat is a happy cat.

Output

cat — 3
happy — 1
mat — 1
sat — 1

With stop words filtered, “the”, “on”, “is”, and “a” drop out and “cat” rises to the top at three occurrences. Ties are broken alphabetically, so the single-count terms line up in order.

Two-word phrases (bigrams)

Input

buy now buy now act now

Output

buy now — 2
act now — 1
now act — 1
now buy — 1

Bigram mode counts every adjacent pair as it slides across the text. Density for each pair is its count divided by the number of pair positions, not by the raw word total.

Keeping a phrase together across a stop word

Input

state of the art tools, state of the art design

Output

state art — 2 (as a bigram, with stop words hidden)

Because “of” and “the” are removed before pairs are built, the meaningful pairing “state art” stays visible instead of the phrase being split apart and lost.

How Text Frequency works under the hood

Tokenising comes first. A token is a run of letters or numbers, with apostrophes and hyphens allowed inside it, so “don’t” and “state-of-the-art” each survive as one token while the surrounding commas, quotes, and full stops are dropped. The pattern is Unicode-aware, so accented and non-Latin words are counted rather than mangled. Counting is case-insensitive by default, which merges “Cat” and “cat” into a single entry; turn on Case sensitive to keep them apart.

Filtering happens before any phrase is assembled, and this order matters. When Hide stop words is on, function words like “the”, “and”, and “of” are removed from the token stream first; when Ignore short words is on, tokens shorter than three characters go too. Only then are n-grams built, so “state of the art” collapses to the bigram “state art” rather than being thrown away — the meaningful pairing is preserved instead of split on the words you removed.

For words the tool counts each token; for two- and three-word modes it slides a window of that size along the filtered tokens and counts each resulting phrase. Density is the term’s count divided by the total number of counted positions, expressed as a percentage. For phrases that denominator is the number of phrase positions — filtered length minus the window size plus one — not the raw word count, so a bigram density and a single-word density are not directly comparable.

The table is sorted by count, highest first, with ties broken alphabetically, and it shows the top entries up to the configured limit. Export writes a CSV with term, count, and density-percent columns; any double quote inside a term is doubled so the field stays valid, and terms are quoted, so a phrase opens cleanly in a spreadsheet without breaking on commas. The “Total words” and “Unique terms” tiles count the raw, unfiltered tokens, so they can be higher than what the filtered ranking shows.

Common mistakes

  • Reading density as an absolute target. It is a share of counted positions, and the phrase modes use phrase positions as the denominator — so treat it as a relative diagnostic, not a number to hit.
  • Forgetting that stop-word and short-word filtering reshapes phrases. With filtering on, the bigrams you see are built from the surviving words, so “state art” is expected, not a bug. Turn filtering off to see the literal adjacent pairs.
  • Expecting the Total words tile to match the sum of the ranking. That tile counts every token before filtering, while the ranking counts only what survived the stop-word and length filters.
  • Assuming punctuation joins words. A hyphen or apostrophe inside a word is kept, but a comma or a dash with spaces around it ends a token — so “buy, now” is two tokens, not one phrase.

Frequently asked questions

All tools

Search NeatKit

Jump to a tool, a page, or change the theme.