Vidéo ci-dessous, fichiers joints. Ce projet s'est déroulé en trois étapes : la collecte de données, une étape de prétraitement fastidieuse et une étape de création d'image vidéo.
Les données ont été collectées par wikipediaTextParser.jsl qui a téléchargé de nombreuses pages Web Wikipédia (effectuées en plusieurs lots, sur plusieurs jours). Il y a un bouton aléatoire sur la page d'accueil de Wikipédia qui contient un lien renvoyant un article aléatoire. JMP peut ouvrir ce lien, en boucle, et écrire le code HTML dans un tableau. (Si vous faites cela, vous devriez vraiment envisager de faire un don la prochaine fois qu'ils le demanderont.) La boucle de téléchargement a également effectué un certain traitement pour supprimer un tas de HTML et essayer d'identifier la partie intéressante du document ; vous verrez encore quelques mots dans la vidéo qui auraient dû être filtrés. Cette étape recherchait également des dates dans un format spécifique pour tenter d'attribuer une date à chaque article ; la date la plus ancienne semblait la meilleure puisque la plupart des articles sont touchés assez souvent. Une fois terminé, triez par date.
Generator2.jsl est l'étape de pré-traitement ; il utilise la plateforme Text Explorer de JMP pour examiner des sous-ensembles de documents. J'ai commencé avec tous les documents et j'ai dressé une liste de mots vides qui sont supprimés. Chaque sous-ensemble contient environ 1 500 documents et chevauche beaucoup le sous-ensemble précédent. Un tableau de termes est enregistré à partir de chaque sous-ensemble et copié dans un tableau plus grand. Le plus grand tableau compte 300 lignes sur 3 600 colonnes. Je garde les 300 termes les plus populaires et j'ai besoin de 1 800 images pour réaliser 60 secondes de vidéo à 30 images/seconde. Chaque paire de colonnes est un terme et une fréquence. Oui, si je le refaisais, je pourrais le tourner de 90 degrés et avoir 600 colonnes sur 1 800 lignes. Cela a duré toute la nuit.
ProcessMC4.jsl, la dernière étape, est principalement du JSL pour créer les données destinées à alimenter Graph Builder. J'ai utilisé "Utiliser pour le marqueur" pour transformer le terme en mot dans le graphique et laisser Graph Builder déterminer sa taille. Il existe une bonne quantité de JSL qui exécute un dirigé par la force algorithme pour aider les mots à trouver un endroit agréable pour se détendre. À la fin de la vidéo, vous pouvez voir l'instabilité résiduelle une fois que les données ont cessé de circuler, mais que le code dirigé par la force est toujours en cours d'exécution. Pour autant, cela fait quand même plusieurs images par seconde. (J'ai fait beaucoup de réglages pour trouver des paramètres dirigés par la force qui fonctionnaient plutôt bien. L'une des surprises a été de découvrir que les mots sont moins que plus lorsque les mots regardent leurs voisins les plus proches : 1 ou 2 ont obtenu un bon dégagement autour des mots, mais 5 ou plus n'ont pas eu un aussi bon résultat. Peut-être ai-je raté le calcul de la distance en résumant les vecteurs de force.)
Vidéo (veut être maximisée, il y a beaucoup de petits mots)
Toutes les vidéos