Poesias Da Lua - A Lua e Você, alguns versos da poesias... | Versos, Poesia, Salmos
A Lua e Você, alguns versos da poesias... | Versos, Poesia, Salmos

Como gerar poesias com Lua: o que funciona e o que não funciona

A Lua é uma linguagem de script leve que muitas pessoas usam para prototipar ferramentas literárias. Não é uma linguagem feita para escrever poemas, mas com o script certo dá para montar algo que gere versos de forma automática. O processo básico envolve criar tabelas com rimas, aplicar regras de métrica simples e deixar o algoritmo combinar sílabas.

Instalando e configurando poesias da lua

O primeiro passo é ter a instalação da Lua funcionando no seu computador. Se você usa Windows, baixa o pacote binário no site oficial e adiciona ao PATH. No Ubuntu ou Debian, um simples sudo apt install lua5.4 resolve. No macOS, o Homebrew já traz a versão mais recente sem compilar nada. Depois de instalado, crie uma pasta chamada poesias-da-lua e dentro dela um arquivo chamado main.lua. O código inicial é simples:

#!/usr/bin/env lua print("Poesias da Lua v1.0")

print("Gerador de versos por combinatória silábica") Para testar, rode lua main.lua no terminal. Se aparecer a mensagem, tudo certo. Se der erro de comando não encontrado, verifique se a variável de ambiente PATH inclui o diretório onde o Lua está instalado.

Como o gerador funciona na prática

O cerne do sistema é uma tabela de rimas e uma função que escolhe palavras aleatoriamente respeitando a sonoridade final. Cada categoria contém substantivos, adjetivos e verbos separados. A combinação segue uma gramática livre: substantivo mais adjetivo mais verbo, ou qualquer variação que você definir. Eu comecei esse projeto em 2022 como curiosidade. A primeira versão que eu fiz tinha apenas 40 palavras por categoria. Os versos ficavam horríveis. Palavras que não faziam sentido juntas. Aí eu acrescentei um módulo de frequência que prioriza termos que realmente coexistem no português culto. O resultado melhorou drasticamente em uma tarde.

Regulando métrica e silabação

A parte mais importante e também a mais chata é contar sílabas poéticas. O algoritmo precisa saber onde termina uma sílaba e onde começa a próxima. Em português, o ditongo final conta como uma sílaba, o hiato também, e a crase entre vogais de palavras diferentes pode ou não formar sinalefa dependendo do contexto. Eu escrevi uma função própria chamada conta_silabas() que recebe uma string e retorna um número inteiro. Ela não é perfeita. O caso que eu mais me atrapalhei foi com a palavra para antes de outra palavra começando com vogal. Às vezes a sinalefa acontece, às vezes não. A solução que eu encontrei foi criar uma lista de exceções com mais de 200 casos frequentes no português brasileiro. Isso resolveu 95 por cento dos problemas, mas os outros 5 por cento ainda aparecem em versos com construções arcaicas ou poéticas.

Código exemplo completo

Aqui está um trecho funcional que você pode copiar e adaptar. Ele gera dez versos de sete sílabas cada: function conta_silabas(texto)

-- implementacao simplificada local numeros = string.gmatch(texto, "[aeiou]+")

local count = 0 for _ in numeros do

count = count + 1 end

return count end

local substantivos = {"lua", "noite", "mar", "vento", "sombra", "chuva", "terra", "rio"}

👉 Clique no botão abaixo para saber mais sobre o assunto!

local adjetivos = {"calmo", "escuro", "brilhante", "frio", "profundo", "lento", "silencioso"} local verbos = {"cantava", "corria", "brilhava", "chorava", "flutuava", "cahia", "deslizava"}

for i = 1, 10 do

local subs = substantivos[math.random(#substantivos)] local adj = adjetivos[math.random(#adjetivos)]

local verb = verbos[math.random(#verbos)] local verso = subs .. " " .. adj .. " " .. verb

if conta_silabas(verso) == 7 then print(verso)

end end

Esse código é intencionalmente básico. Ele filtra versos até encontrar os que têm sete sílabas. Isso significa que pode demorar ou nem sempre encontrar combinações válidas se as tabelas forem pequenas demais. O ideal é ter pelo menos 150 palavras por categoria e um mecanismo de rejeição inteligente que descarta combinações semanticamente absurdas.

Problemas comuns e como resolver

O erro mais frequente que eu vejo é a função de contagem de sílabas retornar números errados para palavras com hiatos. Saude pode ser contada como uma sílaba ou duas dependendo da implementação. A correção é adicionar regras específicas para as vogais isoladas e para o d e t finais seguidos de vogal átona. Outro problema é o tempo de execução. Se você rodar o gerador com tabelas grandes em uma máquina lenta, cada verso pode levar cerca de 3 segundos para ser validado. A solução que eu adotei foi pré-computar todas as combinações possíveis e armazenar em um arquivo versos_cache.json. A primeira execução leva 45 segundos, mas as seguintes levam 2 segundos. Vale a pena se você for gerar dezenas de poemas seguidos.

Downloads e distribuição

O projeto completo, incluindo o gerador de rimas, a função avançada de contagem silábica e o cache, está disponível no repositório oficial. Para baixar, acesse o GitHub e clone o repositório ou baixe o arquivo poesias-da-lua-v2.zip. A versão 2 corrige os erros de sinalefa que eu mencionei e adiciona suporte a sonetos de dez sílabas, além de versos livres. O download direto funciona assim: git clone https://github.com/exemplo/poesias-da-lua.git. Dentro da pasta clonada, rode lua gerador.lua --versos 20 --metrica 7 para gerar vinte versos heptassílabos. Use --ajuda para ver todas as opções disponíveis.

O que esse gerador não faz

É honesto dizer: ele não substitui um poeta humano. Os versos gerados podem soar coerentes metricamente, mas frequentemente carecem de profundidade temática, imagens originais e intencionalidade emocional. O gerador trabalha com combinação estocástica baseada em tabelas fixas. Não há compreensão do conteúdo gerado, apenas validação de padrões fonéticos e sintáticos. Se o seu objetivo é criar poesia genuinamente boa, use a ferramenta como ponto de partida. Pegue os versos que ela produz, reescreva os que fizerem sentido e descarte o resto. Eu mesmo uso esse gerador há anos como banco de ideias. Dos vinte versos que saem por execução, talvez dois tenham algum potencial real de reaproveitamento.

Alternativas mais sofisticadas existem. Bibliotecas como korpling para processamento de linguagem natural combinadas com modelos de IA generativa produzem resultados superiores, mas exigem configuração mais complexa e hardware mais potente. Se você quer algo pronto para rodar localmente sem dependências pesadas, poesias da lua continua sendo uma das opções mais acessíveis disponíveis atualmente.

Considerações finais sobre manutenção

O projeto recebe atualizações esporádicas. A última correção significativa foi em março de 2026, quando um contribuidor ajustou o tratamento de palavras oxítonas com ditongos nascentes. Antes dessa correção, versos terminados em azul ou farol eram contados com uma sílaba a menos. Se você estiver rodando uma versão anterior a essa data, atualize para evitar inconsistências métricas. O código-fonte está sob licença MIT, o que permite modificação e redistribuição livre. Se você quiser adicionar novas categorias de palavras ou implementar um sistema de geração de estrofes completas, o código está organizado de forma modular e documentada. O arquivo rimes.lua contém toda a lógica de correspondência fonética e o arquivo metrics.lua trata da contagem silábica. Separei as responsabilidades assim justamente para facilitar personalizações futuras.

Não espere milagres. Espere uma ferramenta que funciona quando bem configurada e que quebra quando você empurra além do que foi projetado. Isso vale para qualquer gerador de conteúdo automatizado, incluindo este. O melhor resultado vem de quem sabe ajustar o parâmetro certo no momento certo, e não de quem aperta um botão esperando magia.