Given a dataset that looks like the following:
----------------------------------------------------------- |Category|Phrase |Related 1 |Related 2 |...| ----------------------------------------------------------- |Art |Art exhibitions| | | | |Art |Art galleries |Art exhibitions |Art museum | | |Art |Art museum |Art galleries | | | |Sports |Football |Sports coaching |NFL | | |Sports |Basketball |NBA | | | |Sports |Sports coaching| | | | -----------------------------------------------------------
If I have an input phrase, how can I list possible related phrases inside the dataset? For example, I would relate "art exhibitions" to "art museum" and "art galleries". The dataset has some relationships filled out already (I am not sure if this counts as usable training data or if I have to transform it further) and I am looking to fill in the blanks, that is find relationships for some rows.
Eventually we would want to be able to support input phrases that don't exist yet in this dataset and establish relationships for them based on historical info, which is why I think I should be looking at machine learning.
What is the best algorithm/approach I can make use of for this problem?