
A ferramenta Gutentag foi usada para criar o corpus de poesia necessário no site do Projeto Gutenberg, que é um enorme banco de dados on -line que contém mais de 59000 eBooks.
Emolex é um conjunto de dados de associações de crowdsourcing entre palavras e emoções. Foi usado para classificar o corpus de poesia com base na emoção dos poemas. Um modelo de linguagem foi construído para cada emoção usando poemas correspondentes a essa emoção.
A Huggingface é uma comunidade de IA que fornece vários modelos de código aberto no processamento de linguagem natural. O modelo GPT-2 do Openai foi usado no Hub de modelo da Huggingface, que foi ajustado em um grande corpus de poesia.
O Flask é uma estrutura micro da Web escrita em Python. Foi usado para criar um aplicativo da Web que é usado para interagir com os modelos GPT-2 ajustados.
A algoritmia é uma ferramenta MLOPs que fornece uma maneira simples e mais rápida de implantar seu modelo de aprendizado de máquina na produção. Foi usado para criar uma API da Web para interagir com o modelo. Os usuários podem fazer solicitações de API ao modelo através do aplicativo Flask.
A Heroku é uma plataforma como um serviço (PaaS) que permite aos desenvolvedores construir, executar e operar aplicativos inteiramente na nuvem. Foi usado para implantar o aplicativo da web para que pudesse ser acessado por usuários de todo o mundo 24x7.
Este projeto foi desenvolvido com o objetivo de criar uma ferramenta que possa compor automaticamente a poesia original em um instante incorporando a emoção necessária. O GPT-2 do OpenAI foi escolhido como modelo de linguagem base, porque é a arquitetura de transformadores com cabeças de auto-ataque mascaradas, permitiu que ele tenha um desempenho excepcionalmente bem com tarefas relacionadas à geração.
O conjunto de dados foi obtido no site do Projeto Gutenberg. A ferramenta Emolex foi usada para segmentar o corpus de poesia em 8 classes de emoções diferentes - anger, anticipation, disgust, fear, joy, sadness, surprise and trust . Os poemas que não se encaixavam em nenhuma dessas categorias foram adicionados à categoria neutra.
Inicialmente, o modelo GPT-2 foi treinado nos poemas neutros. Isso nos deu o modelo "neutro" para gerar qualquer poema geral. Os modelos para cada emoção foram criados por ajuste fino desse modelo "neutro" em poemas das emoções correspondentes. Todo o processo de construção desses modelos pode ser encontrado no Colab. Esses modelos também podem ser encontrados no hub do modelo Huggingface.
A seguir estão os links para os modelos de cada emoção:
A algoritmia foi usada para construir uma API para interagir com esses modelos. Um aplicativo Flask foi criado para permitir que os usuários enviem solicitações de API para algoritmia e recebessem os poemas gerados. O aplicativo foi implantado e feito ao vivo usando Heroku.
?AutoCompose
┣ data --> Contains entire poetry corpus as well as poem collections of each emotion stored in json format
┣ models --> Contains language models fine-tuned for each emotion
┃ ┣ anger
┃ ┣ anger2
┃ ┣ anticipation2
┃ ┣ disgust2
┃ ┣ fear
┃ ┣ fear2
┃ ┣ joy
┃ ┣ joy2
┃ ┣ neutral
┃ ┣ sadness2
┃ ┣ surprise2
┃ ┣ trust2
┣ notebooks --> Contains .ipynb files used to work with dataset and train the model
┣ outputs --> Contains 25 poems generated by the model for each emotion
┣ readme-assets --> Contains images and gifs used in readme file
┣ src --> Contains flask app and other supporting python files
┃ ┣ static
┃ ┃ ┗ images
┃ ┣ templates
Pensamentos raivosos
I am not jealous; but this does vex
My heart so full of misery that I cannot stop
From angry thoughts. This brings me relief,
And a painful torment; and I
Am content to part from thee alone.
Deus em mistério
Thence down the river to the mountain-side
I travelled with my boats and my oarsmen,
To seek a haven near the southern cape
Where dwelt some mighty god in mystery,
Unknowing I wandered therefrom, so
Unconscious I lay, and rested there.
Daisies e sujeira
The little pool, by the house-wall,
Is covered with daisies and filth;
The fountains are withered and dim,
And the lizards writhe in rags.
Eu te vejo em um canto distante
I see thee in a far corner,
With a stealthy stride, and a trembling soul
I know thou, Dear, who should'st not fear
That I should come near thee!
I know thee.
Gentil garganta
Thy soul has joy, and thy soul is free,
And all the things it loves can live
In thy love for me and thee!
O gentle-throat, why sing so low,
Or do thy music too loudly?
Whence are all thy numbers fit?
If that thy mind is fix'd upon one,
It joys not to hear thee speak.
Lua
He took them home, and soon set them down
In a chest at the door of his room,
And asked them if they knew
What the moon was about.
Caro coração
For you, dear heart, so lone and worn and weary,
Hear me, and the silence dies,
That still I think you must come near me,
And not so be blest.
Natureza é própria
He is a wild magician,
Who takes up the air and vanishes
As though his name were Nature's own,
And that it were Nature's own prompting,
That he should leave school in such a way.
Donzelas disfarçadas
He sees the aged damsels in disguise,
And how the princely damsels are dressed;
The queen of Sariola, as she stands,
Is clad in rich embroidery;
And every thing that she does wear
Is a royal dame in finest form,
And a queen in fairest posture too.