I need to generate lists of words related to specific topics for a project. I am familiar with clustering methods of topic modeling such as LDA, but I have something else in mind. Are there any methods to generate lists of related words from a root word? For instance, where I could type "medicine" and it would return a list of words or terms related to medicine, such as "doctor", "malpractice", "office", etc.?
2 Answers
You could try using word2vec: It orders words in vector space according to context, it allows you to retrieve words with similar context.
You can find pretrained models on the web.
-
$\begingroup$ Thank you! This is the approach I ended up taking. It occurred to me because I was already going to be using word2vec for a later aspect of the same project. $\endgroup$ Feb 20, 2018 at 17:03
-
I think instead of building something from scratch, you should utilize the domain knowledge of experts.
One example: Turn Wikipedia's topic portals (e.g., the medicine portal) into a family tree.
-
$\begingroup$ Hi Elias. Very insightful answer! $\endgroup$ Feb 18, 2018 at 16:48