I am trying to cluster some words by affinity. Using Word2Vec I obtained vector representation of every word that I can cluster with a normal unsupervised method.
Of these words, though, I know the classification of some of them, for example I know:
Colors
group ==> red
, blue
, yellow
Gender
group ==> man
, woman
UNKNOWN
==> shoes
, brown
, beautiful
.
As the example shows, brown
should be categorized as a Color
, but shoes
and beautiful
should be different clusters.
How could I use this information to create a semi-supervised model in order to cluster every word?
While the question is generic, I actually tried to create a program in Python, I tried the scikit methods sklearn.semi_supervised.LabelSpreading
and sklearn.semi_supervised.LabelSpreading
.
These, though, are not what I need since they only assign the known labels to the remaining objects, meaning that I would end up only with my Colors
and Gender
group.