Wordalizer | Hommage à Wordle
January 08, 2010 | Wordalizer | fr | en
Ce billet est obsolète. Découvrez la nouvelle version de Wordalizer.
Wordalizer est un générateur de nuages de mots pour InDesign CS4. Essayez dès à présent la version beta de ce script (très) expérimental, inspiré du magnifique outil Web créé par Jonathan Feinberg : Wordle.
J'ai commencé à travailler sur le script Wordalizer en... septembre 2008 ! Jonathan Feinberg venait de lancer son époustouflant Wordle, une applet Java générant des nuages de mots typographiques d'une incroyable fraîcheur — tandis que les spécialistes des « technologies du langage » s'émerveillaient encore devant les simples tag clouds CSS. Quant à moi, j'imaginais naïvement que je pourrais reproduire toute la puissance de Wordle dans InDesign moyennant quelques bons coups de cravache sur le DOM ! Je n'avais pas encore mesuré la complexité et les enjeux de l'algorithme élaboré par Feinberg. C'est en lisant ce billet (et ses commentaires) sur le “Kelso’s Corner” blog que j'ai commencé à comprendre ma douleur. Feinberg explique: « It’s not quite ‘simple bounding box,’ which wouldn’t permit words inside words, or nestling up to ascenders and descenders. It’s full glyph intersection testing, but with a sprinkle of CS applied to make it work at interactive speeds. »
En effet ! Le défi est d'accélérer au maximum les tests de collisions afin de rendre le temps de travail supportable. Vous n'imaginez pas combien ce petit problème d'optimisation, dans l'environnement Java, devient un casse-tête insondable une fois transposé dans le contexte du scripting InDesign. Mes tentatives se sont longtemps heurtées au mur du temps d'exécution et c'est après des mois de surplace que j'ai finalement repris le script à partir de zéro. Malgré le secret industriel auquel est tenu Jonathan Feinberg (le code de Wordle appartient en partie à IBM), ce dernier a disséminé sur le Net quelques indices sur son approche algorithmique. Une clé essentielle en a été livrée au détour d'une question débattue sur StackOverflow: “Algorithm to implement something like Wordle”. J'ai également déniché un papier de synthèse très éclairant sur le site IBM Research: “Participatory Visualization with Wordle” (PDF) — document signé par Fernanda B. Viégas, Martin Wattenberg et Jonathan Feinberg.
Tous ces éléments m'ont permis d'élaborer une nouvelle stratégie pour conjurer les délais insoutenables d'InDesign en matière de calcul polygonal. Wordalizer implémente certaines des techniques révélées par Feinberg (indexation spatiale via un quadtree, décomposition des formes vectorisées en quadrillage hiérarchique, etc.). Bien sûr, mon outil ne peut pas rivaliser avec Wordle en termes de performances. Ce n'est qu'un script ! Mais je pense que la version d'essai vous amusera.
La capture ci-dessus montre la boîte de dialogue principale et ses paramètres. (Notez que la version d'essai inhibe la case à cocher « Éditer la liste pondérée » et ne permet pas à l'utilisateur de réutiliser, lors d'un ré-appel du script, la dernière extraction lexicale et les paramètres de production. Il faut donc recommencer l'analyse et refaire les réglages à chaque génération nuageuse.)
Voici, lorsqu'elle est disponible, la fenêtre d'édition d'une liste pondérée :
Enfin, le nuage de mots résultant (basé sur Les Fleurs du mal) :
Avec un autre paramétrage :
[MàJ] Dans sa version actuelle, Wordalizer supporte 6 langues. Placez comme d'habitude le fichier, WordalizerTry.js, dans votre dossier de Scripts InDesign. Il n'y aura plus qu'à cliquer pour vous plonger la tête dans les nuages.
• Mise à jour: version 1.25 disponible !
Comments
Excellentissime, OuScriPo en diable…
Merci, ami, d'avoir encore passé des nuits à réaliser ce script totalement improbable… A nouveau, permets moi de te sermonner (!!), des end-users comme moi sommes prêts à débourser quelques euros car l'usage de ce script dans de nombreux domaines (dont les blogs, si, si…) fonctionne comme une signature poétique rafraîchissante…
Je viens de le faire pour le prochain livre que l'on va publier... c'est bluffant ;-)
Et voilà un script que l'on va retrouver sur de nombreuses couvertures, foi de graphiste de livres…!
Demain dans urbanbike.
Dommage qu'il ne fonctionne pas sur la CS3 :(
> Dommage qu'il ne fonctionne pas sur la CS3 :(
Oui, Patrick, je le regrette également. La rétrocompatibilité n'est pas une partie de rigolade, surtout avec les scripts exportés en binaire (jsxbin). Je n'exclus pas cependant de m'attaquer à une version CS3 si la vague de protestation devient tsunamique ;-)
Au passage, merci pour le beau billet publié sur patpro: http://www.patpro.net/blog/index.ph...
Great tool! Thank you!
Any chance Wordalizer will support Russian?
Very cool, thanks!
Je voudrai bien avoir un espace pour faire la promotion de ton superbe travail. Mais cela sera bientôt possible ;-)
Bravo, tous mes respects et comme Jean-Christophe le dit, on va voir du Wordalizer à toutes les sauces!!!
A+ et amitiés Loic
Mon ami, this is great! :)
Merci!
@ Rusticos
> Any chance Wordalizer will support Russian?
That's not technically a problem, but I need two things:
1) A Russian translation of the UI strings
2) A Russian "stop word" list to make Wordalizer skip the non-semantic words
Can anybody help me?
so cool! I love it :D thank you
I can help you with Russian.
Give me all the UI strings and I'll translate them (but there's no much need in this as English graphic interface will do)
Stop word list is also possible to do. Maybe you'll just work with all the words without exceptions (like Wordle does) for the first time?
Nadya
It is absolutely a fantasy.
I was dreaming of learn Rhino 3D to design and make illustration but this project is a door to many things.
It is possible to use lines, vectors, etc?
Thanks to all for your plebiscite!
@ Nadya Miloserdova
Thank you too. Wordalizer will work with Russian. Another pen friend sent me a stop word list. As you said, he told me that English is much better suitable for UI than Russian...
@+
Marc
You can use the Russian stop word list that Wordle uses, by downloading the cue.language package from github: http://github.com/vcl/cue.language
This seems interesting, but I'm not sure how to get it to work. I've dropped the script in the script folder, but don't know where or how to launch it. Can you clarify how this is done?
Hi,
how I can get the full version. I cannot found any word to buy this script. Sorry my bad english.
Thanks for answer,
with best regards,
peppi
@ Jonathan Feinberg
Thank you for the "cue.language package" link. It seems to be a goldmine ;-)
- - -
@ Vong Lee
> I've dropped the script in the script folder,
> but don't know where or how to launch it
Make sure you drop the WordalizerTry.jsxbin file in the "Scripts Panel" subfolder of your "Scripts" folder. Then the script will appear in your InDesign script panel (Window > Automation > Scripts). For more information about installing scripts, see the excellent Peter Kahrel's general overview here: http://www.kahrel.plus.com/indesign...
- - -
@ peppi
> how I can get the full version. I cannot
> found any word to buy this script
Thanks for your message. For the time being Wordalizer is provided as a BETA "Try" version, I'm still working on the final full version ;-)
Kind regards,
Marc
you saved my ass, i have lokked for sth like this for hours! now it'll save me DAYS of work! thanks a lot!
ou: merci beaucoup!
Can't wait for the full version, but will it leave the words as 'live' text so any spelling mistakes can be corrected on the final cloud?
Hi Phil,
The full version won't leave the words editable on the final cloud because it's pure vector shape. But the full version lets you edit the words (add, delete, modify, even change weight) BEFORE the process, so you can correct any mistake at this level.
@+
Marc
any way this will work with CS3?
Vraiment sympa !
Et la cerise sur le gâteau serait de pouvoir utiliser le nuancier d'un document comme "thème"... :D
Thanks for this fantastic tool. I can't wait to buy the final version!
Best regards
Max
If I created a word cloud could I make any of those words links to the article?
Marc, ta nouvelle version expédiée pour test est super… L'option mots rares est amusante. Effectivement, offre-nous la possibilité — dans une version pro — de pouvoir enregistrer des sets via des fichiers annexes au format "txt" qui seront disponibles (et pense à ajouter un string spécifique à la typo)…
Je suis prêt à nouveau à faire chauffer ma carte bleue, vu le temps gagné…
NB : des liens HTTP reliés à chaque mot…?!
@ Gina
> If I created a word cloud could I make
> any of those words links to the article?
Well, it's pretty difficult to design such a feature. The question is: given a word, what is the exact location / URL / page to link to? While it is technically possible to attach an hyperlink to any word (in the word cloud document), how could the user specify the destinations before running Wordalizer?
@ Jean-Christophe
Merci (une fois n'est pas coutume!) pour ce nouveau dithyrambe. La version 1.25 de wZ est encore en cuisine. Elle propose en effet des améliorations notoires, au premier chef desquelles un analyseur lexical 100 fois plus rapide, multilingue, qui semble avoir conquis tous les beta-testeurs.
J'ai eu par exemple un retour très sympa de Theunis de Jong (« Jongware » pour les intimes) qui a testé le script sur un doc de 4000 pages, soit plus de 4 millions de caractères. Theunis m'explique dans un premier temps qu'InDesign souffrait beaucoup à son niveau pour gérer un tel monstre lors d'une opération de rechercher/remplacer:
« InDesign really wasn't happy with that, each search & replace to get rid of xml tags made it freeze in its tracks. »
Puis, il a lancé wZ pour voir comment il allait s'en sortir de son côté :
« Examining the word list and generating the World took about a minute! A-ma-zing! It [=Wordalizer] can go through text faster than ID itself! »
Tout ça pour dire qu'une des plus grosses évolutions de la version à venir, c'est d'abord la performance. Je détaillerai bientôt les autres fonctionnalités introduites, MAIS il restera encore des potentiels inexplorés...
J'ai noté dans ma « todo list » plusieurs requêtes exprimées par les utilisateurs, comme la gestion de presets, la prise en charge directe de sources Web, la possibilité d'éditer les thèmes. Mes interlocuteurs russes — car wZ 1.25 prend en charge 6 langues dont le russe — ont même évoqué l'éventualité d'intégrer au script un lemmatiseur (« stemmer ») pour dégager les entrées lexicales sans flexion (suppression des féminins, pluriels, etc.) !
Il y a enfin la question des hyperliens évoquée ci-dessus avec Gina et que tu abordes à ton tour. Ça fait un peu beaucoup de pain sur ma planche ;-)
Je dois toutefois veiller à proposer une version stable avec des fonctionnalités arrêtées à un instant T, et surtout à ne pas transformer le script en une usine à gaz. Car il y a toujours un seuil pondéral à surveiller lors de l'implémentation...
Donc, dans l'immédiat, je vais m'en tenir à la version 1.25 telle que certains d'entre vous ont pu la tester en coulisses. Elle contient déjà un gros paquet de nouvelles vitamines !
@+
Marc
dear creator!
i'm in the need of a script-snippet to create statistics of words used in articles.
(for my diploma project)
i wanted to base myself on a tag-cloud-script, but doesn't work out.
i thought i could probably use parts of your wordalizer js. is the source code of the pro-version "readable"?
This seems interesting, but I'm not sure how to get it to work. I've dropped the script in the script folder, but don't know where or how to launch it. Can you clarify how this is done?
@ Mädchen spiele
1) Put WordalizerTry.js in the Scripts/Scripts Panel folder.
2) Open the Scripts panel
(Window > Automatisation > Scripts).
3) Double-click on WordalizerTry.js.
Thx
This is such an awesome script! Going to incorporate some of its output into some mock-up web designs I'm playing around with. Looking forward to the full release, keep up the good work!!
This is what I exactly needs. I have a project right now and and good thing a friend of mine referred me to this one. Thank you for Wordalizer!
This is what I exactly needs. I have a project right now and and good thing a friend of mine referred me to this one. Thank you for Wordalizer!
Wordalizer is way cool -- no doubt about it!
Is there a way to include spaces between words or special characters (like bullet)?
Thanks all :^)
> Is there a way to include spaces between
> words or special characters (like bullet)?
Yes, just insert the desired characters through the weighted word list editor.
Note. - "Edit Weighted List" feature is enabled in Wordalizer Pro only.
@+
Marc
Love Wordalizer...is this compatible with CS5?!? My design firm is upgrading and want to still use it. Currently running CS2.
Nice feature this wordle tool. In my opinion you can use something like this for design. It makes no sense for usability.
Your creation is so cool. I really liked the alphabets creation.
very interesting
Thanks for introducing me to this useful Wordalizer script.
Thanks for sharing.
I love the word cloud inspired by "One Hundred Years of Solitude"
Hi. Your creation is so cool. I really liked the alphabets creation...
“Weighted Word List” is really awesome.Keep it up!
Wonderful creation!...this is really a useful thing to me since I am fond of writing; it would give my blog a nice appearance...could give additional attraction to readers.
==================================
[EN] THIS COMMENT THREAD IS CLOSED.
FOR FURTHER DISCUSSION ABOUT WORDALIZER,
PLEASE POST YOUR MESSAGE IN THE
“FREQUENTLY ASKED QUESTION” PAGE.
==================================
[FR] CE FIL DE COMMENTAIRES EST FERMÉ.
POUR POURSUIVRE LA DISCUSSION SUR WORDALIZER,
MERCI DE POSTER VOTRE MESSAGE DANS
LA « FOIRE AUX QUESTIONS ».
==================================