2
$\begingroup$

How can you cluster users based on what are searching for?

I'm working on an app which includes search functionality: a search box that allows a user to enter text and search the entire site. I have access to which terms the users are searching on. How can I cluster users based on this data? Here is what I am thinking of so any other recommendations are welcome:

  1. Cluster users based on what they are searching on, suggest search suggestions based on what other similar users are searching.

So users that are using the same search results are very similar based on a Jaccard coefficient. The search terms are converted into binary data based on presence/absence of the search words.

$\endgroup$
1
  • $\begingroup$ You have a programming language you want this in? What format is your data? You could easily do this in R with kmeans. $\endgroup$ Commented Mar 7, 2014 at 16:58

2 Answers 2

0
$\begingroup$

I assume you can tie search terms to pages that users click on. This is turn could give you a 'fingerprint' of pages associated with each term. These fingerprints can be used to establish a measure of relatedness between search terms. I would then suggest a network-based approach rather than k-means.

$\endgroup$
1
$\begingroup$

Well, it doesn't look as you have a lot of data - most search queries are just one or two terms, aren't they?

You might want to look at association rule mining / frequent itemset mining.

This should be able to solve the "frequently bought (sought) together" problem.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.