Je suis le créateur de Wordle. Voici comment Wordle fonctionne réellement:
Comptez les mots, jetez les mots ennuyeux et triez-les par ordre décroissant. Conservez les N premiers mots pour quelques N. Attribuez à chaque mot une taille de police proportionnelle à son nombre. Générez une forme Java2D pour chaque mot à l'aide de l'API Java2D.
Chaque mot "veut" être quelque part, par exemple "à une position x aléatoire dans le centre vertical". En ordre décroissant de fréquence, faites ceci pour chaque mot:
place the Word where it wants to be
while it intersects any of the previously placed words
move it one step along an ever-increasing spiral
C'est ça. La partie difficile consiste à tester efficacement l'intersection, pour laquelle j'utilise la mise en cache du dernier accès, des cadres de sélection hiérarchiques et un index spatial à quatre arbres (tous vous pouvez en apprendre plus sur Google avec des recherches diligentes).
Edit: Comme Reto Aebersold l’a souligné, il existe maintenant un chapitre de livre, disponible gratuitement, qui couvre le même territoire: Belle visualisation, chapitre 3: Wordle
J'ai implémenté un algorithme tel que décrit par Jonathan Feinberg en utilisant python pour créer un nuage de tags. Il est loin des superbes nuages de wordle.net mais il vous donne une idée de ce que cela pourrait être. terminé.
Vous pouvez trouver le projet ici .
Voici un très beau javascript de Jason Davies qui utilise d3. Vous pouvez même utiliser webfonts avec elle.
J'ai créé un composant Silverlight qui utilise l'algorithme suggéré par Jonathan. Le code source et les exemples de projets sont tous disponibles sur mon blog:
Mon nuage vous permet de colorer et de dimensionner les mots en fonction de différentes pondérations. Il prend en charge la sélection de Word (à partir d'une coordonnée) et la mise en surbrillance de Word sélectionnée. La source est à vous d'utiliser comme bon vous semble.
Je travaille sur WordCram , une bibliothèque de traitement pour créer des nuages Word. Il est assez fortement influencé par Wordle et est informé par le même PDF aeby lié à ce qui précède. Il gère la détection des collisions pour vous et vous permet de vous concentrer sur la manière dont vous voulez que vos mots soient disposés, colorés et colorés. , tourné, etc.
http://code.google.com/apis/visualization/documentation/gallery.html
Découvrez la visualisation du nuage de mots. Pas aussi sophistiqué que wordle.net mais vraiment facile à ajouter à votre site.
Je cherchais une visualisation semblable à un wordle qui permettrait d'attribuer la couleur, la position initiale et la taille d'une chaîne liée à d'autres données, telles que la pertinence dans un texte - rien n'a été trouvé, mais grâce aux informations que j'ai trouvées ici (Surtout l'explication de Jonathan et le lien d'aeby), je pourrais enfin implémenter ' Cloudio ', qui est relativement proche de wordle (du moins, je le pense ...) et offre les fonctionnalités que je cherchais.
Il est implémenté avec SWT et JFace et j'ai essayé de l'intégrer dans le modèle MVC de JFace, de sorte que vous puissiez définir des fournisseurs de contenu et d'étiquettes pour modifier la disposition d'un nuage et l'ajouter à d'autres plug-ins Eclipse ou RCP. applications. Vous pouvez également modifier le mode de calcul de la position initiale d'une chaîne, de sorte qu'il ne soit pas difficile de l'utiliser pour la visualisation de la grappe ou autre. Il est encore mal documenté et limité à certains égards (et j'avais déjà téléchargé le fichier il y a quelques heures, donc il est peut-être encore un peu bogué), mais si cela vous intéresse, voici le lien:
Et voici un lien vers des nuages créés, au cas où vous voudriez avoir une impression rapide: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
A bientôt, Stephan
Voir ici mon implémentation de Wordle comme nuage. Il utilise le même algorithme en spirale et la structure de données QuadTree.
http://sourcecodecloud.codeplex.com
ou
http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win
J'ai un générateur Tag Cloud ici, que j'appelle Désorganizer :)
Sources TagCloudService et le contrôle du balisage du rasoir et a WinForm à des fins de test que vous pouvez mettre dans votre blog, votre profil, etc., avec un petit wrapper autour il. Il utilise fortement les espaces de noms C # 4.0 et System.Drawing.
Je l'ai créé parce qu'avec les autres générateurs de nuages, vous ne pouvez pas cliquer sur les balises pour naviguer et ne pouvez pas créer d'animations en survol, pour montrer qu'elles sont cliquables. Depuis que montrer l’animation de survol en HTML est nécessaire pour moi (je le fais avec des superpositions superposées, en position absolue <a>
tags) Je n'ai pas développé d'affichage Word à angle quelconque - ils sont soit verticaux, soit horizontaux.
Avertissement: Les liens ci-dessus risquent de ne plus être valables dans quelques mois. Je préviens de le détacher lentement du projet environnant dans un projet séparé.
Vous pouvez voir une démo en fonctionnement sur cet exemple de blog , mais elle est incomplète et sur un site incomplet. Contactez-moi si quelqu'un veut contribuer, je le séparerai dès que possible.
Lion and Lamb est une application iOS open source qui crée des nuages de mots en utilisant les mots les plus fréquents d'un livre de la Bible choisi.
Il est basé sur l'algorithme décrit par Jonathan Feinberg. Les tests d'impact utilisent un arbre quadruple, mais les boîtes englobantes sont basées sur le rectangle englobant du glyphe. Je souhaite décomposer le glyphe en plusieurs petits symboles pour permettre le placement de Word dans le cadre de sélection d'un glyphe.
Voici encore une autre implémentation de bout en bout de wordle dans Python 3 largement inspirés du schéma initial de Jonathan Feinberg (QuadTrees, Spirals, etc.).
Le code (commenté, avec le fichier ReadMe détaillé) est disponible gratuitement sur ce référentiel Github et il s’agit d’un exemple de wordle créé avec le code.