Categorizing is the wrong way to go, because different people categorize different ways. Assuming you have enough users, it seems to make more sense to go with some kind of bayesian recommendation system, i.e. "People who liked this product also liked..." That way you conform to the implicit categories people already hold, rather than force-mapping a blob of messy, overlapping categories into arbitrary, artificial divisions.