Frage

Kontext

Meine Fragen

  • Gibt es einen Algorithmus zur Verfügung, die das tut, was Wordle tut?
  • Wenn nein, was sind einige Alternativen, die ähnliche Arten von Ausgabe produziert?

Warum ich frage

  • nur neugierig
  • wollen lernen
War es hilfreich?

Lösung

Ich bin der Schöpfer von Wordle. Hier ist, wie Wordle tatsächlich funktioniert:

Zählen Sie die Wörter, wegzuwerfen langweilig Worte und sortieren Sie nach der Zählung, absteigend. Halten Sie die Top-N Wörter für einige N. jedes Wort eine Schriftgröße zuweisen proportional zu seiner Zählung. Generieren Sie eine Java2D Form für jedes Wort, das Java2D API.

Jedes Wort „will“ irgendwo, wie „an einem gewissen Zufall x-Position in der vertikalen Mitte“ sein. In absteigender Reihenfolge der Häufigkeit, tut dies für jedes Wort:

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

Das ist es. Die hart Teil ist die Schnitttest dabei effizient, für die ich in letzter Hit-Caching, hierarchische Begrenzungsboxen verwenden, und ein Quadtree räumlichen Index (von denen alle Dinge sind, können Sie mehr über mit einigen lernen fleißig googeln).

Edit: Wie Reto Aebersold wies darauf hin, gibt es jetzt ein Buchkapitel, frei verfügbar, die das gleiche Gebiet umfasst: Beautiful Visualization, Kapitel 3: Wordle

Andere Tipps

Ich habe einen Algorithmus implementiert, wie durch Jonathan Feinberg mit Python beschrieben, um einen Tag-Cloud zu erstellen. Es ist weit entfernt von den schönen Wolken von wordle.net aber es gibt Ihnen eine Vorstellung davon, wie es getan werden könnte.

Sie können das Projekt finden hier .

Ich habe eine Silverlight-Komponente erstellt, der den Algorithmus Jonathan schlägt hier verwendet. Der Quellcode und Beispielprojekte sind alle auf meinem Blog:

http://whydoidoit.com

Farbe Wortwolke

Meine Wolke Sie Farbe und Größe Wörter können auf unterschiedliche Gewichtungen basiert und unterstützt Wortauswahl (aus einer Koordinate) und ausgewählten Worthervorhebung. Die Quelle liegt bei Ihnen zu verwenden, wie Sie für richtig halten.

Beispiel Word Cloud

Hier ist ein wirklich schönes Javascript eines von Jason Davies, die d3 verwendet. Sie können sogar Webfonts mit ihr verwendet werden.

Demo: http://www.jasondavies.com/wordcloud/

Github: https://github.com/jasondavies/d3-cloud

Ich arbeite an WordCram , eine Verarbeitungsbibliothek für Wort Wolken zu machen. Es ist ziemlich stark von Wordle beeinflusst und wird durch den gleichen PDF aeby oben verlinkten informiert. Er sorgt für die Kollisionserkennung für Sie und können Sie konzentrieren sich auf, wie Sie Ihre Worte gelegt, gefärbt, gedreht, etc.

http://code.google.com/apis/visualization/documentation/ gallery.html

Überprüfen Sie die Wortwolke Visualisierung aus. Nicht so schick wie wordle.net aber wirklich einfach zu Ihrer Website hinzuzufügen.

Ich war auf der Suche nach einer wordle ähnlichen Visualisierungen, die auf andere Daten, wie beispielsweise die Relevanz innerhalb eines Textes bezogenen Farbe, Ausgangsposition und die Größe eines String zuweisen erlauben würde - finden nichts, aber dank der Informationen ich fand hier (vor allem Jonathan Erklärung und aeby den Link), konnte ich endlich umsetzen ‚ Cloudio ‘, die wordle relativ nahe kommt (bei Mindeste, was ich denke, so ...) und bietet die Funktionen, die ich suchte.

Es ist mit SWT und JFace umgesetzt, und ich versuchte, es in das MVC-Modell von JFace zu integrieren, so dass Sie Content- und Label-Anbieter setzen können das Layout einer Wolke zu ändern, und fügen Sie sie auf andere Eclipse- Plugins oder RCP-Anwendungen. Sie können auch die Art und Weise der Anfangsposition einer Zeichenfolge ändern berechnet wird, so ist das nicht schwierig es für die Cluster-Visualisierung oder anderes zu verwenden. Es ist nach wie vor schlecht dokumentiert und in gewisser Weise begrenzt (und ich habe die ersten Hochladen vor ein paar Stunden, so dass es immer noch ein bisschen buggy sein könnte), aber wenn Sie interessiert sind, hier ist der Link:

Und hier ist ein Link zu einigen erstellt Wolken, im Fall, dass Sie einen schnellen Eindruck: https: // GitHub. com / sschwieb / Cloudio / wiki / Beispiel-Wolken

Cheers, Stephan

Hier finden Sie meine Implementierung von Wordle wie Cloud. Er verwendet die gleiche Spirale Algorithmus und die Quadtree-Datenstruktur.

http://sourcecodecloud.codeplex.com

oder

http: // www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win

Löwe und Lamm ist ein Open-Source-App für iOS, die Wortwolken mit den häufigsten Wörter aus einem gewählten Buch der Bibel erstellt.

Es ist auf dem Algorithmus basiert, wie durch Jonathan Feinberg beschrieben. Hit-Tests haben einen Quad-Baum verwenden, aber die Begrenzungskästen auf dem Begrenzungsrechteck Glyphe basieren. Ich möchte die Glyphe in viele kleinere Begrenzungs Rects brechen Wort Platzierung innerhalb einer Glyphe Begrenzungsrahmen zu ermöglichen.

GitHub: https://github.com/PetahChristian/LionAndLamb

Ich habe einen Tag Cloud Generator hier, was ich nenne Disorganizer :)

Quellen TagCloudService und die Rasierer Auszeichnungssteuerung und eine WinForm zu Testzwecken dass Sie in Ihrem Blog können, Profil usw., mit einem wenig Wrapper um ihn herum. Es verwendet C # 4.0 & System.Drawing Namespace stark.

Ich habe es denn mit den anderen Cloud-Generatoren Sie nicht auf Tags klicken können, navigieren und können Hover-Animationen nicht schaffen, zu zeigen, dass sie anklickbar sind. Da zeigt in HTML-Hover-Animation für mich notwendig ist (ich mache das mit Overlay-ed, absolut positionierten <a> Tags) ich keine Winkelwortanzeige entwickelt haben -. Sie entweder vertikal oder horizontal sind

Achtung: Die oben genannten Verbindungen in ein paar Monaten ungültig gehen können, plane ich langsam in ein separates Projekt aus dem umgebenden Projekt losbinden

.

Sie können eine Arbeits Demo finden Sie unter auf dieser Blog-Post Probe, aber es ist unvollständig, und in einem unvollständigen Ort. Kontaktieren Sie mich, wenn jemand dazu beitragen will, werde ich bekommen mit ihm Trennung so schnell wie möglich aus.

Hier ist noch eine weitere End-to-End Implementierung von wordle in Python 3 weitgehend auf der Grundlage des ersten Entwurf von Jonathan Feinberg (Quadtrees, Spiralen, etc.).

Der Code (kommentiert, mit detaillierter ReadMe-Datei) ist frei verfügbar in diesem Github-Repository und diese eine Probe wordle wird mit dem Code erstellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top