A random question generator built by the author for the FEINART summer school, which can be accessed via https://sociallyengaged.tech/generator/ (or, by scanning the QR code.)
As mentioned in the last blog, I will be explaining the motivation and technical construction behind the ‘presentation’ I delivered at the summer school. We were invited to present a ‘creative’ interpretation of our doctoral research. So, I thought since the philosophy of technology is one of my fields of interest, why not create a little algorithm? It was also inspired by a joke I had with my colleague Claude Nassar (Hi Claude!) when we were brainstorming questions for the panel, Democracy and the Digital Network.
‘Man, we need a random question generator…’
‘Well, it should be relatively easy to make one, right ?’
‘Possibly, but I have not programmed for years because of this bloody PhD.’
So, I thought it would come in handy (and most importantly, funny,) to have a question generator for the summer school, since there is an awful lot of panels, discussion groups, and QnA in the programme. Since the questions need to be able to cater for all sorts of situations during the conference period, the language and meaning they encapsulate need to be wide-ranging, yet precise, and with just the right dash of sophistication. (Ok, maybe not so precise, I did leave out some ‘wonkiness’ to pump up the ‘fun’ factor. For example, some questions would sound intellectually convoluted and grammatically sound, nonetheless, any substantial meaning would be hollowed out by the contrived attempt of rationalising rationality—pretty much like this very sentence you just read 😉 )
Then, how did I make sure the generator has the right content and the right delivery? Well, thanks to the very informational official webpage of the summer school, I scraped the text from the event statement, speaker bio and workshop description. Obviously, that’s not enough, I went to study the interviews of theorists and philosophers, such as McKenzie Wark and Alex Galloway (since they tend to write in a rather complex manner; hence I expect they would receive questions that mimic their mannerisms) breaking down the questions by type, structure, and linguistic components. People tend to recommend the use of Chomsky’s hierarchy when doing language modelling, but I was running short of time and could only code the whole thing while en-routing to the summer school. So I just did a very crude classification system (more on that later.) Also, this is NOT AI— the whole thing is basically ‘hard-coded.’ Think of this like a slot machine, the algorithm will randomly pick a word from a bag and assign each word to each slot, and it was my job to make sure the result is contextualised for the event. A simplified logic looks kind of like this:
Then you assign words by type.
An interrogative word |Subject OR auxiliary verb OR verb* | Subject OR auxiliary verb OR verb* |Subject OR auxiliary verb OR verb*|Adjective 1| Noun | Preposition 1| Article| Adjective 2|Noun2| Preposition 1| Noun3
*bear in mind to keep quality (single vs plural tense) and time (past vs present)consistent.
(Yea, things got pretty ‘zodiac-killer-ish’)
…and this does not sound glamorous, but using a spreadsheet to keep track of your bag of words will keep you sane. Here is another example:
You probably also notice I do not only categorise by word function—I also categorise by ‘sentiment,’ namely by the designators, positive, negative, and neutral. By matching the sentiment of each word, the delivery of the question would sound much more coherent and realistic. Rather than seeing sentiment-analysis as a rational, objective technique, I would argue that it is very much subject to audiences. For example, some may find ‘capitalist’ as evoking a pleasant feeling, rather than a nasty one.
Then, once you finish building up a ‘database’ of potential words, you put them in action with a script. The basic logic works like this:
(I’ve included a simplified version below for now, since I want to keep it readable for non-technical readers. Grey text is the ‘comment’ that explains the purpose of each section.)
And here you go. The script will generate questions such as ‘Do you fight?’ or ‘How do your collectives protest?’ And you can ‘spice it up,’ by adding more variables in your sentences, such as ‘How do your collectives protest the hegemonic structure of a post-political, capitalistic global empire? ’Or, ‘How do your collectives protest against the drop in quality in the recent Poundland sale?’
You get the idea;-)