Domanda

Contesto

Le mie domande

  • È disponibile un algoritmo che fa ciò che fa Wordle?
  • In caso negativo, quali sono alcune alternative che producono tipi simili di output?

Perché lo sto chiedendo

  • solo curioso
  • vuoi imparare
È stato utile?

Soluzione

Sono il creatore di Wordle. Ecco come funziona Wordle:

Conta le parole, elimina le parole noiose e ordina in base al conteggio, in ordine decrescente. Mantieni le prime N parole per alcuni N. Assegna ad ogni parola una dimensione del carattere proporzionale al suo conteggio. Genera una forma Java2D per ogni parola, utilizzando l'API Java2D.

Ogni parola " vuole " essere da qualche parte, come " in una posizione x casuale nel centro verticale " ;. In ordine decrescente di frequenza, eseguire questa operazione per ogni parola:

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

Questo è tutto. La parte difficile sta nel fare il test di intersezione in modo efficiente, per il quale utilizzo la cache dell'ultimo colpo, i riquadri di delimitazione gerarchici e un indice spaziale quadrifoglio (tutte cose che puoi imparare di più con alcuni diligente googling).

Modifica: come ha sottolineato Reto Aebersold, ora c'è un capitolo del libro, disponibile gratuitamente, che copre questo stesso territorio: Bella visualizzazione, capitolo 3: Wordle

Altri suggerimenti

Ho implementato un algoritmo come descritto da Jonathan Feinberg usando Python per creare una nuvola di tag. È lontano dalle splendide nuvole di wordle.net ma ti dà un'idea di come si potrebbe fare.

Puoi trovare il progetto qui .

Ho creato un componente Silverlight che utilizza l'algoritmo che Jonathan suggerisce qui. Il codice sorgente e i progetti di esempio sono tutti disponibili sul mio blog:

http://whydoidoit.com

Nuvola di parole a colori

My cloud ti consente di colorare e dimensionare le parole in base a diversi pesi e supporta la selezione delle parole (da una coordinata) e l'evidenziazione delle parole selezionate. La fonte è tua da usare come meglio credi.

Esempio Word Cloud

Ecco un bellissimo javascript di Jason Davies che usa d3. Puoi persino usare i font web con esso.

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

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

Sto lavorando su WordCram , una libreria di elaborazione per creare nuvole di parole. È abbastanza fortemente influenzato da Wordle ed è informato dallo stesso PDF collegato sopra. Gestisce il rilevamento delle collisioni per te e ti consente di concentrarti su come vuoi che le tue parole siano disposte, colorate, ruotate, ecc.

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

Guarda la visualizzazione della nuvola di parole. Non elegante come wordle.net ma molto facile da aggiungere al tuo sito.

Stavo cercando una visualizzazione simile a un wordle che consentisse di assegnare il colore, la posizione iniziale e le dimensioni di una stringa correlata ad altri dati, come la pertinenza all'interno di un testo, non ho trovato nulla, ma grazie alle informazioni Ho trovato qui (in particolare la spiegazione di Jonathan e il link di aeby), potrei finalmente implementare " Cloudio ", che si avvicina relativamente a Wordle (at almeno penso di sì ...) e offre le funzionalità che stavo cercando.

È implementato con SWT e JFace e ho cercato di integrarlo nel modello MVC di JFace, in modo tale da poter impostare provider di contenuti ed etichette per modificare il layout di un cloud e aggiungerlo ad altri Eclipse- plugin o app RCP. È inoltre possibile modificare il modo in cui viene calcolata la posizione iniziale di una stringa, in modo che non sia difficile utilizzarla per la visualizzazione del cluster o altro. È ancora scarsamente documentato e limitato in qualche modo (e ho fatto il caricamento iniziale poche ore fa, quindi potrebbe essere ancora un po 'difettoso), ma se sei interessato, ecco il link:

Ed ecco un link ad alcuni cloud creati, nel caso in cui desideri una rapida impressione: https: // github. com / sschwieb / Cloudio / wiki / example-Nuvole

Saluti, Stephan

Qui vedi la mia implementazione di Wordle come cloud. Utilizza lo stesso algoritmo a spirale e la struttura dati QuadTree.

http://sourcecodecloud.codeplex.com

o

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

Lion and Lamb è un'app iOS open source che crea nuvole di parole usando le parole più frequenti di un libro della Bibbia scelto.

Si basa sull'algoritmo descritto da Jonathan Feinberg. I test di successo utilizzano un albero quad, ma i rettangoli si basano sul rettangolo di delimitazione del glifo. Voglio scomporre il glifo in molti rect di delimitazione più piccoli per consentire il posizionamento delle parole all'interno del riquadro di delimitazione di un glifo.

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

 Una nuvola di parole del libro biblico dell'Apocalisse

Ho un generatore di Tag Cloud qui, che chiamo Disorganizer :)

Fonti TagCloudService e il controllo marcatura rasoio e un WinForm a scopo di test che puoi inserire nel tuo blog, profilo, ecc. con un piccolo involucro attorno ad esso. Utilizza l'amplificatore C # 4.0 &; Spazio dei nomi System.Drawing pesantemente.

L'ho creato perché con gli altri generatori di cloud non è possibile fare clic sui tag per spostarsi e non è possibile creare animazioni al passaggio del mouse per mostrare che sono selezionabili. Dal momento che mostrare l'animazione al passaggio del mouse in HTML è necessario per me (lo sto facendo con tag <a> posizionati in modo sovrapposto) Non ho sviluppato la visualizzazione di parole ad angolo qualsiasi: sono verticali o orizzontali.

Avvertenza: i link sopra potrebbero diventare non validi tra qualche mese, ho intenzione di scioglierlo lentamente dal progetto circostante in un progetto separato.

Puoi vedere una demo funzionante in questo post di blog di esempio , ma è incompleto e in un sito incompleto. Contattami se qualcuno vuole contribuire, andrò avanti con la separazione al più presto.

Ecco un'altra end-to-end implementazione di wordle in Python 3 in gran parte basata sullo schema iniziale di Jonathan Feinberg (QuadTrees, spirali, ecc.).

Il codice (commentato, con file Leggimi dettagliato) è disponibile gratuitamente in questo repository Github e questo è un wordle di esempio creato con il codice.

 Macbeth

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top