SFPC Code Societies 2020 / Allison Parrish
Launch this repository on Binder.
Words have power that arises not just from their meaning but from their material. Some words, those "somewhere between the 'legible' and 'illegible,' between the 'spirit world' and the 'human world'," as scholar James Robson writes, "express or illustrate ineffable meanings and powers that defy... traditional modalities of communication." Some words, that is, are magic. In this workshop, we will use techniques in computational text analysis and text generation to better understand how magic words work, and coin new magic words of our own. In the first part of the session, we consider magic words as islands in a largely unexplored infinite space of potential linguistic expression—a space that can be explored computationally in order to uncover new magic words with new affordances. In the second part of the session, we consider systems of divination (in particular, Tarot) as ad-hoc ontologies for dividing the world into comprehensible categories. We then analyze the "semantic space" of these divinatory ontologies, and endeavor to create new divinatory systems with new ontologies that reflect our own worldviews. Technologies covered include cryptography, phoneme-to-grapheme models, generative adversarial networks, text clustering, predictive language models and variational autoencoders. No previous programming experience required.
Participants will need to bring a laptop computer running a contemporary desktop operating system (Windows, Linux, or MacOS). We'll be using the Anaconda distribution of the Python programming language. Please install the Python 3.7 (64-bit) version of Anaconda for your platform.
To use the notebooks below, you'll need to install the following Python libraries:
Instructions are included in the notebooks.
If you're having trouble installing the libraries, you can also use these notebooks on Binder.
- A brief history of the magic word
- Jupyter notebook tutorial
- Just enough Python
Assignment: Invent or gather names/significations for ten (or more) oracle deck cards to contribute to our collective corpus.
- Python: Speculative magic words workbook (Manipulating strings, generating words with Pincelate)
- Python: Cartomancy and semantic space
Assignment: Either (1) Produce an oracle deck using text generated with (or inspired by) the tools discussed in class or (1) Produce a small "grimoire" consisting of text generated with (or inspired by) the tools discussed in class.
Things we didn't get to:
- Variational autoencoders are a tricky but good way of generating text from a continuous space.
- A GAN trained on bitmaps of words might be a good way to generate words that look magical. Feel free to use mine.