I have $n$ words and their relatedness weight that gives me an $n\times n$ matrix. I'm going to use this for a search algorithm but the problem is I need to cluster the entered keywords based on their pairwise relation. So let's say if the keywords are { tennis, federer, wimbledon, london, police } and we have the following data from our weight matrix:
tennis federer wimbledon london police
tennis 1 0.8 0.6 0.4 0.0
federer 0.8 1 0.65 0.4 0.02
wimbledon 0.6 0.65 1 0.2 0.09
london 0.4 0.4 0.2 1 0.71
police 0.0 0.02 0.09 0.71 1
I need an algorithm to to cluster them into $2$ clusters: { tennis, federer, wimbledon } and { london, police }. Is there any known clustering algorithm than can deal with such thing? I did some research, it appears that K-means algorithm is the most well known algorithm being used for clustering but apparently K-means doesn't suit this case. I would greatly appreciate any help.

