Pergunta

Contexto

Minhas Questões

  • Existe um algoritmo disponível que faz o que Wordle faz?
  • Se não, quais são algumas alternativas que produz tipos semelhantes de saída?

Por que eu estou pedindo

  • apenas curioso
  • querem aprender
Foi útil?

Solução

Eu sou o criador de Wordle. Veja como Wordle realmente funciona:

Contar as palavras, jogar fora palavras chato, e classificar pela contagem, descendente. Mantenha a parte superior N palavras para alguns N. Atribuir cada palavra um tamanho de fonte proporcional à sua contagem. Gerar uma forma Java2D para cada palavra, usando a API Java2D.

Cada palavra "quer" estar em algum lugar, como "em alguma posição x aleatória no centro vertical". Em ordem decrescente de freqüência, fazer isso para cada palavra:

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

É isso. O duro parte é em fazer o cruzamento de teste de forma eficiente, para o qual eu usar o cache de último hit, caixas delimitadoras hierárquicos, e um índice espacial quadtree (que são coisas que você pode aprender mais sobre com alguma googling diligente).

Edit: Como Reto Aebersold salientou, há agora um capítulo de livro, disponível gratuitamente, que cobre este mesmo território: Visualization bonito, Capítulo 3: Wordle

Outras dicas

Eu tenho implementado um algoritmo como descrito por Jonathan Feinberg usando python para criar uma nuvem de tags. É longe das belas nuvens de wordle.net mas ela lhe dá uma idéia de como isso poderia ser feito.

Você pode encontrar o projeto aqui .

Eu criei um componente do Silverlight que usa o algoritmo Jonathan sugere aqui. Os projetos de código-fonte e exemplo estão disponíveis no meu blog:

http://whydoidoit.com

Cor nuvem palavra

Meu nuvem permite cores e palavras de tamanho com base em diferentes ponderações e suporta seleção palavra (de uma coordenada) e destaque palavra selecionada. A fonte é seu para usar como quiser.

Exemplo Nuvem da palavra

Aqui está um muito bom javascript um de Jason Davies que usa d3. Você ainda pode usar WebFonts com ele.

Demonstração: http://www.jasondavies.com/wordcloud/

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

Eu estou trabalhando em WordCram , uma biblioteca de processamento para fazer palavra nuvens. É muito fortemente influenciado por Wordle, e é informado pelo mesmo PDF Aeby link acima. Ele lida com a detecção de colisão para você, e permite que você se concentrar em como você deseja que suas palavras colocado para fora, colorido, girado, etc.

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

Confira a visualização da nuvem da palavra. Não como sofisticados como wordle.net mas real fácil de adicionar ao seu site.

Eu estava procurando por um wordle-like visualização que permitiria a cor atribuir, posição inicial e tamanho de uma String relacionadas com outros dados, tais como a relevância dentro de um texto - não encontrou nada, mas graças à informação eu encontrei aqui (especialmente a explicação de Jonathan e ligação de Aeby), eu poderia finalmente implementar ' Cloudio ', que vem relativamente perto wordle (pelo menos eu penso assim ...) e oferece os recursos que eu estava procurando.

Ele é implementado com SWT e JFace, e eu tentou integrá-la no MVC-modelo de JFace, de modo que você pode definir Content e etiqueta-fornecedores para modificar o layout de uma nuvem e adicioná-lo a outro eclipse plugins ou RCP Apps. Você também pode modificar a forma como a posição inicial de uma string é calculado, de modo que não é difícil de usá-lo para visualização cluster ou mais. Ele ainda é mal documentado e limitada em alguns aspectos (e eu fiz o carregamento inicial há poucas horas, por isso ainda pode ser um pouco de buggy), mas se você estiver interessado, aqui está o link:

E aqui está um link para algumas nuvens criadas, no caso de desejar uma impressão rápida: https: // github. com / sschwieb / Cloudio / wiki / example-Nuvens

Cheers, Stephan

Aqui ver minha implementação do Wordle como nuvem. Ele usa o mesmo algoritmo em espiral e a estrutura de dados Quadtree.

http://sourcecodecloud.codeplex.com

ou

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

Leão e cordeiro é uma iOS app-fonte aberto que cria nuvens palavra usando as palavras mais frequentes a partir de um livro escolhido da Bíblia.

É baseado no algoritmo como descrito por Jonathan Feinberg. testes Hit faz utilizar uma árvore quad, mas as caixas delimitadoras são baseados em retângulo delimitador do glifo. Eu quero quebrar o baixo glifo em muitas rects delimitadoras menores para permitir a colocação palavra dentro da caixa delimitadora de um glifo.

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

Uma nuvem da palavra do livro bíblico do Apocalipse

Eu tenho um gerador de nuvem de tags aqui, que eu chamo Disorganizer :)

TagCloudService eo navalha marcação de controle e uma WinForm para fins de teste que você pode colocar no seu blog, perfil etc, com um pouco de invólucro em torno dele. Ele usa C # 4.0 e System.Drawing namespace pesadamente.

Eu criei isso porque com os outros geradores nuvem você não pode clicar em tags para navegar e não pode criar pairar animações, para mostrar que eles são clicáveis. Desde mostrando animação pairar em HTML é necessário para mim (eu estou fazendo isso com sobreposição-ed, com posição absoluta etiquetas <a>) Eu não desenvolveram qualquer ângulo de visualização palavra - eles são vertical ou horizontal

.

Atenção:. Os links acima pode ir inválida em poucos meses, eu pretendo lentamente desatá-lo a partir do projeto circundante em um projeto separado

Você pode ver um trabalho de demonstração neste amostra blog , mas é incompleta, e em um site incompleta. Contacte-me se alguém quiser contribuir, vou continuar com separando-lo o mais cedo possível.

Aqui está ainda outra end-to-end implementação de wordle em Python 3 em grande parte baseado no esboço inicial por Jonathan Feinberg (Quadtrees, espirais, etc.).

O código (comentado, com o arquivo detalhado ReadMe) está disponível gratuitamente neste Github repositório e este é um wordle amostra criado com o código.

Macbeth

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top