Intelligence artificielle

AI peut-il écrire comme Shakespeare?

AI peut-il écrire comme Shakespeare?


"Beaucoup de vrais mots ont été prononcés en plaisanterie."
- William Shakespeare,
Le Roi Lear

«Méfiez-vous, mon seigneur, de la jalousie;
C’est le monstre aux yeux verts, qui se moque de
La viande dont il se nourrit. "
- William Shakespeare,
Othello

"Il y avait une étoile a dansé, et sous c'est que je suis né."
- William Shakespeare,
Beaucoup de bruit pour rien

Qui peut écrire comme Shakespeare? Ou même épeler comme Shakespeare? Pourrions-nous apprendre à l'IA à écrire comme Shakespeare? Ou est-ce une tâche sans espoir? Un réseau de neurones d'IA peut-il décrire le désespoir comme le roi Lear, ressentir la jalousie comme Othello ou utiliser l'humour comme Benedick? En théorie, il n'y a pas de raison pourquoi pas si nous pouvons simplement l'enseigner.

Sur le site Web de William Shakespeare, L'œuvre complète de MIT, j'ai téléchargé les textes de trois chefs-d'œuvre bien connus de Shakespeare: «King Lear», «Othello» et «Beaucoup de bruit pour rien». J'ai ensuite formé un réseau d'apprentissage approfondi récurrent (RNN) ) avec une couche cachée d’unités de mémoire à court terme (LSTM) sur ce corpus pour produire du texte libre.

Le réseau de neurones a-t-il pu apprendre à écrire comme Shakespeare? Et si oui, jusqu’à quel point at-il imité le style de Bard? A-t-il pu produire un texte significatif pour chacun des personnages de la pièce? Dans un complot contre l’IA, Est-ce que Desdemona rencontrerait le roi Lear et est-ce que cela déclencherait la jalousie d’Othello? La tragédie l'emporterait-elle sur la comédie? Est-ce que chaque personnage conserverait le même style de parole que dans la pièce de théâtre originale?

Je suis sûr que vous avez encore plus de questions. Alors, sans plus tarder, voyons si notre réseau d’apprentissage en profondeur pourrait produire de la poésie ou simplement faire des singeries.

Générer du texte libre avec les réseaux de neurones LSTM

Les réseaux de neurones récurrents (RNN) ont été expérimentés avec succès pour générer du texte libre. L'architecture de réseau de neurones la plus courante pour la génération de texte libre repose sur au moins une couche LSTM.

Pour former notre premier simulateur Shakespeare, j'ai utilisé un réseau neuronal de trois couches seulement: une couche d'entrée, une couche LSTM et une couche de sortie (Figure 1).

Le réseau a été formé au niveau du personnage. C'est-à-dire que des séquences de m caractères ont été générées à partir des textes d'entrée et introduites dans le réseau.

Chaque caractère a été codé à l'aide du codage à zéro instantané. Cela signifie que chaque caractère était représenté par un vecteur de taille n, où n est la taille du jeu de caractères du corpus de texte saisi.

Le tenseur complet avec la taille [m, n] a été introduit dans le réseau. Le réseau a été formé pour associer le caractère suivant en position m + 1 aux m caractères précédents.

Tout cela mène au réseau suivant:

  • La couche d’entrée avec n unités accepterait [m, n] tensors, où n est la taille du jeu de caractères et m le nombre d'échantillons passés (dans ce cas, des caractères) à utiliser pour la prédiction. Nous avons choisi arbitrairement m = 100, estimant que 100 caractères antérieurs pourraient être suffisants pour prédire le nombre de caractères 101. La taille du jeu de caractères n dépend bien sûr du corpus en entrée.
  • Pour la couche cachée, nous avons utilisé 512 unités LSTM. Un nombre relativement élevé d'unités LSTM est nécessaire pour pouvoir traiter toutes ces associations (passé m caractères - caractère suivant).
  • Enfin, la dernière couche comprend n unités activées par softmax, où n correspond à nouveau à la taille du jeu de caractères. En effet, cette couche est supposée produire le tableau de probabilités pour chacun des caractères du dictionnaire. Par conséquent, n unités de sortie, une pour chaque probabilité de caractère.
Figure 1. Réseau de neurones basé sur l'apprentissage approfondi basé sur LSTM, utilisé pour générer du texte libre. n neurones d'entrée, 512 unités LSTM cachées, une couche de sortie de n unités softmax où n est la taille du jeu de caractères, dans ce cas le nombre de caractères utilisés dans le jeu d'apprentissage.

Notez que pour éviter les surajustements, une couche de suppression intermédiaire a été temporairement introduite pendant l’entraînement entre la couche LSTM et la couche dense en sortie. Une couche abandonnée choisit de supprimer des unités aléatoires à chaque itération de la phase d’entraînement. La couche de suppression a ensuite été supprimée pour le déploiement.

Construction, formation et déploiement du réseau de neurones

Le réseau a été formé sur les textes intégraux de «King Lear», «Othello» et «Beaucoup de bruit pour rien», disponibles sur le site Web de The Complete Works of William Shakespeare, soit un total de 13 298 phrases.

Le réseau de neurones décrit ci-dessus a été construit, formé et déployé à l'aide de l'intégration de Keras et de TensorFlow, basée sur une interface graphique, fournie par KNIME Analytics Platform.

Le flux de travail permettant de créer et de former le réseau est illustré à la figure 2. Le flux de travail permettant de déployer le réseau afin de prédire le texte final, caractère par caractère, est illustré à la figure 3. Les deux flux de travail ont été copiés et adaptés à partir des flux de travail implémentés dans le blog. poste, “Il était une fois… par le réseau LSTM”, où un réseau similaire a été formé et déployé pour générer du texte libre, ayant suivi une formation sur des textes des contes de Grimm. Les deux flux de travail sont disponibles et téléchargeables gratuitement à partir du serveur KNIME EXAMPLES sous 04_Analytics / 14_Deep_Learning / 02_Keras / 11_Generate_Fairy_Tales.

Sur la figure 2, les blocs bruns (nœuds) de la section Définir la structure du réseau (en haut à gauche) constituent les différentes couches du réseau de neurones. Les données sont nettoyées, normalisées, remodelées et transformées par les nœuds de la section Prétraitement et codage (en bas à gauche). Enfin, la formation est assurée par le nœud Keras Network Learner et le réseau est stocké pour le déploiement.

Notez que si l'ensemble de formation est volumineux, la formation de ce réseau peut être assez longue. Il est possible de l'accélérer en dirigeant KNIME Analytics Platform vers une installation Keras pour GPU.

Le flux de travail de déploiement de la figure 3 lit et utilise le réseau précédemment formé pour prédire le texte libre, caractère après caractère.

Figure 2. Le flux de travail de formation entraîne un réseau de neurones (62 entrées -> 512 LSTM -> 62 sorties) pour prédire le prochain caractère du texte, sur la base des 100 derniers caractères. L'ensemble de formation comprend les textes de «King Lear», «Othello» et «Beaucoup de bruit pour rien» de William Shakespeare. Ainsi, le réseau devrait apprendre à construire des mots et des phrases dans un style shakespearien.
Figure 3. Le flux de travail de déploiement prend 100 caractères au début, puis génère texte après caractère dans une boucle, jusqu'à ce que 1 000 caractères soient générés, ce qui donne le texte final complet et de type Shakespeare.

Texte shakespearien généré par l'IA

Voici quelques résultats, après avoir formé le réseau pendant 50 époques sur l’ensemble du jeu de données (les trois pièces de théâtre sélectionnées), en utilisant 100 anciens caractères pour le tenseur d’entrée et en générant récursivement 1 000 nouveaux personnages.

Commençons par 100 caractères d’un dialogue entre Othello et Desdemona (en italique), puis voyons comment notre réseau se poursuivrait (en texte brut).

- Othello
O mon beau guerrier!

- Desdemona
Mon cher Othello!

- Othello
Ça me donne merveille que mon contenu
Pour te voir ici avant moi. Ô la joie de mon âme!
Je suis un homme un ver.

- Gloucester
Je sais pas, ma douce:
Je t'ai trouvé comme un voleur du coeur
Ce pirchas ira bien.
Le général parle pour l'être
Transformez un homme, je pense, besoou.

- Cassio
Je vous prie, Monsieur, de mentir: dans cette main n’est pas tendue et en parle;
Je ne serais pas menacé de dépêche.
Notre bon vieil ami,
Laïc réconforte l'État, le cherche;
Je vais te rendre plus rapide!
Et le parcours béni de la dot:
Assez net pour vous faire;
Et que le Maure est défectueux dans la lettre!
Abhorre, ciel, j'irai sor;
Et l'autre aussi.

- Othello
Je me vois comme un essai de son discours,
Qu'il vivra le Maure dans les mensonges
C'est avec Daush’er
Dit que c'est un homme très pauvre,
Dont welchers de l'état,
Un homme que beaucoup appellent de leur vie
Cela doit perdre le garçon regarde pas.

- Regan
Monsieur, à ma soeur?

-Oswald
Je vous prie, ayez votre main: vous pouvez tout recevoir à ses chagrins, et rendre les cieux
Cassio ment que dans le coeur
Pour que je puisse parler: je vais…

- -

Alors que Desdemona disparaît de la boîte de dialogue, quelques personnages mineurs de «King Lear» (Gloucester, Regan et Oswald) entrent dans la scène. Nous avons créé d’autres textes libres à partir de lignes différentes dans les trois pièces, et il est intéressant de noter que les personnages des tragédies “Othello” et “King Lear” se mélangent souvent, alors que les personnages de la comédie “Much Ado About Nothing” semblent être plus autonome.

Le texte est généré à l'aide de mots de l'anglais shakespearien et de sa structure de phrase complexe caractéristique. Toutes les phrases n’ont pas un sens parfait, mais la plupart semblent le faire. Notez également que des dialogues plus courts sont affectés aux caractères mineurs, tandis que Othello et Cassio, dans cet exemple, reçoivent les discours les plus longs - comme il se doit.

Utiliser AI pour écrire une scène originale

Utilisons les 100 premiers caractères (toujours en italique) pour déclencher une nouvelle scène. Ici, j'ai introduit le mot-clé «SCENE», le lieu, les caractères impliqués et le nom du premier caractère à parler. Le réseau de neurones fait le reste.

SCÈNE I.
Venise. Une rue.
Entrez Roderigo et Iago

- Desdemona
Je prie, parle moi de Cassio.
Oui, alors j'entends l'écriture prive et là,
Qu'elle l'ait vu ce cadeau si vieux,
et les meilleurs conscionables que dans cette révolution contre lui:
Il y a le fils contre le père,
et le fils de ton père et le meilleur de notre temps n'a pas exalse ton conseil de surveillance
Le pire n’est pas une offre à l’île belliqueuse,
Cela doit prendre la honte
quelles vengeances du même malk que le meilleur de notre époque;
garde nos fortunes se battre pour porter à une force,
La vue dans leur nature, se laisser aller en toute sécurité par le rack: je jure, c’est,
Qu'elle va renvoyer mon messager.

- Gloucester
Je vois la rouille dans les stocks.

-Le Roi Lear
Quel est donc un cartiou, je peux dire mon chemin
Que devrait être assurather, méprisent mon frère;
Que je l'ai dépassé, dis-moi que je pensais tous à la peur,
Qu'elle soit honnête et pourtant il a avoué en lui divertit
et pense au prochain moyen de le tacher,
Que le commet principal dans le moins
Manquerait son souffle,
Qu'elle puisse…

- -

Créer une nouvelle scène s'est avéré être une tâche beaucoup plus difficile que de continuer une scène existante. Le discours de Desdemona commence bien et correspond à la pièce originale. Cependant, je ne suis pas sûr de pouvoir le suivre jusqu'au bout.

Utiliser l'IA pour mélanger l'anglais shakespearien et moderne

Mais sérieusement, quelle est l'utilité d'un moteur d'IA produisant un texte anglais archaïque?

Pouvons-nous en quelque sorte améliorer les phrases anglaises actuelles avec une touche de Shakespeare? Nourrissons notre réseau formé par Shakespeare avec un texte moderne et voyons ce qui en ressort.

Alors, quel genre de texte moderne et quotidien pourrait faire avec un peu d'amélioration de Shakespeare? Un contrat de licence de logiciel? Voyons à quel point le réseau peut rendre plus intéressant le début d’un contrat de licence (en italique).

Cette licence fait référence à la version de la licence publique générale GNU. Copyright signifie aussi copyright-bick,
Refait moi n'importe quoi à son épée
A son sel et le plus caché possible d'être ainsi pour chanter, mais pas dans un détail de sa matière que cela sera sûr comme sera vendu
En tant que maître compary, n'habitez pas dans le traître.
Bénis tes cinq esprits!

-Kent
O pitié!
Monsieur, où est la patience maintenant,
Que c’est si loin de la mer et de certaines offres à démanteler
Tant de plis de sauvegarde et honnête.

-Brabantio
Je ne dois pas croire que le Turc de Cassio, dans l’étrange rencontre des cribles d’un charmeur, soit la révolte de libe
Que je puisse le tromper au mieux,
Dans ses foires prophétiques d'un peu à peu de temps à vos pouvoirs; ce dont je vous remercie, monsieur.

-Albany
Gloucester, je vais prouver que son sport et ses débuts sont excellents et que sa garde et son ton sur le blanc.

-Le Roi Lear
Où sont les voleurs?
Tu n'auras jamais les capitaines à la lettre
Pour le maure et la chose que nous n’avons pas mieux, nous serons sûrs d’avoir de la valeur s'il est en colère

-Regan
Je te prie, a un comte plus que penser à faire une proclamation de mon coeur, Hot

- -

Les mots sauver, honnête, voleur, maître, traître et tromper semblent correspondre au contexte. Notez également que le dialogue issu du texte de départ du contrat de licence concerne principalement des personnages mineurs et moins tragiques des pièces.

Pour le reste, les parties incompréhensibles sont aussi incompréhensibles que le langage juridique original. Et pour citer notre réseau, "Monsieur, où est la patience maintenant, ..."

Utiliser l'IA pour faire du rap de Shakespeare

Pour finir, donnons à notre AI anglaise shakespearienne une langue moderne qui n’est pas aussi stable - quelque chose de créatif. Pourquoi ne pas appliquer une touche de Shakespeare à des paroles de rap? Est-ce que cela changerait le sens ou juste les mots? Encore une fois, déclenchons la génération de texte libre avec 100 caractères d’une chanson rap.

Smokin ’sur cookie dans le cookie Hotbox
F ***** ’sur votre b **** elle a thot, thot, thot thot
Cookin
compagnon, et le meilleur de ce qu'elle pourrait sinon n'était pas un toman.
Bonne foi, tiens, je t'en prie,

-Le Roi Lear
Alors, il a tellement de choses à faire.

-Le Roi Lear
Tu as vu une partie de cette clarté que j'avais imaginé voir la balade en mer ne jamais prendre la deuxième pour prendre le monstre.
Toujours par le chemin qui devrait: je ne sais quoi.

-Othello
Qu'est-ce que tu la vois? Malheureuse fille!
Monsieur, ce désespéré, bâtard! quoi de neuf?
Étape sur mon père!

-Le Roi Lear
Que dis-tu?

-Kent
Monsieur, je vous connais;
Et à la lande et à la pluie, je la bénis prendre mes soeurs?

-Le Roi Lear
Non Non Non Non! où est le château.

Entrez Gloucester, avec le roi de France et Cordelia Goneril
Monsieur, je pensais que non.

-Iago
En effet!

-Othello
En effet! oui, en effet: desceme, monsieur.

-Cornouailles
En soupirant!

-Othello
Que vois-tu comment ce papier pourrai-je y mener un type qui fait de son fils un pauvre pouvoir pauvre
Ça fait son fils
Quand la pluie est venue à la colère du diable!
J'ai perdu le roi du vent froid:
Prends-leur ce que…

- -

Il est intéressant de voir que le texte généré par l'intelligence artificielle parle d'une fille malheureuse, d'un démoniaque imbécile et d'un bâtard désespéré qui, avec d'autres mots, exprime des concepts très proches de ceux contenus dans de nombreuses chansons de rap.

Quel apprentissage profond appris de Shakespeare

Nous avons atteint la fin de cette expérience. Nous avons formé un réseau de neurones récurrent avec une couche LSTM cachée pour produire du texte libre. Qu'avons-nous appris?

En résumé, le réseau a été formé aux textes intégraux des pièces de théâtre de Shakespeare «King Lear», «Othello» et «Beaucoup de bruit pour rien». Il a appris à produire du texte libre dans le style shakespearien. Il fallait juste une séquence initiale de 100 caractères pour déclencher la génération de texte libre.

Nous avons montré quelques résultats différents. Nous avons commencé par un dialogue entre Othello et Desdemona pour voir comment le réseau continuerait. Nous avons également fait en sorte que le réseau écrive une scène complètement nouvelle, basée sur les personnages et la place que nous avons fournis. Enfin, nous avons exploré la possibilité d'améliorer l'anglais moderne avec l'anglais shakespearien en introduisant une touche de Shakespeare dans le texte d'un contrat de licence et dans le texte d'un rap lyrique. Chose intéressante, des mots liés au contexte de l'anglais shakespearien sont apparus dans le texte généré gratuitement.

Ces résultats sont intéressants car de vrais mots anglais shakespeariens ont été utilisés pour former des structures de phrases plus complexes, même à partir de phrases anglais modernes. Le réseau de neurones a correctement reconnu les caractères principaux ou mineurs en leur donnant plus ou moins de texte. Les orthographes et la ponctuation étaient généralement précis, et même le style poétique, c’est-à-dire les rythmes du texte, suivait le style shakespearien.

Bien entendu, expérimenter avec la taille de l'ensemble de données, les unités neuronales et l'architecture de réseau pourrait conduire à de meilleurs résultats en termes de dialogues plus significatifs.

Comme publié pour la première fois dans InfoWorld.

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer