SI16

From XPUB & Lens-Based wiki

First approaches to vernacular and language processing

Special Issue #16

Texts to discuss *

My translation of the lyrics of a greek partisan song and the lyrics of a queer take on the same song
Experiental narrations 5 occupants of Peiraiki-Patraiki factory in 1990*
Experiental map of Panayotis' narratives*

Prototyping

First steps into learning Python

  • Exploratory Programming for the Arts and Humanities notebooks for chapters 4,5,6,7,8,15
  • Natural Language Processing with Python notebooks for chapters 1,2

Reading Writing and Reasearch Methodologies

Anotating the Intro of Queer Phenomenology

with Carmen, Chae and Miriam in Steve's Class

Discussing the text with chae in an experiental approach, having just arrived in Rotterdam and trying to orientate in a very different context.
Trying to read the text through our experiences

queer phenomenology annotation pad

Glossary of Interconnected Keywords

with Chae, Kimberley and Jian

Collective experiment on giving our definitions to keywords that are inteconnected to each other.

glossary of interconnected keywords

Approaching the vernacular through the theme of rejection

https://pad.xpub.nl/p/Rejection_Glossary

Collaboration, Conflict & Consent workshop

https://pzwiki.wdka.nl/mediadesign/Mitsa_selfportrait

The forced poetics and the making of Special Issue 16

really inspired by Clara's lecture on vernacular design and forced poetics

publishing is a validation

conversation with Carmen and Erica

conversation and diagrams with Erica about forced poetics and empowerment

Prototyping with the replace function

First prototype with Erica

   new_text = print(text.replace('reason',' 👮reason👮').replace('Reason','👮Reason👮').replace('High','👨‍⚖️High👨‍⚖️').replace('normal','🔫normal🔫').replace('Objective','(⊙▃⊙)Objective(⊙▃⊙)').replace('objective','(⊙▃⊙)objective').replace('planet','🇺🇸planet🇺🇸').replace('foreign','🪖foreign🪖'))

Applying the replace function on Bataille's Solar Anus

pad of text analysis
https://pad.xpub.nl/p/solar_anus
notebook with experiment

   new = anus.replace('sun','moon').replace('SUN','MOON').replace('solar','lunar').replace('phalluses','rabbits').replace('shafts','strapons').replace('phalloid','dilidoid')

The idea for a thematic libary of words replaced by emojis

screenshot

...and I wish that your question has been answered

with Carmen, Erica and Miriam

...And I wish that your question has been answered interface

Research

Text

This is an act of persistent resistance. We created three functions to facilitate an iterative process of refusal towards PM Kryakos Mitsotakis and PM Mark Rutte's answers during a Press Conference and any of their possible versions. We invite you to play as much as you want with these functions and create your own answers as counter-reaction to Mark Rutte's final sentence: "So this is my answer and I wish that your question has been answered". Every new answer, every new iteration, can be submitted to our Archive of Repetitive Answers. Although they will never be good enough, nor shall they be accepted as exhaustive, we consider the modified answers as a trigger for a never-ending dialogue.

Our tool is a filter to process and alter texts. By targeting specific words and replacing them, either for another word, for specific characters or for blank spaces, the reader or user of the tool can change the text in many ways. The tool includes three functions The function “respell” receives as input a text (string type) and substitute all the occurrences of a target word with a replacement chosen by the user. The function “stitch” is very similar to the previous one but replaces all the occurrences of a target word with a single character (it can also be a blank space) that is repeated as many times as the length of the target. The third function “reveal” also works very similar but deletes all input text except the target word(s) and replaces the deleted text with blank spaces.

Functions

Respell

   Respell receives as input a text as a string type, and substitute all the occurrences of a targeted word with a replacement as a string type chosen by the user.
   from nltk.tokenize import word_tokenize
   # text, target, and replacement are string types
   def respell(text, target, replacement):
       target = target.lower()
       txt = word_tokenize(text)
       new = []
       for w in txt:
           if w == target:
               w = replacement
               new = new + [w]
           elif w == target[0:1].upper() + target[1:]:
               w = replacement[0:1].upper() + replacement[1:] 
              new = new + [w]
           elif w == target.upper():
               w = replacement.upper()
               new = new + [w]
           else:
               new = new + [w]
       text = ' '.join(new)
       final= text.replace(' .','.').replace(' ,',',').replace(' :',':').replace(' ;',';').replace('< ','<').replace(' >','>').replace(' / ','/').replace('& ','&')
       return final
   This function in itself could be understood as a filter to process and alter texts. By targeting specific words and replacing them, either for another word, for specific characters or for blank spaces, the user of the tool can intervene inside a text. One could break down the meaning of a text or create new narrative meanings by exposing its structure, taking out or highlighting specific and meaningful words and detaching such text from its original context. This tool offers a broad spectrum of possibilities in which it can be used, from a very political and subversive use, to a more playful and poetic one.


Stitch

   Stitch receives as input a text as a string type, and replaces all the occurrences of a target word, with a character or a word that is repeated as many times as the length of the target.
   from nltk.tokenize import word_tokenize
   # text, target, and replacement are string types
   def stich(text, target, replacement):
       target = target.lower()
       txt = word_tokenize(text)
       new = []
       for w in txt:
           if w == target:
               w = len(w)*replacement
               new = new + [w]
           elif w == target[0].upper() + target[1:]:
               w = len(w)*replacement
               new = new + [w]
           elif w== target.upper():
               w = len(w)*replacement 
               new = new + [w]
           else:
               new = new + [w]
       text = ' '.join(new)
       final= text.replace(' .','.').replace(' ,',',').replace(' :',':').replace(' ;',';').replace('< ','<').replace(' >','>').replace(' / ','/').replace('& ','&')
       return final
   This function in itself could be understood as a filter to process and alter texts. By targeting specific words and stitching them, with a character or a word that is repeated as many times as the length of the target , the user of the tool can intervene inside a text. One could break down the meaning of a text or create new narrative meanings by exposing its structure, taking out or highlighting specific and meaningful words and detaching such text from its original context. This tool offers a broad spectrum of possibilities in which it can be used, from a very political and subversive use, to a more playful and poetic one.

Reveal

    Reveal takes a text as string input and deletes all its characters except the input list of words.
   def reveal(text,group):
       txt = word_tokenize(text)
       txt_linebr = []
       for token in txt:
           if token == '<':
               continue
           elif token == 'br/':
               token='
' txt_linebr.append(token) elif token == '>': continue else: txt_linebr.append(token) new = [] for w in txt_linebr: if w=='
': new = new + [w] elif w not in group: w = len(w) * ' ' new = new + [w] elif w in group : new = new + [w] text = ' '.join(new) final= text.replace(' .','.').replace(' ,',',').replace(' :',':').replace(' ;',';').replace('< ','<').replace(' >','>').replace(' / ','/').replace('& ','&') return final
   This function in itself could be understood as a filter to process and alter texts. By chosing to keeping specific words of a text and deleting all the others, the user of the tool can intervene inside a text. One could break down the meaning of a text or create new narrative meanings by exposing its structure, taking out or highlighting specific and meaningful words and detaching such text from its original context. This tool offers a broad spectrum of possibilities in which it can be used, from a very political and subversive use, to a more playful and poetic one.