# Topical map tools and generators, tested on one site

I gave one made-up business to six contestants on one day: free generators and clusterers, a chat assistant and a script that compares Google's results. Each output is scored on the same seven checks beside a map built by hand, and every raw output is here to download.

By Kevin Jeppesen, AI growth engineer. Founder, FrameworkSEO & Ascendily. Updated 2026-11-13. Source: https://frameworkseo.com/learn/topical-maps/topical-map-tools

## Key takeaways

- On one made-up salon with 42 real searches, no free tool produced a topical map I would publish; only the map built by hand passed all seven checks.
- A chat assistant given the salon's real searches kept 9 of 11 same-page pairs together with 1 wrong merge, the best grouping in the test; from a prompt alone it used no searches at all.
- The free one-topic generator wrote 50 target searches, 25 of them with no measured US volume in Google Ads data, and gave none of the salon's six services a page.
- Clustering by shared results depends on where and when Google's results are pulled: 39% of web addresses came back six hours later, and 30% matched between a US and a Portland setting.
- Use a tool to collect and sort searches, and keep the decisions about what the business sells, page or section, links, order and existing pages for a person.

## The verdict, and the salon every tool was given

No tool I ran produced a topical map I would publish. The best grouping came from pasting the business's real searches into a chat assistant on a paid plan. Every tool that started from one topic, or used no search data, invented pages.

A topical map is the plan of every page a site needs, grouped, linked and put in the order to publish them. If that is new to you, [What is a topical map?](https://frameworkseo.com/learn/topical-maps/what-is-a-topical-map) explains it. This lesson tests the tools that promise to build one.

### The business

Every contestant got the same **made-up dog grooming salon in Portland, Oregon**, the worked example from [How to build a topical map, step by step](https://frameworkseo.com/learn/topical-maps/how-to-build-a-topical-map). One address, six services: full grooms, bath and brush, nail trims, de-shedding, dematting and puppy grooming. Its site has a home page, a prices page, an about page, a contact page and two old blog posts.

The salon is made up. Its 42 searches are real, with US monthly volumes from Google Ads data read on 12 November 2026. That lesson also holds a map of the salon built by hand, which is the yardstick here.

### Why one business

The roundups that rank for this subject list tools with features and prices. A few say they tested, and none I read publishes what the tools returned. So I ran every contestant on one business on one day, 13 November 2026, and kept every output word for word.

[Download the raw outputs of the test](https://frameworkseo.com/learn/topical-map-tools/topical-map-tools-test-raw-outputs.zip) (ZIP: the 42 searches, both prompts, every tool's output word for word, Google's top 10 for each search from two locations, the clustering and scoring scripts, and the scorecard as a CSV.)

## How the test ran, and the tools I could not run

All runs were on 13 November 2026, Bangkok time, the evening of 12 November in UTC. Each contestant got the salon in the form its input box accepts. A generator takes a topic. A chat assistant takes a description. A clusterer takes a list of searches. Nothing was edited after it came back.

| Contestant | Kind | What it was given | Cost and time |
| --- | --- | --- | --- |
| A free AI topical map generator (RankYak's free tool page) | Language model | The topic "dog grooming" and the audience "dog owners in Portland, Oregon looking for a grooming salon" | Free, under 30 seconds |
| A chat assistant, the prompt only (Claude Sonnet 5.5, run twice) | Language model | The business in four sentences, then "Create a topical map for our website." | A chat plan, 30 to 40 seconds a run |
| A chat assistant with the 42 searches (Claude Sonnet 5.5) | Language model | The same four sentences plus the 42 searches and their volumes | A chat plan, about 75 seconds |
| A free AI keyword clusterer (RankYak's free tool page) | Language model | The 42 searches (it takes up to 50) | Free, under 30 seconds |
| A free word grouper (NEURONwriter's free tool) | Word similarity | The 42 searches, default settings | Free, under 10 seconds |
| Clustering by shared results (a short script on Google's top 10) | Shared results | The 42 searches, pulled once set to the United States and once to Portland | $0.084 of search data per pull |
| By hand in a spreadsheet (the map from the build lesson) | A person | The site, the 42 searches, Google's results | The longest by far |

The chat prompt is one a salon owner could write: the city, the six services, the six pages the site already has, and "Create a topical map for our website." The chat runs went through Claude's command line with web search and files switched off, so the model saw the prompt and nothing about the salon beyond it. I ran the prompt twice, minutes apart, because a chat answer changes from run to run.

### What I could not run

- **A one-topic generator** whose "Generate my topical map free" button opened a sign-up page. A test without an account was not possible.
- **A free keyword clusterer** that sells itself as "no login" put a robot check in front of the result. I do not get past robot checks with a script, so it is out.
- **A free topical map creator** that answered with a browser check and a 403 error.
- **Every paid tool.** I did not buy subscriptions to test them, so I do not review them. The section on paid tools below describes the kind of work each does, from their own public pages.

Tools that sell SEO software are named in this lesson without links. That is a rule across this library, not a judgment of any tool.

## The seven checks a topical map has to pass

A topical map gives every real search one owner page, says what kind of page each one is, decides page or section, plans the links and the order, places the pages the site already has, and holds nothing the business does not sell. Those are the seven checks. A plan that misses one leaves that decision to whoever writes the pages.

1. **One owner page per real search.** Every search a buyer types sits on exactly one page, and two pages never chase one need. Two pages on one need compete with each other, which is called [keyword cannibalization](https://frameworkseo.com/learn/topical-maps/keyword-cannibalization).
2. **Page types.** Each row says whether it is a service page, a price page, a guide or a gallery, because each type is written and built differently.
3. **Sections versus pages.** Many searches belong on a page as a section, not as a page of their own. How to tell is in [When a search deserves its own page](https://frameworkseo.com/learn/topical-maps/page-or-section).
4. **Links.** Which page links to which, so every guide sends readers to the page that sells.
5. **Order.** What goes live first, and why.
6. **The site's existing pages.** Each address that exists today is rebuilt, kept, merged or redirected. A plan that ignores them can put a new page on top of one that already ranks.
7. **Nothing the business does not sell.** No page for an offer the business does not have, and no page that sends readers to someone else.

Koray Tuğberk Gübür, whose work made the topical map a standard SEO deliverable, says the same in fewer words: ["Asking ChatGPT for 20 types of X won't give you a topical map about X"](https://medium.com/@ktgubur/3-suggestions-about-topical-authority-1cd73963a9cb) (2024). A list of topics becomes a map only when these decisions are made.

### How the grouping was scored

For the tools that took the 42 searches, I also counted pairs. The map built by hand decided 35 of the 42 searches. 33 of them are pages or sections, and 11 pairs of those belong on one page, such as "can you shave a husky" and "should you shave a double coated dog". For each tool I counted how many of those 11 pairs it kept together, and how many pairs it merged that the hand-built map keeps apart.

> **The yardstick is not right by default:** The hand-built map is mine, scored with my checklist, so it passing every check proves little, and it left 7 of the 42 searches unplaced. What matters is the disagreements. Each one is listed below with the evidence, so you can decide whether the tool or the map got it right.

## The scorecard

The map built by hand passed all seven checks. Both chat assistant runs passed two. No free tool passed a single check outright.

![A grid of seven contestants against seven checks. The map built by hand has seven full marks, the chat assistant with and without the searches two full marks each with most others partial, and the free generator, AI clusterer, word grouper and shared-results script have no full marks.](https://frameworkseo.com/learn/topical-map-tools/scorecard.webp)

*Full marks only where a decision was made: page types and existing pages for the chat assistant, every check for the map built by hand.*

| Check | Free AI generator | Chat, prompt only | Chat with the 42 searches | Free AI clusterer | Free word grouper | Shared results | By hand |
| --- | --- | --- | --- | --- | --- | --- | --- |
| One owner page per real search | No: 50 searches it wrote, 25 with no measured volume | No: no searches at all | Partly: 9 of 11 pairs, 1 wrong merge | Partly: 9 of 11 pairs, 8 wrong merges | No: 3 of 11 pairs, 21 wrong merges | Partly: 0 or 1 of 11 pairs, 1 wrong merge | Yes |
| Page types | No: no page for any of the six services | Yes | Yes | Partly: intent labels | No | No | Yes |
| Sections versus pages | No | Partly | Partly: 2 searches made sections | No | No | No | Yes |
| Links | No | Partly: rules only | Partly: rules only | No | No | No | Yes: 78 links |
| Order | Partly: pillars numbered | Partly: phases by week | Partly: phases by week | No | No | No | Yes |
| The site's existing pages | No | Yes | Yes | No | No | No | Yes |
| Nothing the business does not sell | No | Partly | Partly | No | No | No | Yes |

Read the table by row as well as by column. Check 1 is where tools are strongest, because grouping searches is what they are built to do. Checks 3 to 7 are where the free tools scored almost nothing (the generator's numbered pillars are the one partial mark), because those are decisions about the business, and a tool cannot see the business.

The pair counts in one line: the chat assistant with the searches kept 9 of 11 pairs with 1 wrong merge. The AI clusterer kept 9 with 8 wrong merges. The word grouper kept 3 with 21 wrong merges. The shared-results script kept 1 of 11 with the location set to the United States and 0 with it set to Portland.

## Generators: a tidy map, half of it unchecked

The free generator turned "dog grooming" and an audience line into 6 pillars and 44 articles in under 30 seconds. It looks like a map. Half of its target searches had no measured demand, and none of the salon's six services got a page.

### What it did well

- It numbered the pillars in an order to build them and gave every article an intent label.
- Several of its articles match real searches in the salon's list: how much to tip a dog groomer, how long grooming takes, how to trim dog nails.
- It wrote readable titles, and it took the audience line into account, with Portland or Oregon in 8 of them.

### What it got wrong

Its input box takes only a topic and an audience, so it could not know the six services or the six existing pages. I scored it the way an owner would use it. I checked its 50 target searches against Google Ads data for the United States on 13 November 2026. 25 of the 50 came back with no measured volume, and 5 more at 10 a month. A blank does not prove that nobody searches. The tool's own page promises "the phrase a searcher types" for every article, and nothing in the output says any of them was checked.

- **No service pages.** Its pillars are topics, such as "Grooming by breed and coat type". A full groom, a nail trim and dematting appear only inside articles like "Deshedding treatments: are they worth it?", so nothing on the map sells the six things the salon sells.
- **Pages that send buyers away.** "Best dog groomers in Portland, OR", "Independent groomer vs chain pet store grooming" and "Salon grooming vs mobile grooming" would have the salon writing about its competitors.
- **Things the salon does not sell.** "Self-serve dog wash in Portland", "Best dog clippers for home grooming" and "Teeth cleaning and ear cleaning add-ons at the groomer", with no way to know whether the salon offers any of them.
- **Pages no salon wants.** "What to do if a groomer injured your dog" and "Fleas found at the groomer: what happens next".
- **Three pages for one need.** The pillar on choosing a salon, "Best dog groomers in Portland" and "Dog groomers near me: how to pick one in Portland" all answer the same question.

Koray's own advice on these tools is short: ["Do not believe auto-generated topical maps."](https://medium.com/@ktgubur/3-suggestions-about-topical-authority-1cd73963a9cb) (2024). One roundup that ranks for this subject puts a number on it, saying 30 to 40% of the keywords a raw chat assistant writes have zero searches, without saying how it counted. On this salon, half of a generator's searches had no measured volume: a different count, and the same warning.

## A chat assistant: weak from nothing, strong with your searches

From the four-sentence description, the chat assistant wrote a sensible plan with no searches in it. Given the 42 searches as well, it kept 9 of the 11 pairs together with 1 wrong merge, the best grouping in the test, in a single run. It also had more to work with than the clusterers, which got the bare list.

### The prompt alone, run twice

Both runs did things no free tool did. They gave each of the six services its own page, rebuilt the price page, and placed all six existing addresses. Both suggested folding the old bathtub post into another page or rewriting it, with a redirect if it goes, close to the call the hand-built map made.

They never used a search, because none was given, and they drifted. The first run had 7 clusters of guides. The second had 5 pillars, including a breeds hub of 13 breeds and articles the first run never mentioned: wildfire smoke, ear infections, hot spots and tear stains. Same prompt, minutes apart, two different maps. The second run also asked whether the salon grooms cats, which it does not. Both runs floated neighborhood pages, with a warning to build them only if each has something different to say.

### The prompt with the 42 searches

With real searches to work from, the plan tightened. It put the three wordings of "dog grooming portland" on the main page, noting that Google Ads gives all three the same 880 because they are one request. It kept a search with no measured volume because a real buyer types it. It sent "dog grooming near me" to the main page and the Google Business Profile, and refused a page for the kit search because, it said, Google shows product listings for it.

Where it disagreed with the hand-built map:

- It put "dog nail trimming" on the how-to guide. The hand-built map put it on the Nail trims service page, because a Portland groomer's page ranked first for it. The assistant said itself that the search has mixed intent and that you should check Google's results. It did not check them, because it could not.
- It gave "teddy bear cut" a page of its own. The hand-built map made it a section, because Google's results for it mix dog cuts, cat cuts and craft cutouts.

That pattern matches the research. Vijay Viswanathan and colleagues found that [using a language model before and during clustering "can routinely provide significant improvements in cluster quality"](https://arxiv.org/abs/2307.00524) (2023). The model is good at judging which searches mean the same thing. It is poor at knowing which searches exist. Give it the searches and it does the part it is good at. A full method for this is in [Build a topical map with Claude](https://frameworkseo.com/learn/claude-for-seo/build-a-topical-map-with-claude).

## Clustering by shared results: the right idea, fragile on a local business

Grouping searches by the pages Google ranks for both is the method with the longest research history. On the salon it barely grouped anything: 39 groups for 42 searches, at a line of 3 shared web addresses, the low end of the 3 to 4 these tools commonly describe.

### Where the method comes from

Doug Beeferman and Adam Berger [grouped search queries by the pages people clicked for them](https://dl.acm.org/doi/10.1145/347090.347176) in 2000. Their method was, in their word, content-ignorant: it never read the words of a query. Google later patented a way to [cluster the searches people type next by the documents they click](https://patents.google.com/patent/US8423538B1/en), one cluster per intent (granted 2013). SERP clustering tools use the public version of that idea: they compare the top 10 results instead of the clicks.

### What I ran

I pulled Google's first page for all 42 searches twice in the same hour, desktop, once with the location set to the United States and once to Portland. The data came from a search data service, at $0.084 a pull. Each search returned 5 to 9 ordinary results once maps, videos and other boxes are left out. Then my own 38-line script grouped any two searches whose results share 3 or more web addresses. It is a plain version of what the paid tools do, and it is in the download.

### What it did well

It never merged two different needs because their words matched. "Dog grooming prices" and "how much does dog grooming cost" shared 0 addresses, so it kept them apart, and the hand-built map agrees. It kept every service page apart from its do-it-yourself guide. With 1 wrong merge, it tied with the chat assistant for the fewest.

### Why it fell apart on this business

Google's answer for a local business depends on where the search comes from. A clustering tool asks you for a location once, and that setting decides which pages it compares.

![Top results for dog grooming prices pulled three ways: set to the United States, the same setting six hours later, and set to Portland. The lists barely overlap: 39% of web addresses repeated six hours later and 30% matched between the two locations.](https://frameworkseo.com/learn/topical-map-tools/location-shuffle.webp)

*Set to the whole United States, Google answers as if from a different city each time, so price guides for Los Angeles, Houston and Nashville trade places.*

- **Six hours later, most results had changed.** For the 15 searches the build lesson had pulled with the same US setting about six hours earlier, 44 of 114 web addresses came back, 39%. Set to the whole country, the results came from price pages written for Los Angeles and Chicago in one pull and Houston and Nashville in the next.
- **The location setting changed most of the answer.** Between the US and the Portland setting on the same day, 93 of 315 addresses matched, 30%.
- **Directories make two services look like one need.** "Puppy grooming portland" and "dog groomer portland" shared 5 addresses: two Portland groomers' home pages, a groomer's Facebook page, a Yelp listing and a Facebook group post. The script merged them. The salon sells puppy grooming, so it needs its own page.
- **Wordings of one question share almost nothing.** "Puppy first groom" and "puppy first grooming" shared 2 of 8 addresses. "Goldendoodle grooming" and "doodle grooming" shared 0. Their results are full of videos, Reddit threads and Facebook posts, which differ from search to search.

Lowering the line to 2 shared addresses grouped a few more pairs and added wrong merges, such as full grooms with bath and brush under the Portland setting. The order my script took the searches in mattered too, a flaw of its simple rule rather than of the method: it starts with the biggest search, and under the Portland setting "dog grooming portland oregon" joined the "near me" group before the "dog grooming portland" group could claim it, though those two shared 3.

> **If you use a shared-results tool:** Set the location to the city the business serves, not the country, and pull everything on the same day. Treat a group of local searches that share only directory listings as a question to check by hand, not an answer.

## Clustering by word similarity: instant, and blind to meaning

The free word grouper sorted the 42 searches into 19 groups in a few seconds. It kept 3 of the 11 pairs together and made 21 wrong merges, because it groups by shared words, and shared words are not a shared need.

### What it did well

It is free, it needs no account, and it says plainly what it does: "a basic keyword grouping tool based on common text processing algorithms with a very basic method of text distance analysis". It put the three puppy first groom searches together. For a first sort of a few thousand searches, that is useful.

### What it got wrong

- **A bucket called "dog grooming" with 10 searches in it,** including the main local page, the price page, the cost guide, the full groom service, "how long does dog grooming take", the kit search and "near me". That is at least five different pages, plus two searches that get no page of their own.
- **The same need split by wording.** "Can you shave a husky" and "should you shave a double coated dog" share only small words, so they landed apart, one of them in a bucket of six it could not place.
- **A service and a first aid guide joined by one word.** "Dog nail bleeding" went in with "dog nail trim portland" because both start with "dog nail".

The research on text clustering explains why settings matter so much. Michael Steinbach, George Karypis and Vipin Kumar compared common ways of grouping the same documents and found [one method (bisecting K-means) as good as or better than the others they tested](https://cs.fit.edu/~pkc/classes/ml-internet/papers/steinbach00kddTM.pdf) (2000). Change the method or the threshold and the groups change. None of those choices knows that a nail trim is something the salon sells and a bleeding nail is a reader's emergency. How clusters differ from maps is in [Topical map vs topic cluster vs keyword list](https://frameworkseo.com/learn/topical-maps/topical-map-vs-topic-cluster).

## The free AI clusterer: good labels, wrong merges where the money is

The free AI clusterer gave each of its 27 groups a clear name, an intent label and a one-line reason, and kept 9 of the 11 pairs together. It also made 8 wrong merges, and three of its groups fold a service the salon sells into a do-it-yourself guide.

### What it did well

Its reasons read like a person's: "All are local searches for a dog groomer in Portland, so one Portland service page fits them." It kept tipping, appointment length and nail bleeding apart as separate needs. Language model labelling has measured support: TopicGPT, a prompt-based method, scored a [groups that matched people's own labels better than older methods, a purity score of 0.74 against 0.64](https://arxiv.org/abs/2311.01449) (Pham and colleagues, 2023).

### What it got wrong

![Two examples side by side. The free AI clusterer put the dematting service search and two do-it-yourself mat searches on one guide, and the price list and the cost question on one guide. The map keeps each as two pages, the guide linking to the service or the price list.](https://frameworkseo.com/learn/topical-map-tools/service-vs-guide.webp)

*A booking and a how-to share words but not a reader: one wants the job done, the other wants to do it at home.*

- **Dematting, de-shedding and nail trimming** each went into a do-it-yourself guide: "dematting dog" with "how to get mats out of dog hair", "dog deshedding treatment" with "how to deshed a dog", "dog nail trimming" with "how to trim dog nails". A guide that teaches the job at home is not the page that sells the job. The nail trimming call is the arguable one, as with the chat assistant; dematting and de-shedding are not.
- **The price list and the cost question** became one "Dog Grooming Prices Guide". Their top 10 results shared 0 addresses on 13 November.
- **A page for every leftover search,** including "Dog Grooming Kits", which it called a product comparison page, a "Dog Grooming Near Me" page and a "Dog Grooming Overview". The salon sells no kits, and a near me page is not how a salon wins near me searches.

It labelled the services it kept alone "commercial" and the guides "informational", then labelled the merged dematting group "informational", so the service search lost its page. Spotting the intent is not the same as deciding the page. The full test for that decision is in [When a search deserves its own page](https://frameworkseo.com/learn/topical-maps/page-or-section).

## The paid tools I did not run, by the kind of work they do

Paid tools do the same four kinds of work as the free ones, with bigger data behind them: they compare Google's results, compare words or meaning, ask a language model, or read your own site. Each kind has a limit no subscription removes. I did not run them, so this is what their own public pages say, not a review.

![Four kinds of topical map tool, each with what it reads, what it gives you and what it cannot know: shared search results, word similarity, a language model, and a crawl of your own site.](https://frameworkseo.com/learn/topical-map-tools/four-kinds.webp)

*The input decides the blind spot: a tool that reads only Google's results cannot know what the business sells.*

| Kind | Examples, from their own pages | What it can produce | What it cannot know |
| --- | --- | --- | --- |
| Shared results | Keyword Insights describes grouping searches that show similar top 10 results. Ahrefs' help center defines its Parent Topic as the search that sends the most traffic to the #1 page for a keyword. | Groups of searches Google answers with the same pages, with volumes | The location and day problem above, and anything about the business |
| Words or meaning | Free groupers compare words. Meaning-based tools turn each search into numbers that stand for its meaning, the method BERTopic describes: [embed each text, cluster the embeddings, then name each cluster](https://arxiv.org/abs/2203.05794) (Grootendorst, 2022). | Fast groups of similar searches, thousands at a time | Whether two similar searches want the same page |
| A language model | Topical map generators and AI planners, from a topic or a domain | Pillars, titles, intent labels, an order | Real demand and today's results, unless the tool fetches and checks them |
| A crawl of your site | MarketMuse's home page says it "analyzes your entire content inventory" and then finds topic clusters. | What exists, what overlaps, what a topic model says is missing | Which of those gaps the business should fill |

Search engines do some of this themselves. Google holds a patent for [thematic search](https://patents.google.com/patent/US12158907B1/en): a model writes summaries of passages from the pages that answer a search, clusters the summaries into themes and shows results arranged by theme (granted 2024). A patent is not proof Google runs it. It does show that grouping is the cheap part, for an engine as for a tool.

> **What a subscription buys:** Mostly volume and speed: thousands of searches clustered in minutes, with the data pulled for you. For a salon with 42 searches, the free contestants and a few cents of results data were enough to see every limit the paid kinds share.

## How to use a tool without letting it decide your map

Use tools to collect and sort searches, pull Google's results from your own city for the close calls, and make the seven decisions yourself. Every check a tool failed in this test is a decision about the business.

![Two lists. Hand to a tool: collect the searches, sort a long list into first groups, pull Google's results for close calls set to your city, draft names and titles. Keep for a person: what the business sells, page or section, the page type, links and order, and the pages the site already has.](https://frameworkseo.com/learn/topical-map-tools/tool-person-split.webp)

*The left column is where the tools in this test did well; the right column is every check they failed.*

1. **Collect the searches with real volumes.** Google's Keyword Planner or any keyword tool, plus Search Console if the site is live, plus what customers ask at the desk.
2. **Sort them roughly.** A word grouper or a chat assistant given the list is fine for a first pass. Read every group it makes.
3. **Check the close calls against Google, set to your city.** Two searches that could share a page get compared by hand or with a shared-results tool set to the right location, on one day.
4. **Make the seven decisions.** Owner page, type, page or section, links, order, existing pages, and what stays off the map because the business does not sell it.
5. **Write down why.** One line per decision, so the next person knows which calls were evidence and which were judgment.

Koray describes his own AI agents the same way. In his words, ["creating a topical map is not merely listing keywords or entities"](https://medium.com/@ktgubur/korays-agents-generative-ai-agents-for-semantic-seo-and-topical-authority-d4b247fac72a) (2024). The listing is what tools do well. The full build, step by step, is in [How to build a topical map](https://frameworkseo.com/learn/topical-maps/how-to-build-a-topical-map).

We built our own system for this work, which is how a map of about 159 pages takes us about two to two and a half hours instead of a week or two by hand. If you would rather have the whole map built for your site, that is our [growth plan](https://frameworkseo.com/).

## Sources

- [3 Suggestions about Topical Authority](https://medium.com/@ktgubur/3-suggestions-about-topical-authority-1cd73963a9cb), Koray Tuğberk Gübür, Medium, 2024
- [Koray's Agents: Generative AI Agents for Semantic SEO and Topical Authority](https://medium.com/@ktgubur/korays-agents-generative-ai-agents-for-semantic-seo-and-topical-authority-d4b247fac72a), Koray Tuğberk Gübür, Medium, 2024
- [Agglomerative clustering of a search engine query log](https://dl.acm.org/doi/10.1145/347090.347176), Doug Beeferman and Adam Berger, ACM KDD, 2000
- [Clustering query refinements by inferred user intent (US8423538B1)](https://patents.google.com/patent/US8423538B1/en), Google LLC, patent, 2013
- [A Comparison of Document Clustering Techniques](https://cs.fit.edu/~pkc/classes/ml-internet/papers/steinbach00kddTM.pdf), Michael Steinbach, George Karypis and Vipin Kumar, University of Minnesota, 2000
- [Large Language Models Enable Few-Shot Clustering](https://arxiv.org/abs/2307.00524), Vijay Viswanathan and colleagues, arXiv, 2023
- [TopicGPT: A Prompt-based Topic Modeling Framework](https://arxiv.org/abs/2311.01449), Chau Minh Pham and colleagues, arXiv, 2023
- [BERTopic: Neural topic modeling with a class-based TF-IDF procedure](https://arxiv.org/abs/2203.05794), Maarten Grootendorst, arXiv, 2022
- [Thematic search (US12158907B1)](https://patents.google.com/patent/US12158907B1/en), Google LLC, patent, 2024
