
L'outil Gutentag a été utilisé pour construire le Corpus de poésie requis à partir du site Web du projet Gutenberg qui est une base de données en ligne massive contenant plus de 59000 ebooks.
Emolex est un ensemble de données de crowdsourced d'associations entre les mots et les émotions. Il a été utilisé pour classer le corpus de poésie en fonction de l'émotion des poèmes. Un modèle de langue a été construit pour chaque émotion en utilisant des poèmes correspondant à cette émotion.
HuggingFace est une communauté d'IA qui fournit divers modèles open source dans le traitement du langage naturel. Le modèle GPT-2 d'OpenAI a été utilisé à partir du hub de Model de Huggingface qui a été affiné sur un grand corpus de poésie.
Flask est un micro-framework Web écrit en Python. Il a été utilisé pour créer une application Web qui est utilisée pour interagir avec les modèles GPT-2 affinés.
L'algorithmia est un outil MLOPS qui fournit un moyen simple et plus rapide de déployer votre modèle d'apprentissage automatique en production. Il a été utilisé pour créer une API Web pour interagir avec le modèle. Les utilisateurs peuvent faire des demandes d'API au modèle via l'application FLASK.
Heroku est une plate-forme en tant que service (PaaS) qui permet aux développeurs de créer, d'exécuter et d'exploiter des applications entièrement dans le cloud. Il a été utilisé pour déployer l'application Web afin qu'il puisse être accessible par des utilisateurs du monde en 24x7.
Ce projet a été développé dans le but de créer un outil qui peut composer automatiquement la poésie originale en un instant intégrant l'émotion requise. Le GPT-2 d'OpenAI a été choisi comme modèle de langue de base car son architecture de transformateur avec des têtes d'auto-agence masquées lui a permis de fonctionner exceptionnellement bien avec des tâches liées à la génération.
L'ensemble de données a été obtenu sur le site Web du projet Gutenberg. L'outil Emolex a été utilisé pour segmenter le Corpus de poésie en 8 classes d'émotion différentes - anger, anticipation, disgust, fear, joy, sadness, surprise and trust . Les poèmes qui ne rentraient dans aucune de ces catégories ont été ajoutés dans la catégorie neutre.
Initialement, le modèle GPT-2 a été formé sur les poèmes neutres. Cela nous a donné le modèle «neutre» pour générer un poème général. Des modèles pour chaque émotion ont été créés en réglant ce modèle «neutre» sur des poèmes d'émotions correspondantes. L'ensemble du processus de construction de ces modèles peut être trouvé dans Colab. Ces modèles peuvent également être trouvés dans le HuggingFace Model Hub.
Voici les liens vers les modèles de chaque émotion:
L'algorithmie a été utilisée pour construire une API pour interagir avec ces modèles. Une application Flask a été créée pour permettre aux utilisateurs d'envoyer des demandes d'API à l'algorithmia et de recevoir les poèmes générés. L'application a été déployée et rendue en direct à l'aide d'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
Pensées en colère
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.
Dieu dans le mystère
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.
Marguerites et crasse
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.
Je te vois dans un coin lointain
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.
Douce
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.
Lune
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.
Cher cœur
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.
La nature
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.
Demoiselles déguisées
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.