Le contexte
- Jetez un œil à Wordle: http://www.wordle.net/
- Il est beaucoup plus beau que tout autre générateur de nuage de mots que j'ai vu
- Remarque: la source n'est pas disponible - lisez la FAQ: http://www.wordle.net/faq#code
Mes questions
- Existe-t-il un algorithme qui fait ce que fait Wordle?
- Si non, quelles sont les alternatives qui produisent des types de sortie similaires?
Pourquoi je demande
- juste curieux
- vouloir apprendre
Réponses:
Je suis le créateur de Wordle. Voici comment fonctionne réellement Wordle:
Comptez les mots, jetez les mots ennuyeux et triez par ordre décroissant. Conservez les N premiers mots pour certains 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, comme "à une position x aléatoire au centre vertical". Dans l'ordre décroissant de fréquence, procédez comme suit pour chaque mot:
C'est tout. La partie difficile consiste à effectuer efficacement les tests d'intersection, pour lesquels j'utilise la mise en cache du dernier hit, des boîtes de délimitation hiérarchiques et un index spatial à quatre arbres (qui sont des choses que vous pouvez en savoir plus avec une recherche Google assidue).
Edit: Comme l'a souligné Reto Aebersold, il y a maintenant un chapitre de livre, disponible gratuitement, qui couvre ce même territoire: Beautiful Visualization, Chapter 3: Wordle
la source
Voici un très bon javascript de Jason Davies qui utilise d3. Vous pouvez même utiliser des polices Web avec lui.
Démo: http://www.jasondavies.com/wordcloud/
Github: https://github.com/jasondavies/d3-cloud
la source
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 beaux nuages de wordle.net mais il vous donne une idée de la façon dont cela pourrait être fait.
Vous pouvez retrouver le projet ici .
la source
J'ai créé un composant Silverlight qui utilise l'algorithme que Jonathan suggère ici. Le code source et les exemples de projets sont tous disponibles sur mon blog:
http://whydoidoit.com
Mon nuage vous permet de colorer et de dimensionner les mots en fonction de différentes pondérations et prend en charge la sélection de mots (à partir d'une coordonnée) et la mise en surbrillance des mots sélectionnés. Vous pouvez utiliser la source comme bon vous semble.
la source
Je travaille sur WordCram , une bibliothèque de traitement pour créer des nuages de mots. Il est assez fortement influencé par Wordle et est informé par le même fichier PDF lié à ce qui précède. Il gère la détection de collision pour vous et vous permet de vous concentrer sur la façon dont vous souhaitez que vos mots soient disposés, colorés, tournés, etc.
la source
http://code.google.com/apis/visualization/documentation/gallery.html
Découvrez la visualisation du nuage de mots. Pas aussi sophistiqué que wordle.net mais très facile à ajouter à votre site.
la source
Je cherchais une visualisation de type 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 - je n'ai rien trouvé, mais grâce aux informations que j'ai trouvées ici (Surtout l'explication de Jonathan et le lien d'Aeby), j'ai enfin pu implémenter ' Cloudio ', qui se rapproche relativement 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 pouvez définir des fournisseurs de contenu et d'étiquettes pour modifier la disposition d'un cloud et l'ajouter à d'autres plug-ins Eclipse ou RCP applications. Vous pouvez également modifier la façon dont la position initiale d'une chaîne est calculée, de sorte qu'il n'est pas difficile de l'utiliser pour la visualisation de cluster ou autre. Il est toujours mal documenté et limité à certains égards (et j'ai fait le téléchargement initial il y a quelques heures, donc cela pourrait encore être un peu bogué), mais si vous êtes intéressé, voici le lien:
Et voici un lien vers certains nuages créés, au cas où vous voudriez une impression rapide: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
À la vôtre, Stephan
la source
Voir ici mon implémentation de Wordle comme cloud. 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
la source
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 choisi de la Bible.
Il est basé sur l'algorithme décrit par Jonathan Feinberg. Les tests de hit utilisent un arbre quadruple, mais les cadres de délimitation sont basés sur le rectangle de délimitation du glyphe. Je souhaite décomposer le glyphe en de nombreux rects de délimitation plus petits pour permettre le placement des mots dans le cadre de délimitation d'un glyphe.
GitHub: https://github.com/PetahChristian/LionAndLamb
la source
J'ai ici un générateur de Tag Cloud, que j'appelle Disorganizer :)
Sources TagCloudService et le contrôle de balisage du rasoir et un WinForm à des fins de test que vous pouvez mettre dans votre blog, votre profil, etc., avec un petit wrapper autour. Il utilise fortement l'espace de noms C # 4.0 et System.Drawing.
Je l'ai créé parce qu'avec les autres générateurs de cloud, 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. Étant donné que l'affichage d'animation de survol en HTML est nécessaire pour moi (je le fais avec des
<a>
balises superposées et absolument positionnées ), je n'ai pas développé d'affichage de mots sous n'importe quel angle - ils sont verticaux ou horizontaux.Avertissement: Les liens ci-dessus peuvent devenir invalides dans quelques mois, je prévois de le délier lentement du projet environnant dans un projet distinct.
Vous pouvez voir une démonstration de travail sur cet exemple de billet de blog , mais elle est incomplète et dans un site incomplet. Contactez-moi si quelqu'un veut contribuer, je vais le séparer dès que possible.
la source
Voici encore une autre implémentation de bout en bout de wordle en Python 3 largement basée sur le schéma initial de Jonathan Feinberg (QuadTrees, spirales, etc.).
Le code (commenté, avec un fichier ReadMe détaillé) est disponible gratuitement dans ce référentiel Github et c'est un exemple wordle créé avec le code.
la source
Il y a une jolie petite bibliothèque JavaScript faite par Tim Dream:
https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md
Il peut créer un nuage de mots sur une toile ou avec des balises HTML avec de nombreuses options pour modifier le résultat. Il se rapproche vraiment de la sortie de wordle.
la source