My all-time favorite novel is Milan Kundera’s The Unbearable Lightness of Being. I’ve been moved by its conceptual underpinnings in a tremendous way, and specifically, the idea that objects, concrete or abstract, have the potentiality to grow in meaning while still retaining and evoking all of their prior meanings harmonically and simultaneously. At one point, the author explains the bowler hat, one of the main iconographies of the novel, to be such an object poignantly:


The inspiration for me here is two-fold: the aforementioned simultaneous evocation of meaning, and the aesthetic idea of another semantic river

Motivated by that, I opted to concretely apply that concept on the text of the novel. I wanted to show the growth of meaning for a number of entities, mainly the four main characters (Tomas, Tereza, Sabina, and Franz), their pet (Karenin), and the concepts of love, death, man, woman, war, and God. I’ve also selected both light and heavy as the thesis of the novel is whether either end of this dichotomy is better than the other.

Detecting the change of meaning of the terms was done through tracking the change of the associated words to that term as the novel progresses.


There are two sets of outcomes of this project, one that is a simple PDF file that shows the progression of the change in meaning of the chosen terms with the progress of the novel.

View Fullscreen

The above is wonderful, explorable view of the concept. If you look into the page that lists the results for God, you can see that the term does not make an appearance in the novel until halfway through, and when it does, it is immediately associated with deny and superstition. 

If you look at the results for hat, you can see that, at the beginning, the word appears in its most mundane sense by being associated with car and keys. However, at one point the term takes a turn into the symbolic, and starts to build up associations with terms such as enchantment and arrogance.


The other outcome of the project is an attempt to fulfill the aesthetic idea of another semantic river. The shapes and texture of the returned results above graphical manipulation to come up with a river-like arrangement.





To measure the change of meaning, the first step is to quantify, or at least map, the idea of meaning to a concrete parameter. Python’s NLTK framework conveniently provides a way to access the associated words to a term in text corpus. Associated according to frequency distribution of occurring in the same context.



In order to track the change of meaning, I found out that I will have to run the above command, for each of the chosen entities, on the novel as it progresses. Therefore I had to make 145 versions of the novel, each containing all the novel’s text up to one of the 145 chapters. To do that, I wrote the following Python program to take a text file of the novel, and return the aforementioned 145 text files.

The next step was to run nltk.Text.similar() function on all 16 terms, and on all 145 files and collect the results into a meaningful form.

A shortcoming to NLTK’s similar() command is that it prints the results directly to the command line, with no way to suppress this bahavior. To collect the data, I simply had to run the above program and direct the output in the terminal towards a text file of the results. However, the output needs further cleanup and parsing, as it contains unneeded new line characters between the returned similar words, as well as meta strings such “No results” to describe the output.

The above returns the data as a Python dictionary that I later used to just print a simple file for each term, with the associated words, if they exist, in each cummulative portion of the novel as a simple line by line listing.

I then exported the data to Processing, where I did further text processing tasks to tokenize and classify the output, and eventually draw the output in an aesthetically meaningful way. To add texture to the text, I mapped the brightness of each printed word inversely with how often that word is associated with the original term.


Leave a Comment

Error: Please check your entries!