Crie uma nuvem de palavras a partir de um texto
O código deve receber texto da entrada padrão:
A saída deve ser um arquivo PNG que contenha a nuvem de palavras correspondente ao texto:
O acima da nuvem da palavra foi criado usando um aplicativo on-line especializada e filtrada a palavra Thee outras palavras comuns ( of, is, and, not, e the). Como se trata de código de golfe, as palavras comuns não serão filtradas e deixo a estética secundária da nuvem de palavras à escolha de cada codificador. Ao contrário da imagem aqui examinada, nenhuma palavra deve ser excluída, comum ou não. A definição de uma palavra é definida abaixo.
Nesse caso, uma palavra é qualquer coisa alfanumérica; números não estão atuando como separadores. Então, por exemplo, 0xAFqualifica-se como uma palavra. Separadores serão qualquer coisa que não seja alfanumérica, incluindo .(ponto) e -(hífen). Assim i.e.ou pick-me-upresultaria em 2 ou 3 palavras, respectivamente. Deve diferenciar maiúsculas de minúsculas - Thise thisseriam duas palavras diferentes, 'também seria um separador wouldne tserão 2 palavras diferentes de wouldn't.
As marcas devem aparecer agrupadas, mas não sobrepostas, e o tamanho da fonte deve ser diretamente proporcional ao número de ocorrências dessa palavra no texto. A palavra deve aparecer apenas uma vez. Cor de fonte específica não é necessária neste caso. A associação semântica não é um requisito.
Dica - Este outro código de golfe pode ajudar: Conte as palavras em um texto e exiba-as
Explique o que você considera uma nuvem de palavras . Também não entendo suas definições de saída. Você pode esclarecer o que você quer dizer com saída deve ser impresso com nova linha após cada caractere ?
A imagem de amostra não parece corresponder aos requisitos. Também cria uma pergunta sobre quantas vezes cada palavra deve aparecer na nuvem, que você não responde em lugar algum.
@TimSeguine Eu não acho que submissões de código-golfe têm qualquer tipo de reutilização ...
@TimSeguine Preocupação legítima, mas por que eu precisaria disso quando há dezenas de aplicativos gratuitos para fazer isso?
Sua palavra criador nuvem também parece ter filtrado of, is, and, not, e the.
Python 3, 363 308 293 274 caracteres
Chamá-lo assim: python cloud.py file.txt. O script usa o fdpgerador de gráfico direcionado à força do Graphviz para gerar a imagem (ele cuspirá um arquivo GraphViz em file.txt.dot e um arquivo de imagem PNG em file.txt.png). Isso significa que você precisará ter o Graphviz instalado.
A imagem acima é a nuvem que faz do Hamlet de Shakespeare - você pode dizer, pois contém "Ser ou não ser". Há também algumas bobagens deliciosas a serem encontradas:
É, para você e eu, o presunto de não que, ó senhor, nos tenha, o que agora ...
Pode ser necessário ajustar a constante /5na penúltima linha, dependendo do tamanho do seu texto. 5 funciona bem para textos do tamanho de Hamlet, 500 para textos bíblicos e assim por diante.