# Similar to Google Sets functionality

**URL:** <https://community.wolfram.com/t/similar-to-google-sets-functionality/4478>\
**Category:** Questions\
**Tags:** data-science\
**Created:** [January 6, 2015, 3:04pm UTC](https://community.wolfram.com/t/similar-to-google-sets-functionality/4478 "2015-01-06T15:04:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jago2598](https://avatars.discourse-cdn.com/v4/letter/j/65b543/32.png) [@jago2598](https://community.wolfram.com/u/jago2598)\
**Post date:** [January 6, 2015, 3:04pm UTC](https://community.wolfram.com/t/similar-to-google-sets-functionality/4478/1 "2015-01-06T15:04:57Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![seanc](https://yyz1.discourse-cdn.com/wolfram/user_avatar/community.wolfram.com/seanc/32/34005_2.png) [@seanc](https://community.wolfram.com/u/seanc)\
**Post date:** [January 6, 2015, 7:09pm UTC](https://community.wolfram.com/t/similar-to-google-sets-functionality/4478/2 "2015-01-06T19:09:50Z")

</div>

Google ended up incorporating it into some of its products such as it’s spreadsheet service: [Google Sets, Still Available](http://googlesystem.blogspot.com/2012/11/google-sets-still-available.html)

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:

```
EntityTypeName@Interpreter["Entity"]["Harry Potter"]

```

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.

---

<div class="post-metadata">

**Author:** ![Vitaliyk](https://yyz1.discourse-cdn.com/wolfram/user_avatar/community.wolfram.com/vitaliyk/32/45591_2.png) [@Vitaliyk](https://community.wolfram.com/u/Vitaliyk)\
**Post date:** [January 6, 2015, 8:16pm UTC](https://community.wolfram.com/t/similar-to-google-sets-functionality/4478/3 "2015-01-06T20:16:58Z")

</div>

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](http://www.wolfram.com/mathematica/new-in-10/machine-learning/). 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:

```
words = DictionaryLookup["wol*"];
Flatten[Map[(Thread[# \[DirectedEdge] DeleteCases[Nearest[words, #, 3], #]]) &, words]];
CommunityGraphPlot@Graph[%, VertexLabels -> "Name", ImageSize -> 450]

```

 ![wer34q5wterghsfbdvsc.png](https://global.discourse-cdn.com/wolfram/original/3X/4/b/4bd8e2e32315ad76f750db54638dc9860df3b6bc.png)

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.
