layout - tagxedo - Algoritmo para implementar una nube de palabras como Wordle.
word cloud (10)
Aquí hay un javascript realmente bueno de Jason Davies que usa d3. Incluso puedes usar webfonts con él.
Demostración: http://www.jasondavies.com/wordcloud/
Contexto
- Eche un vistazo a Wordle: http://www.wordle.net/
- Es mucho mejor que cualquier otro generador de nube de palabras que haya visto.
- Nota: la fuente no está disponible, lea las preguntas frecuentes: http://www.wordle.net/faq#code
Mis preguntas
- ¿Hay un algoritmo disponible que hace lo que hace Wordle?
- Si no, ¿cuáles son algunas alternativas que producen tipos similares de salida?
Porque pregunto
- Sólo curioso
- querer aprender
Aquí vemos mi implementación de Wordle como nube. Utiliza el mismo algoritmo espiral y la estructura de datos de QuadTree.
http://sourcecodecloud.codeplex.com
o
http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win
Estaba buscando una visualización similar a un wordle que permitiera asignar color, posición inicial y tamaño de un String relacionado con otros datos, como la relevancia dentro de un texto; no encontré nada, pero gracias a la información que encontré aquí (Especialmente la explicación de Jonathan y el enlace de aeby), finalmente pude implementar '' Cloudio '', que se acerca bastante a wordle (al menos eso creo ...) y ofrece las funciones que estaba buscando.
Se implementa con SWT y JFace, e intenté integrarlo en el modelo MVC de JFace, de modo que pueda configurar proveedores de contenido y etiquetas para modificar el diseño de una nube y agregarlo a otros complementos de Eclipse o RCP aplicaciones También puede modificar la forma en que se calcula la posición inicial de una cadena, de modo que no sea difícil usarla para la visualización de agrupaciones o de otra manera. Todavía está mal documentado y limitado de alguna manera (e hice la carga inicial hace unas horas, por lo que todavía podría estar un poco mal), pero si está interesado, aquí está el enlace:
Y aquí hay un enlace a algunas nubes creadas, en caso de que quiera una impresión rápida: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
Saludos, Stephan
Estoy trabajando en WordCram , una biblioteca de Procesamiento para hacer nubes de palabras. Está muy fuertemente influenciado por Wordle, y está informado por el mismo PDF que está vinculado a arriba. Maneja la detección de colisiones por ti y te permite enfocarte en cómo quieres que tus palabras estén dispuestas, coloreadas, rotadas, etc.
He creado un componente Silverlight que usa el algoritmo que Jonathan sugiere aquí. El código fuente y los proyectos de ejemplo están disponibles en mi blog:
Mi nube le permite colorear y dimensionar palabras en función de diferentes ponderaciones y admite la selección de palabras (de una coordenada) y el resaltado de palabras seleccionadas. La fuente es tuya para usarla como mejor te parezca.
He implementado un algoritmo como lo describe Jonathan Feinberg usando python para crear una nube de etiquetas. Está lejos de las hermosas nubes de wordle.net pero te da una idea de cómo podría hacerse.
Puedes encontrar el proyecto here .
Lion and Lamb es una aplicación iOS de código abierto que crea nubes de palabras utilizando las palabras más frecuentes de un libro elegido de la Biblia.
Se basa en el algoritmo descrito por Jonathan Feinberg. La prueba de impacto utiliza un árbol cuádruple, pero los cuadros delimitadores se basan en el rectángulo delimitador del glifo. Quiero dividir el glifo en muchos rectificadores de límite más pequeños para permitir la colocación de palabras dentro del cuadro delimitador de un glifo.
Soy el creador de Wordle. Así es como funciona realmente Wordle:
Cuente las palabras, deseche las palabras aburridas y ordénelas según el conteo, descendiendo. Mantenga las primeras N palabras para algunos N. Asigne a cada palabra un tamaño de fuente proporcional a su conteo. Genere una forma Java2D para cada palabra, utilizando la API Java2D.
Cada palabra "quiere" estar en algún lugar, como "en alguna posición aleatoria x en el centro vertical". En orden decreciente de frecuencia, haga esto para cada palabra:
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
Eso es. La parte difícil es hacer la prueba de intersección de manera eficiente, para lo cual uso el almacenamiento en caché de último golpe, los cuadros delimitadores jerárquicos y un índice espacial de quadtree (todos los cuales son cosas sobre las que puede aprender más con un poco de google diligente).
Edit: Como señaló Reto Aebersold, ahora hay un capítulo de libro, disponible gratuitamente, que cubre este mismo territorio: Beautiful Visualization, Chapter 3: Wordle
Tengo un generador de Tag Cloud aquí, al que llamo Desorganizador :)
Las fuentes TagCloudService y el control de marcado de la maquinilla de afeitar y un WinForm para propósitos de prueba que puede poner en su blog, perfil, etc., con un pequeño envoltorio alrededor. Utiliza C # 4.0 y System.Drawing namespace pesadamente.
Lo creé porque con los otros generadores de nube no puedes hacer clic en las etiquetas para navegar y no se pueden crear animaciones de desplazamiento, para mostrar que se puede hacer clic. Para mí es necesario mostrar la animación de desplazamiento en HTML (lo hago con etiquetas <a>
posición absoluta superpuestas y <a>
) No he desarrollado ninguna visualización de palabras en ángulo, ya sea vertical u horizontal.
Advertencia: los enlaces anteriores pueden no ser válidos en unos pocos meses, planeo deshacerlo lentamente del proyecto circundante en un proyecto separado.
Puede ver una demostración de trabajo en este blog de muestra , pero está incompleta y en un sitio incompleto. Comuníquese conmigo si alguien quiere contribuir, continuaré separándolo lo antes posible.
http://code.google.com/apis/visualization/documentation/gallery.html
Echa un vistazo a la visualización de la nube de palabras. No es tan elegante como wordle.net pero es realmente fácil de agregar a su sitio.