Différences entre les versions de « Typoem - Quentin Lamouroux »
Ligne 94 : | Ligne 94 : | ||
[[Fichier:json.png|400px]] | [[Fichier:json.png|400px]] | ||
+ | <pre> | ||
+ | <p style="background-color: black;color:white;padding:10px;font-size:20px;margin-left:20px;"> | ||
− | |||
− | |||
<br><?php | <br><?php | ||
Ligne 106 : | Ligne 106 : | ||
<br>?> | <br>?> | ||
+ | </p> | ||
</pre> | </pre> | ||
− | |||
===='''Étape 2: décoder le langage Unicode des fichiers .json'''==== | ===='''Étape 2: décoder le langage Unicode des fichiers .json'''==== | ||
+ | <pre> | ||
<p style="background-color: black;color:white;padding:10px;font-size:20px;margin-left:20px;"> | <p style="background-color: black;color:white;padding:10px;font-size:20px;margin-left:20px;"> | ||
− | + | ||
− | |||
<?php | <?php | ||
function fixBadUnicodeForJson($str) { | function fixBadUnicodeForJson($str) { | ||
Ligne 196 : | Ligne 196 : | ||
</div> | </div> | ||
− | + | </p> | |
− | </ | ||
</pre> | </pre> | ||
===='''Étape 3: tirer un messages envoyés aléatoirement'''==== | ===='''Étape 3: tirer un messages envoyés aléatoirement'''==== |
Version du 19 décembre 2018 à 18:38
Typoem
Typoem = typography + poem. Terme inventé par Hansjorg Mayer, considéré comme un représentant important de la poésie concrète et expérimentale.
Typoem est un futur programme qui génère de manière aléatoire des poèmes constitués à partir d'une base de donnée (de mots) connectée à une messagerie personnelle telle que Messenger.
Le fonctionnement
Étape 1
Le programme encode quotidiennement dans la base de données les mots les plus utilisés et les regroupe selon leur classe grammaticale (nom, verbe, adjectif, adverbe, pronom, déterminant, conjonction, préposition).
Étape 2
Le programme pioche aléatoirement des mots dans les différentes classes grammaticales de la base de données, et les assemble dans un fichier .txt en respectant des combinaisons syntaxiques précises (ex : phrase = nom + verbe + adjectif).
Étape 3
Le programme met en page le fichier .txt suivant un système de grille graphique et un style de paragraphe précis, et l'exporte en fichier .pdf.
Les étapes en schéma
+--------------------+ | messagerie | | mail, messenger.. | +----------^---------+ | | +---------+--------+ | base de données | | | | cat nom | | cat verbe | | cat adjectif | | cat pronom | | etc | +----------^-------+ | | | +-------------------+ | +---------------+ | | | +-----------+ | | +--------------+ | | | programme | | +------------------> fichier .txt | | | +-----------+ | | +-------+------+ | +---------------+ | | +-------------------+ | | | | | +-------v------+ | fichier .pdf | +--------------+
Problématiques
> comment connecter le programme à une messagerie et comment y récupérer tous les mots ou groupe de mot les plus utilisés?
> quelle base de donnée? où? en ligne? en local?
> comment catégoriser les mots relevés (verbe, pronom, adjectif, etc)?
> comment assembler les mots les uns avec les autres avec (ou sans) limite de nombre de mot par phrase?
> où stocker les poèmes?
Première expérimentation
Cette première entrée en matière part d'une fonction proposée par Facebook qui permet de télécharger l'ensemble de ses données (messages, posts, likes, etc) au format .json. Je m'intéresse ici aux datas messenger et aux messages envoyés et reçus. Via cette première expérimentation, je vais tenter d'une part de comprendre la structure d'un fichier .json, et d'autre part d'utiliser ses données.
Cent Mille Milliards de Typoems
Cent Mille Milliards de Poèmes, est un livre animé de poésie combinatoire de Raymond Queneau, publié en 1961. Selon les mots mêmes de Queneau dans sa préface, «Ce petit ouvrage permet à tout un chacun de composer à volonté cent mille milliards de sonnets, tous réguliers bien entendu. C’est somme toute une sorte de machine à fabriquer des poèmes, mais en nombre limité; il est vrai que ce nombre, quoique limité, fournit de la lecture pour près de deux cents millions d’années (en lisant vingt-quatre heures sur vingt-quatre).» L'objet-livre de Queneau offre donc au lecteur un instrument qui lui permet de combiner des vers de façon à composer des poèmes
Cent Mille Milliards de Typoems est une version numérique et remasterisé du livre de Raymond Queneau, adaptant son contenu au contexte des réseaux sociaux : à savoir mes conversations Messenger personnelles.
Le fonctionnement
À partir de 5 conversations Messenger différentes, soit 5 fichiers .json, le projet propose 5 zones dans lesquelles sont générés aléatoirement des vers qui prennent la forme de messages envoyés à ces 5 destinataires différents sur une période donnée, permettant ainsi des combinaisons à l'infini.
Étape 1 : lire le fichier .json
Pour lire un fichier .json il est nécessaire d'utiliser le langage php. Un fichier .json se compose en tableau de parties et sous parties (cf capture écran); pour atteindre un élément spécifiquement voici la démarche à suivre. Ici je souhaite afficher le "content" du premier message dans la catégorie "messages".
<p style="background-color: black;color:white;padding:10px;font-size:20px;margin-left:20px;"> <br><?php <br> $json = file_get_contents("src/json/estelle.json"); <br> $json_data = json_decode($json); <br> echo $json_data->messages[0]->content; <br>?> </p>
Étape 2: décoder le langage Unicode des fichiers .json
<p style="background-color: black;color:white;padding:10px;font-size:20px;margin-left:20px;"> <?php function fixBadUnicodeForJson($str) { $str = preg_replace_callback( '/\\\\u00([0-9a-f]{2})\\\\u00([0-9a-f]{2})\\\\u00([0-9a-f]{2})\\\\u00([0-9a-f]{2})/', function($matches) { return chr(hexdec("$1")).chr(hexdec("$2")).chr(hexdec("$3")).chr(hexdec("$4")); }, $str ); $str = preg_replace_callback( '/\\\\u00([0-9a-f]{2})\\\\u00([0-9a-f]{2})\\\\u00([0-9a-f]{2})/', function($matches) { return chr(hexdec("$1")).chr(hexdec("$2")).chr(hexdec("$3")); }, $str ); $str = preg_replace_callback( '/\\\\u00([0-9a-f]{2})\\\\u00([0-9a-f]{2})/', function($matches) { return chr(hexdec("$1")).chr(hexdec("$2")); }, $str ); $str = preg_replace_callback( '/\\\\u00([0-9a-f]{2})/', function($matches) { return chr(hexdec("$1")); }, $str ); return $str; } function textConverter($str){ $str = utf8_decode(fixBadUnicodeForJson($str)); return $str; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Typoem</title> <script href="src/jquery-3.2.1.min.js"></script> </head> <body> <div class="typoem">Cent mille milliards de Typoems</div> <div class="arrow1">↝</div> <div class="conv1"> <?php error_reporting(E_ALL); ini_set('display_errors', 1); $json = file_get_contents("src/json/estelle.json"); //echo $json; $json_data = json_decode($json); //echo $json_data->messages[0]->content; foreach($json_data->messages as $message){ if($message->sender_name == 'Quentin Lamouroux'){ echo '<p>'.textConverter($message->content).'</p>'; } } //print_r($json_data); //echo $json_data['messages'].' '.$json_data['content']; ?> </div> </p>