Built on advanced on-device AI and hardware acceleration to deliver professional-grade performance with uncompromising privacy.On-device AI — professional-grade, fully private.
Keyword and Phrase Extractor Tool
Keyword density, phrases and relevance from any text
- No upload · Runs on your device
- Density % · Frequency or relevance
- Phrases of 2 to 5 words
- Word, ODT, RTF, HTML and text files
Drop a document here
TXT, MD, CSV, HTML, DOCX, ODT, RTF · one file up to 10 MB
Characters: 0
Frequency answers what repeats. Relevance scores phrases by the company their words keep.
Full published lists, not a short sample. Switch to the language of the text.
Runs of consecutive words. Phrases never cross punctuation.
Track one term's count, density and placement.
Changing these re-reads the text; everything else just re-ranks it.
Every export contains the full ranked list, not only the rows on screen.
How to extract keywords from text
Add your text
Paste it into the box, or drop a .txt, .md, .csv, .html, .docx, .odt or .rtf file. Everything is read on your device and nothing is uploaded.
Choose how results are ranked
Frequency ranks by how often a word appears. Relevance uses RAKE, which scores a phrase by the company its words keep, so the subject of the document tends to rise above the words that merely repeat.
Tune the filters
Set the list size and the minimum word length, switch the stop-word list to your language, and decide whether digits, apostrophes and hyphens are part of a word.
Check a target keyword
Type the term you are optimising for to see its count, its density and whether it appears inside the opening 100 words.
Export
Download the full ranked list as plain text or a bare word list. CSV and JSON carry every column, and a batch of documents downloads as a single archive.
Why use a keyword extractor?
Find what a piece of writing actually emphasises: which terms carry it, how densely they appear, which phrases repeat, and whether the term you are optimising for turns up early enough to matter. It all runs on your device, not our servers, so it is safe to run on unpublished drafts and on client work.
Benefits
- Ranked list: see what repeats, with counts and density side by side.
- Relevance ranking: surface the subject of the document, not just its most frequent word.
- Phrases: 2 to 5 word runs, one size or every size at once.
- Placement: know whether a term appears in the opening 100 words.
- Target tracking: check one keyword's count, density and position directly.
- Export: plain text, word list, CSV or JSON — always the full list.
How it works
The text is read once into a compact form, and every filter you change afterwards re-ranks that form rather than re-reading the text. That is why the list updates as fast as you can move a slider, even on a long document.
What the tool does
- Tokenise: split on Unicode letter and number boundaries; apostrophes and hyphens join words when you ask them to.
- Count: tally every distinct word, with case folding unless case-sensitive extraction is on.
- Filter: drop words below the minimum length and words on the chosen stop-word list.
- Rank: by frequency, or by RAKE relevance score, then keep the top N.
- Phrase: count runs of 2 to 5 words on the same stream, never across punctuation.
- Measure: density, first-occurrence position and an early-placement flag for every row.
Reading keyword density
Density is occurrences divided by total words, shown as a percentage. It is the number most keyword tools lead with, and it is more useful than a raw count because it is comparable between documents of different lengths — six mentions in a 300-word post and six in a 3,000-word guide are very different things.
What the numbers mean
- The same formula the mainstream density checkers use, so a figure here is comparable to a figure there.
- Google publishes no density target. Any threshold you read, including the one below, is an editorial convention rather than a rule.
- Above roughly 3% for a single word, or 2% for a phrase, is where SEO tools conventionally suggest a second look. Rows past that carry a flag.
- Below 200 words the ratio is dominated by the word count, so nothing is flagged — in a 20-word note every word present sits at 5%.
- A high density is not automatically wrong. A glossary entry about one term legitimately repeats it.
Frequency versus relevance
Ranking by frequency answers "what repeats", which is often not what the document is about. Relevance ranking uses RAKE, a single-document method that needs no corpus: it cuts the text into candidate phrases at stop words and punctuation, then scores each word by how often it appears inside longer phrases rather than standing alone.
When to use which
- Frequency is right for editing questions — what am I overusing, and how often does my target term appear?
- Relevance is right for the question "what is this document about?", which frequency answers badly.
- RAKE rewards words that keep company with other content words, so multi-word subjects rise above single common words.
- Relevance scores a phrase that appears once as highly as its words deserve, so the count is shown beside the score rather than hidden.
- Neither is search-volume data. Both describe the text in front of you.
Keyword prominence and placement
Where a term first appears matters as well as how often. Every row shows the position of its first occurrence, counted in words, and carries a badge when that position falls inside the opening 100 words.
Using placement
- A term you are targeting that first appears at word 900 is not being introduced, it is being mentioned.
- The opening 100 words is a conventional window for an introduction, a summary or a lead paragraph.
- The target keyword panel reports the same position for the one term you name, including multi-word terms.
- A multi-word target is matched as a contiguous run, so "keyword extraction" does not match "extraction of keywords".
Files you can open
Paste text, or drop a file. Everything is read on your device — there is no upload step for any of these formats, including the word-processor ones.
Supported and unsupported
- Plain text and data: .txt, .text, .md, .markdown, .csv, .tsv and .log.
- Markup: .html, .htm and .xml. Tags are stripped, and scripts and stylesheets are discarded so page code never reaches your keyword list.
- Word processors: .docx, .docm, .dotx, .dotm, .odt, .ott, .rtf and the older .doc — headers, footers, footnotes, lists and tables included.
- Text encoded as UTF-8 or UTF-16 is detected automatically, so an export saved as Unicode from a Windows editor reads correctly.
- PDFs are not read here. The PDF to text tool extracts them, and the result pastes straight back into this page.
How to interpret extracted keywords
Reading the list honestly
- Frequency highlights repetition, which is not the same as importance to a reader or to a search engine.
- Use phrases to catch repeated wording that a single-word list cannot show.
- Apply the stop-word and length filters before drawing any conclusion — an unfiltered list is mostly grammar.
- Compare two drafts by running each one and looking at what moved, rather than at either list alone.
When to use
Blog outlines, student summaries, content QA, competitor page teardowns, and quick "what did I overuse?" checks.
Ideal use cases
- Editing: spot overused words before a reader does.
- Drafting: find phrase echoes across a long piece.
- SEO review: check a target term's density and placement in one pass.
- Teaching: demonstrate what tokenisation and stop words actually do.
- Privacy: analyse unpublished or client text with no upload.
- Prep: shortlist terms before taking them to a research tool.
Facts
How the numbers are produced, so you can judge what they are worth.
Key points
- Stop-word lists are full published lists, not a handful of words: 179 entries for English, and comparable lists for Spanish, French, German, Portuguese and Indonesian.
- A word is a run of Unicode letters and, optionally, digits — underscores are separators, so snake_case counts as two words.
- Phrases never cross punctuation, so two words either side of a full stop are not counted as a phrase.
- Applying the unigram filters to phrases BREAKS a phrase at a removed word rather than gluing its neighbours together.
- Density uses total words as the denominator, including the words the filters removed from the list.
- High frequency is not the same as topical importance or search intent.
Best practices
Cross-check with your editorial or SEO workflow rather than treating any single list as an answer.
Quality tips
- Clean markup to plain text first, or open the .html directly and let the tool strip it.
- Try several minimum-length values; the right one depends on the language.
- Switch the stop-word list to the language of the text, not the language of the interface.
- Read density and placement together — an early mention at low density often beats a late one at high density.
- For code or logs, expect identifiers to dominate; that is the text, not a fault in the count.
When not to rely on it
- Lemmatisation or stemming: "run" and "running" are counted as different words.
- Legal, medical or compliance-grade keyword reporting.
- Search demand, competition or intent — none of which any text-only tool can know.
- Languages that do not separate words with spaces, where a word-boundary count is not meaningful.
Recommended keyword workflow
- Extract with relevance ranking first to see what the document is about, then switch to frequency to audit repetition.
- Name your target keyword and check its density and placement before editing anything.
- Cross-check with the readability checker, the text analyzer and the word frequency counter.
- Validate the shortlist with a dedicated research tool for intent and demand.
Limitations and compatibility
Tokenisation is rule-based rather than linguistic, so it does not lemmatise, and it assumes words are separated by spaces or punctuation. Free opens documents up to 10 MB; Pro is limited by your own device instead, and queues up to 20 documents at once. The page needs JavaScript, and everything after that runs offline.
For a fuller picture of a draft, pair this extractor with the text analyzer, the word frequency counter, the readability checker and the word counter.
Counting runs off the main thread, so the page stays responsive while a long document is analysed, and changing a filter re-ranks the existing results instead of re-reading the text.
Frequently asked questions
How does the keyword extractor find keywords?
The tool splits your text on Unicode letter and number boundaries, counts how often each word appears, and ranks the result. You control the list with a size slider (5 to 200) and a minimum word length (1 to 10), and can sort by frequency or alphabetically. Each row also shows keyword density, the position of the word's first appearance, and a badge when it appears inside the opening 100 words. It is a description of your text, not search-volume data.
What is keyword density and what is a good number?
Density is how many times a term appears divided by the total number of words, as a percentage — the same formula the mainstream density checkers use, so the figures are comparable. There is no official target: Google has never published a density threshold. The convention among SEO tools is to treat more than about 3% for a single word, or 2% for a phrase, as worth a second look, and this tool flags those rows. On a document under 200 words the ratio is dominated by its denominator, so nothing is flagged at all.
What is the difference between frequency and relevance ranking?
Frequency answers "what repeats". That is often not what the document is about: in an article about keyword extraction, words like "content" and "words" usually repeat more often than "keyword extraction" does. Relevance ranking uses RAKE, which builds candidate phrases between stop words and punctuation and scores each word by how often it appears inside longer phrases rather than alone. It needs no corpus and no model, and it usually surfaces the subject rather than the filler.
What are stop words and how do they change results?
Stop words are very common words like "the", "and" or "of" that carry little meaning. The filter uses a full list — 179 entries for English, and comparable lists for Spanish, French, German, Portuguese and Indonesian — so the ranking skews toward words that actually say something. You can also switch the list off entirely, include or exclude digits, treat apostrophes and hyphens as part of a word, and run case-sensitive extraction.
What are phrases (n-grams) and how are they built?
Phrases are runs of 2 to 5 consecutive words, useful for spotting repeated wording that a single-word list misses. Turn phrases on and pick a size, or show every size at once. Phrases never cross punctuation, so a full stop between two words means they are not counted as a phrase — that is the difference between a phrase somebody wrote and two words that happened to end up next to each other. You can also apply the minimum-length and stop-word filters to phrases, in which case a removed word breaks the phrase rather than gluing its neighbours together.
Is my text private, and does it work offline?
Yes to both. Every step — reading the file, counting the words, building the phrases, writing the export — happens on your own device, and nothing is ever sent anywhere. There is no upload and no server copy of your text. Once the page has loaded it keeps working with the network disconnected.
What file types can I open?
Plain text and markup — .txt, .text, .md, .markdown, .csv, .tsv, .log, .html, .htm and .xml — and word-processor documents: .docx, .docm, .dotx, .dotm, .odt, .ott, .rtf and the older .doc. Markup is stripped to readable text first, and scripts and stylesheets are discarded so page code does not end up in your keyword list. PDFs are not read here; the PDF to text tool extracts them and you can paste the result back.
What can I export?
Four things, and all of them contain the FULL ranked list rather than only the rows on screen. Plain text gives word, count and density separated by tabs. Word list gives just the words, one per line, for pasting into an ad platform. CSV carries every column and opens cleanly in Excel. JSON carries the same data plus the document statistics. With more than one document loaded, everything downloads as a single archive.
How large a document can it handle?
Free opens documents up to 10 MB, which is roughly 1.6 million words — around twenty full-length novels. Pro removes the size cap and works up to what your own device can handle, and lets you queue up to 20 documents at once. The work runs off the main thread, so a large document does not freeze the page while it is counted.
Will results match Google or an SEO suite?
No, and they are not meant to. This tool describes the text you give it: what it repeats, how densely, in what phrases and where. It has no search volume, no competition data, no SERP intent and no semantic clustering, so the numbers will differ from Ahrefs, Semrush or Google Keyword Planner. Use it to see what a piece of writing actually emphasises, then validate the shortlist with a research tool.
from 1,191 ratings
Rate this tool
Tap a star — it takes a second