I’m stunned to not find someone searching for this before.
Google Sets was a great labs project that allows you to get suggestions on the next word in a group. This was particularly useful if you forget the name of a website for example. It was deleted a year or 2 ago.
For example:
busuu, rosetta stone, livemocha, duolingo
and the suggestion might be “babbel”
There are keyword tools out there but this feature I think works better. I would have expected Wolfram to have this but I have tried many different syntax variations and still no result.
I hope I am posting in the right forum? Searching under functionality there appeared to be no category match… does this mean the feature simply isn’t there?
Google ended up incorporating it into some of its products such as it’s spreadsheet service: Google Sets, Still Available
The closest thing I can think of to replicating it in Mathematica is to use the Entity framework. So for example, If I went to find a list of things like “Harry Potter”, I would evaluate:
This returns that Harry Potter is of type fictional character. We can ask for a list of example FictionalCharacters or we can maybe check to see which FictionalCharacter EntityClassLists contain him and return other Entities from the list.
Couldn’t Machine Learning be trained to do this? For example something similar in already built in training set - use the “FacebookTopic” built-in classifier to detect the topic of a Facebook post:
Classify["FacebookTopic", {"I bought a new computer", "happy birthday!", "this skirt looks nice"}]
{"Technology", "SpecialOccasions", "Fashion"}
You can come up with your own training sets, see examples here. Also I think could be done simpler via clustering. Say you can define relations between words. This is a toy example - not your case of course. Generate a network of “nearby” words in a dictionary:
Then determining to which cluster most of the words in your chain land, will result in getting another word from that cluster. I can imagine many other similar methods can be used.