Keyword Grouper
Group similar keywords using PolyFuzz TF-IDF fuzzy matching at scale.
#about
Fast fuzzy keyword grouping using PolyFuzz TF-IDF similarity.
Compares keywords against themselves and groups based on adjustable similarity threshold (0.5-0.99, default 0.80).
Higher thresholds create stricter matching and smaller clusters.
Note: uses TF-IDF matching, not semantic/embedding matching.
Streamlit app
- Platform
- Browser-based (no installation required)
- Input
- CSV file with keywords (minimum 2 keywords)Select column containing keywords
- Output
- CSV with keyword clusters and match scores
- Category
- Keyword Research
Use cases
- Quick keyword organisation before deeper analysis
- Grouping similar long-tail variations
- Initial clustering at scale
- Finding keyword patterns by text similarity
#features
- PolyFuzz TF-IDF similarity matching
- Similarity threshold slider (0.5-0.99, default 0.80)
- Auto UTF-8/Latin-1 encoding handling
- Unclustered keywords marked as [No Cluster]
- Results sorted by cluster size descending
- Summary: total keywords, clustered count, cluster count
#how-to-use
- Upload CSV with keywords
- Select the keyword column
- Adjust similarity threshold (higher = stricter)
- Download CSV with cluster assignments
#faq
- Will synonyms end up in the same group?
- No. TF-IDF matching scores how much wording two keywords share, not what they mean, so 'sofa bed' and 'couch that converts' will never group however you set the threshold. It excels at collapsing reworded variants of the same phrase; use the Semantic Keyword Clustering tool when you need meaning-based grouping.
- What are the input requirements?
- A CSV only (Excel is not accepted), read as UTF-8 with an automatic Latin-1 fallback. Any column can hold the keywords since you pick it from a dropdown, and you need at least 2 non-empty keywords for the matcher to run.
- What do the output columns mean?
- Keyword is your original term, Matched To is the keyword it scored highest against, Match Score is that TF-IDF similarity, and Cluster Name is the group representative PolyFuzz assigned. Clusters containing only one keyword are renamed [No Cluster], and results are sorted by cluster size so the biggest groups appear first.
/contact
Want me to run this for you? I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.