Machine Learning: escrevendo poemas

8

Sou estudante de aprendizado de máquina e hoje em dia estava tentando aprender como usar a biblioteca TensorFlow. Passei por vários tutoriais e tentativas e erros com o tensorflow, e pensei que a melhor maneira de aprendê-lo de verdade seria usá-lo em um pequeno projeto meu.

Decidi que deveria tentar criar um programa que escrevesse poemas. Não estou buscando um programa de qualidade de ponta; para o meu primeiro modelo, ficaria feliz com apenas uma série de grupos de palavras sem sentido reunidos em formato de poema. O problema é que estou tendo problemas para procurar livros ou vídeos sobre programas de aprendizado de máquina que lidam com a criação de estruturas de frases.

Você pode fazer alguma sugestão sobre o que eu poderia procurar (até as palavras-chave do Google são boas) para obter os programas de amostra e o conhecimento básico que eu preciso?

Obrigado.

Daniel
fonte
2
Eu usei uma cadeia de Markov para gerar nomes com algum sentido antes, provavelmente seria uma boa estratégia para poemas?
Mephy

Respostas:

5

Este é apenas o comentário de Emre expandido, mas sim, você deve procurar em redes neurais recorrentes para gerar texto no estilo de um determinado corpus. RNNs e LSTM funcionam muito bem para isso.

O artigo em http://karpathy.github.io/2015/05/21/rnn-effectiveness/ é amplamente citado e, para sua pergunta, mostra como é muito fácil gerar algo assim, dado o texto das peças de Shakespeare:

PANDARUS: Infelizmente, acho que ele será abordado e o dia em que um pouco de sarro seria atingido para nunca ser alimentado. E que é apenas uma corrente e sujeitos de sua morte, não devo dormir.

Segundo senador: Eles estão longe dessas misérias, produzidas em minha alma, Quebrando e fortemente devem ser enterradas, quando eu perecer A terra e os pensamentos de muitos estados.

Se você seguir https://github.com/jcjohnson/torch-rnn, também poderá executar isso facilmente na GPU local para gerar texto a partir de qualquer poesia de entrada que desejar. Eu tive bons resultados com abandono de 0,1-0,5, 2 camadas, camadas de tamanho 512-1024.

Sean Owen
fonte