I want to assign a certain category to a group of keywords. So i.e. people can upload images or videos, when they do this they can set keywords for this. These keywords are free to type so words can be spelled in different ways. The amount of keywords are 95% between 0 and 20 words.
I want to create categories from these. So that I can assign a combination of keywords to a category.
The categories and the amount of categories are undefined.
From what I've researched is that this is probably a Topic modeling or clustering issue. Although with topic modeling most examples I see are based on long texts instead of a couple of keywords.
What would be a good approach to handle this?
I thought about first some simple fuzzywuzzy to find different spellings of the same words.
Create a big word list from this. Then each keyword will be matched against the list and rewritten if it matches one and added if there isn't a good match.
Then I would need to create groups and here I don't know which algorithms I should use.
I was thinking maybe do k-means clustering and then see on which k I get the best results and then assign a category to it manually by looking at which keywords are in it.
So it would be nice to just let the algo figure the amount and categories out, but it can be relaxed that I will set them before.
Does anyone have a better suggestion or are there just complete algorithms for this already available?