venerdì 17 maggio 2024

Una lettera d'amore algoritmica

20240517-christopher-strachey
Prima dei text-to-image generator e dei text-to-music generator (di questi ultimi ne parleremo presto) c'erano i semplici text generator. Cose tipo i "semplici" generatori di frasi di questo o quel politico o dei raffinati generatori di articoli scientifici (non ricordo se quello deputato alla matematica o quello alla fisica fu usato per generare un articolo poi sottomesso a una rivista scientifica). Molti di questi progetti mettevano a disposizione i loro algoritmi e, soprattutto, i loro dizionari.
Il loro funzionamento era abbastanza semplice: la logica del software implementava la grammatica, che poi assemblava le parole presenti nel dizionario secondo quelle regole. Più era raffinata la logica, più ricco era il dizionario e più credibili i risultati prodotti.
Ciò che forse è ancora meno noto rispetto a questo genere di programmi è chi programmò il capostipite di tutto: Christopher Strachey, il giovane studente diventato presto assistente e amico di Alan Turing che abbiamo incontrato un po' di tempo fa quando ho raccontato dei primi suoni mai prodotti da un computer.
E quel primo algoritmo da cui possiamo dire che tutto iniziò era un love letter generator!
L'algoritmo, scritto nel 1952, era basato sulla combinatoria e il primo dei suoi risultati venne pubblucato da Strachey in un articolo del 1954:
Darling Sweetheart,
You are my avid fellow feeling. My affection curiously clings to your passionate wish. My liking yearns for your heart. You are my wistful sympathy: my tender liking.
Yours beautifully
M. U. C.
L'algoritmo originale, purtroppo, è andato perduto, ma nel 2014 Nick Montfort è riuscito a ricostruirlo. La struttura delle lettere d'amore generate è abbastanza semplice: "you are my [aggettivo] [nome]. my [aggettivo] [nome] [avverbio] [verbo] your [aggettivo] [nome]".
L'algoritmo, che non aveva alcuna pretesa di essere creativo (e probabilmente voleva essere più un gioco per prendere alla berlina il "genere") era strutturato secondo questa sequenza di istruzioni:
Innanzitutto prende due parole da una lista di saluti. Quindi ripete per 5 volte le seguenti operazioni: 1) scegliere in maniera casuale una delle due strutture di frasi presenti nel dizionario; 2) riempire la frase con parole prese da una lista di aggettivi, avverbi, sostantivi e verbi. Quindi chiudere la lettera con un saluto finale.
P.S.: In effetti, a voler essere pignoli, il primo sistema di generazione automatica di testi fu la Latin verse machine di John Clark, ma magari di questa scrivero' in una qualche futura puntata dei Rompicapi.

Nessun commento:

Posta un commento