Intelligence artificielle

Classification des mouvements littéraires avec l’encodeur de phrases multilingues de TensorFlow

Classification des mouvements littéraires avec l’encodeur de phrases multilingues de TensorFlow


La première chose à faire est de recueillir des citations de ces trois catégories. Pour cela, j'ai choisi Goodreads, un site Web incroyable sur lequel vous pouvez rechercher des citations de milliers d'auteurs. Pour cette analyse, j’ai stocké (manuellement, pas de méthode de grattage utilisée ici, copier / coller normal) environ 170 citations au total dans au moins trois langues différentes, l’anglais étant le plus commun absolu. Certaines citations étaient en français, d'autres en espagnol et quelques-unes en portugais. Je n'aurais pu utiliser que des citations en anglais, mais je voulais tester la flexibilité de cet algorithme d'intégration.

J'ai ensuite créé trois fichiers, un pour chaque mouvement: Romanticism.txt, Realism.txt. et Surrealism.txt, contenant tous le nom de l'auteur suivi de huit citations par auteur avec respectivement 8,6 et 7 auteurs dans chaque mouvement (soit un total de 168 citations). Le nombre d'auteurs et de citations que j'ai utilisés était un choix totalement arbitraire, mais le déséquilibre de classe ou de citation est intentionnel au cas où vous vous poseriez la question.

Vous pouvez trouver le cahier complet et les fichiers de devis ici si vous souhaitez l'essayer vous-même.

Pour l’ensemble du pipeline, vous devez importer ces modules, assurez-vous donc de les installer (paquet d'installation pip ferait habituellement l'affaire dans la plupart des cas):

#Tensorflow, tf-hub et tf-phrasepiece, tous nécessaires pour calculer le nombre d'emboîtements. Consultez cette discussion pour installer des versions compatibles. #Au moment d'écrire ces lignes, un mélange compatible de paquets est tf # v1.13.1, hub v0.5.0 et sentencepiece v0.1.82.1:importer tensorflow en tant que tf
importer tensorflow_hub en tant que hub
importer tf_sentencepiece
#numpy et aléatoireimporter numpy en tant que np
importer au hasard
# sklearn et imblearn packages:de sklearn.neural_network import MLPClassifier
à partir de sklearn.metrics import confusion_matrix, f1_score
depuis sklearn.preprocessing import StandardScaler
depuis sklearn.model_selection import StratifiedShuffleSplit
à partir de imblearn.under_sampling import EditedNearestNeighbours
#Visualisation:
importer seaborn as sns
importer matplotlib.pyplot en tant que plt
importer networkx en tant que nx

Ensuite, la première étape du pré-traitement consiste bien entendu à charger les données. Pour cela j'ai utilisé les lignes suivantes:

# Ceci charge chaque fichier dans les variables f_X:
f_rom = open (“Romanticism.txt”, “r”)
f_rea = open (“Realism.txt”, “r”)
f_sur = open (“Surrealism.txt”, “r”)
#Cela crée une liste de tous les noms d’auteurs et de leurs citations:
list_all_rom = f_rom.readlines ()
list_all_rea = f_rea.readlines ()
list_all_sur = f_sur.readlines ()

où chacune de ces listes ressemble à ceci:

['"Author1","quote1","quote2","quote3"n', '"Author2..."n']

Nous pouvons ensuite fusionner toutes ces citations pour chaque mouvement littéraire avec cette fonction:

et ensuite, lancez simplement ceci pour les fusionner dans une grande liste:

merged_list_rom = liste de fusion (list_all_rom)
merged_list_rea = liste de fusion (list_all_rea)
merged_list_sur = liste de fusion (list_all_sur)
merged_list_all = merged_list_rom + merged_list_rea + merged_list_sur

Ici, merged_list_all est une collection de citations de tous les mouvements (ordonnés) qui ressemble à ceci (vous pouvez reconnaître l'auteur et éventuellement le mouvement de certaines citations si vous êtes un bon bibliothécaire!):

'Je n'ai absolument aucun plaisir aux stimulants auxquels je m'adonne parfois si follement ...',
'Il était minuit, maigre, pendant que je réfléchissais, faible et fatiguée, Au-dessus de plusieurs
'C'est ce que vous allez faire; Aime la terre, le soleil et les animaux, méprise les richesses, donne l'aumône à tous ... ',
...
...
...
'Avec ce coeur débile et blême Quand est l'ombre de soi-même Comment se pourrait-il comment Comment se ...
...
x 168

Ces citations sont les entrées pour notre analyse d'intégration. Maintenant vient la partie amusante! La première chose à faire est de charger le réseau Deep Neural pré-formé dont j'ai déjà parlé, appelé Universal Sentence Encoder Multilingual (Yan et al., 2019) depuis le hub de TensorFlow et d’initialiser sa session avec:

Je recommande d’abord de télécharger et d’enregistrer le réseau pour que vous n’ayez pas à vous soucier de le télécharger à chaque fois que vous redémarrez votre ordinateur, car le modèle est toujours enregistré dans / tmp (au moins sous Linux) et si vous évitez de le faire. étape. Il faut environ 1 min pour télécharger avec Internet rapide de toute façon Vous pouvez en savoir plus sur la façon de procéder ici.

Show More

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.

Related Articles

Laisser un commentaire

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

Close
Close