Stop word remover

Strip the, and, of and the rest of the filler out of any text — with built-in lists for 8 languages, your own custom words, and a keep list for terms that must survive. Runs entirely in your browser; nothing is uploaded.

Try:
Filtered text

Remove stop words from text

Stop words are the high-frequency filler of a language — the, and, of, is — that carry grammar but almost no meaning. Search engines, keyword extractors, word clouds and text classifiers usually drop them before they do anything else. Paste your text, pick a language, and this tool returns the same text with the filler taken out. It all runs locally in your browser with WebAssembly; the text never leaves your machine.

Worked example

Paste:

This is a test of the emergency broadcast system.

With the English list selected, the result is:

test emergency broadcast system.

Five of the nine words (this, is, a, of, the) were stop words. Switch Output to Summary statistics and the same text reports the counts instead:

Total words: 9
Removed: 5 (55.56%)
Kept: 4
Distinct stop words removed: 5

Switch it to Removed words + counts and you get an audit list, most frequent first — for the cat and the dog and the bird:

3	the
2	and

Options

How matching works

Matching is whole-word and tokenizer-based, never a substring replace. the never touches the the inside theatre, and a never eats the a in apple. Contractions stay a single token, so don't matches the list entry don't rather than being split into don and t. Accented and non-Latin words are handled the same way, which is why the Russian list works on Cyrillic text.

After a word is removed, the space it left behind is repaired: the output reads the cat sat.cat sat., not cat sat . with a stranded space before the full stop. Line breaks and paragraph structure are preserved.

Good for

Limits and edge cases

FAQ

Which languages have a built-in stop-word list?

Eight: English, Spanish, French, German, Italian, Portuguese, Dutch and Russian. Each list is embedded in the tool, so nothing is downloaded at run time. If your language isn't there, set the list to None and paste your own words into Extra words to remove — that path works for any language, including ones written in a non-Latin script.

Will removing "the" also break words like "theatre" or "another"?

No. The text is split into words first and each whole word is compared against the list, so the only ever matches a standalone the. theatre, another and them are untouched. This is the main difference from doing a find-and-replace in a text editor, which happily eats the middle of words.

How do I stop "not" and "no" from being removed?

Put them in Words to keep. That list wins over everything else, including the built-in list and your own custom words. It matters more than it sounds: the food was not good becomes food good without a keep list — the opposite of what the sentence said. For any sentiment or intent work, keep the negations.

Can I see exactly which words were removed?

Yes — set Output to Removed words + counts. You get one line per distinct stop word with the number of times it was dropped, most frequent first, which is the quickest way to sanity-check a custom list before running it over a whole corpus. Summary statistics gives the totals instead: words in, words removed, the percentage, and how many distinct stop words were involved.

Is my text uploaded anywhere?

No. The filter is compiled to WebAssembly and runs inside your browser tab, so the text you paste never leaves your device. The page keeps working offline once it has loaded.

Does this also do stemming or lemmatisation?

No — that's a different job. Stop-word removal drops whole words from a fixed list; stemming rewrites the words that remain (runningrun) so that inflected forms collapse together. In a typical pipeline you filter stop words first and stem afterwards, using a dedicated stemmer.

Developer & Automation Access

Run it from the terminal

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

gizza tool stopword-filter "Paste the text to filter…"

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/stopword-filter/?text=Paste%20the%20text%20to%20filter%E2%80%A6&language=english&custom_words=brand%2C%20click%20here%2C%20lorem&keep_words=not%2C%20no%2C%20without&case_sensitive=true&remove_punctuation=true&output=text

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