I fiddled around with visualising hyponym hierarchies of various English words last September as per this post. The script I used back then has undergone slight modification in the interim (which can’t really be called an improvement). The following image is the hyponym hierarchy of “science”.

And the next one is for “physics”.

And the next one is for “biology”.

And the next one is for “art”.

So these images are, in essence, just quick ways of visualising the interconnectedness of the meaning of a word as related to its corresponding synonym sets. The darkest node in each of the graphs above is the corresponding starting word that I used (i.e., science, physics, biology and art respectively). As you might have guessed, the science graph contains both of the graphs corresponding to physics and biology.
Unfortunately I can’t print labels alongside the nodes as yet (not correctly, that is). So they look cryptic and lifeless without any kind of annotation. But if you can imagine that each node has a corresponding word associated with it, which happens to be a synonym of the starting word, then the density of the graph tells you something about the genericness of the meaning. Hence, science is more dense than physics and biology, while biology is clearly more dense than physics.
For me, the real attraction of graphics like this is in browsing the thesaurus and the dictionary. I’m working toward (very very slowly) a browsing tool that lets people click on a node in order to bring up the hidden hierarchy inside it. That would be more stimulating way to use the thesaurus + dictionary than the old-fashioned tedious way. We’ll see how things go, this is a mock concept for now.
The following images (in corresponding order of science, physics, biology and art) are with labels printed over each node. That’s what I meant that my code for annotating currently is incorrect, since the density of the graphs mean that the labels just turn into junk :( Unfortunately, I think there’s some complicated maths involved in order to automatically space out and resize the labels according to some metric like the distance of the synonym from the root word :\ Hmm…this will take time :/




Finally, just for some context and contrast - the following graphs correspond to “man” and “woman” respectively :) No points for guessing which one is more complicated :P


UPDATE: Just to ensure that I’m complying with citation requirements - the lexical database that the above images are based on is called WordNet from Princeton University. And the main Python toolkit that I’m using is called NLTK, which ships with a convenient WordNet wrapper that makes it easy to browse this extensive database.
