NLP-Models-Tensorflow , Rassemble des modèles d'apprentissage automatique et d'apprentissage profond Tensorflow pour les problèmes de PNL, le code est simplifié à 100 % dans les notebooks Jupyter .
Table des matières
- Résumé abstrait
- Chatbot
- Analyseur de dépendances
- Marquage d'entité
- Résumé extractif
- Générateur
- Détection de la langue
- Traduction automatique neuronale
- ROC
- Étiquetage PDV
- Questions-Réponses
- Paires de phrases
- Parole en texte
- Correction orthographique
- Questions-Réponses SQUAD
- Dérivé
- Augmentation du texte
- Classement du texte
- Similitude du texte
- Synthèse vocale
- Générateur de sujets
- Modélisation de sujets
- Résumé extractif non supervisé
- Vectoriseur
- Vocodeur pour jeunes et vieux
- Visualisation
- Attention
Objectif
Les implémentations originales sont assez complexes et pas vraiment conviviales pour les débutants. J'ai donc essayé de simplifier la plupart des choses. En outre, il existe des tonnes de documents non encore publiés. Alors n'hésitez pas à l'utiliser pour vos propres recherches !
Je joindrai des référentiels github pour les modèles que je n'ai pas implémentés à partir de zéro. En gros, je copie, colle et corrige ce code pour les problèmes obsolètes.
Version Tensorflow
Tensorflow version 1.13 et supérieure uniquement, version 2.X non incluse. 1,13 < Flux Tensoriel < 2,0
pip install -r requirements.txt
Contenu
Résumé abstrait
Formé sur l'actualité indienne.
Précision basée sur 10 époques uniquement, calculée en utilisant les positions des mots.
Liste complète (12 cahiers)
- LSTM Seq2Seq utilisant la modélisation thématique, précision du test 13,22 %
- LSTM Seq2Seq + Luong Attention utilisant la modélisation thématique, précision du test 12,39 %
- LSTM Seq2Seq + Beam Decoder utilisant la modélisation thématique, précision du test 10,67 %
- LSTM Bidirectionnel + Luong Attention + Décodeur de faisceau utilisant la modélisation thématique, précision du test 8,29 %
- Pointer-Generator + Bahdanau, https://github.com/xueyouluo/my_seq2seq, précision du test 15,51%
- Copynet, précision des tests 11,15 %
- Pointer-Generator + Luong, https://github.com/xueyouluo/my_seq2seq, précision du test 16,51 %
- Seq2Seq dilaté, précision du test 10,88 %
- Seq2Seq dilaté + auto-attention, précision du test 11,54 %
- BERT + CNN dilaté Seq2seq, précision du test 13,5 %
- auto-attention + Pointer-Generator, précision du test 4,34%
- Dilated-CNN Seq2seq + Pointer-Generator, précision du test 5,57 %
Chatbot
Formé sur le corpus Cornell Movie Dialog, table de précision dans chatbot.
Liste complète (54 cahiers)
- Cellule de base Seq2Seq-manuel
- Manuel LSTM Seq2Seq
- GRU Seq2Seq-manuel
- Cellule de base Seq2Seq-API gourmande
- LSTM Seq2Seq-API gourmand
- GRU Seq2Seq-API gourmand
- Cellule de base Bidirectionnelle Seq2Seq-manuel
- Manuel Seq2Seq bidirectionnel LSTM
- GRU Bidirectionnel Seq2Seq-manuel
- Cellule de base Bidirectionnelle Seq2Seq-API gourmande
- LSTM bidirectionnel Seq2Seq-API gourmand
- GRU bidirectionnel Seq2Seq-API gourmand
- Cellule de base Seq2Seq-manuel + Luong Attention
- LSTM Seq2Seq-manuel + Luong Attention
- GRU Seq2Seq-manuel + Luong Attention
- Cellule de base Seq2Seq-manuel + Bahdanau Attention
- LSTM Seq2Seq-manuel + Bahdanau Attention
- GRU Seq2Seq-manuel + Bahdanau Attention
- LSTM bidirectionnel Seq2Seq-manuel + Luong Attention
- GRU Bidirectionnel Seq2Seq-manuel + Luong Attention
- LSTM Bidirectionnel Seq2Seq-manuel + Bahdanau Attention
- GRU Bidirectionnel Seq2Seq-manuel + Bahdanau Attention
- LSTM bidirectionnel Seq2Seq-manuel + Bahdanau arrière + Luong avant
- GRU Bidirectionnel Seq2Seq-manuel + Bahdanau arrière + Luong avant
- LSTM Seq2Seq-API gourmand + attention Luong
- GRU Seq2Seq-API gourmand + attention Luong
- LSTM Seq2Seq-API gourmand + attention Bahdanau
- GRU Seq2Seq-API gourmand + attention Bahdanau
- Décodeur de faisceau LSTM Seq2Seq-API
- Décodeur de faisceau GRU Seq2Seq-API
- LSTM bidirectionnel Seq2Seq-API + Luong Attention + Décodeur de faisceau
- GRU Bidirectionnel Seq2Seq-API + Luong Attention + Décodeur de faisceau
- LSTM Seq2Seq-API bidirectionnel + Bahdanau arrière + Luong avant + Stack Bahdanau Luong Attention + Décodeur de faisceau
- GRU Seq2Seq-API bidirectionnel + Bahdanau arrière + Luong avant + Stack Bahdanau Luong Attention + Décodeur de faisceau
- Bytenet
- LSTM Seq2Seq + tf.estimateur
- Couches de capsules + LSTM Seq2Seq-API Greedy
- Couches de capsules + LSTM Seq2Seq-API + Luong Attention + Décodeur de faisceau
- LSTM Seq2Seq-API bidirectionnel + Bahdanau arrière + Luong avant + Stack Bahdanau Luong Attention + Décodeur de faisceau + Abandon + L2
- DNC Séq2Seq
- LSTM Seq2Seq-API bidirectionnel + Attention monotique Luong + Décodeur de faisceau
- LSTM Seq2Seq-API bidirectionnel + Attention monotique Bahdanau + Décodeur de faisceau
- Réseau mémoire de bout en bout + cellule de base
- Réseau mémoire de bout en bout + cellule LSTM
- L'attention est tout ce dont vous avez besoin
- Transformateur-XL
- L'attention est tout ce dont vous avez besoin + Beam Search
- Transformateur-XL + LSTM
- GPT-2 + LSTM
- CNN Séq2séq
- Conv-Encodeur + LSTM
- Tacotron + Décodeur gourmand
- Tacotron + Décodeur Beam
- Google NMT
Analyseur de dépendances
Formé sur la dépendance à l'anglais CONLL. Entraînez-vous à former, développez et testez les ensembles à tester.
Stackpointer et Biaffine-attention originaires de https://github.com/XuezheMax/NeuroNLP2 écrits en Pytorch.
Précision basée sur la précision de l'arc, des types et des racines après 15 époques seulement.
Liste complète (8 cahiers)
- RNN bidirectionnel + CRF + Biaffine, précision de l'arc 70,48 %, précision des types 65,18 %, précision de la racine 66,4 %
- RNN bidirectionnel + Bahdanau + CRF + Biaffine, précision de l'arc 70,82 %, précision des types 65,33 %, précision de la racine 66,77 %
- RNN bidirectionnel + Luong + CRF + Biaffine, précision de l'arc 71,22 %, précision des types 65,73 %, précision de la racine 67,23 %
- Base BERT + CRF + Biaffine, précision de l'arc 64,30 %, précision des types 62,89 %, précision de la racine 74,19 %
- RNN bidirectionnel + Attention biaffine + Entropie croisée, précision de l'arc 72,42 %, précision des types 63,53 %, précision de la racine 68,51 %
- Base BERT + Attention biaffine + Entropie croisée, précision de l'arc 72,85 %, précision des types 67,11 %, précision de la racine 73,93 %
- RNN bidirectionnel + Stackpointer, précision de l'arc 61,88 %, précision des types 48,20 %, précision de la racine 89,39 %
- Base XLNET + Attention Biaffine + Entropie croisée, précision de l'arc 74,41 %, précision des types 71,37 %, précision de la racine 73,17 %
Marquage d'entité
Formé sur CONLL NER.
Liste complète (9 cahiers)
- RNN + CRF bidirectionnel, précision du test 96 %
- RNN bidirectionnel + Luong Attention + CRF, précision du test 93 %
- RNN bidirectionnel + Bahdanau Attention + CRF, précision du test 95 %
- Char Ngrams + RNN bidirectionnel + Bahdanau Attention + CRF, précision du test 96 %
- Char Ngrams + RNN bidirectionnel + Bahdanau Attention + CRF, précision du test 96 %
- Char Ngrams + Réseau résiduel + Bahdanau Attention + CRF, précision du test 69%
- Char Ngrams + Attention, vous avez tous besoin + CRF, précision du test 90 %
- BERT, précision des tests 99 %
- Base XLNET, précision des tests 99 %
Résumé extractif
Formé sur l'ensemble de données de CNN News.
Précision basée sur ROUGE-2.
Liste complète (4 cahiers)
- LSTM RNN, précision du test 16,13 %
- CNN dilaté, précision du test 15,54 %
- Attention multi-têtes, précision du test 26,33 %
- Base BERT
Générateur
Formé sur l'ensemble de données Shakespeare.
Liste complète (15 cahiers)
- RNN + LSTM au niveau des caractères
- Recherche RNN + Beam par caractère
- RNN au niveau des caractères + LSTM + Embedding
- RNN + LSTM en termes de mots
- RNN mot à mot + LSTM + intégration
- Au niveau des caractères + Seq2Seq + GRU
- Mot par mot + Seq2Seq + GRU
- RNN au niveau des personnages + LSTM + Bahdanau Attention
- RNN au niveau des personnages + LSTM + Luong Attention
- Mot par mot + Seq2Seq + GRU + Beam
- Niveau caractère + Seq2Seq + GRU + Bahdanau Attention
- Mot par mot + Seq2Seq + GRU + Bahdanau Attention
- Recherche de CNN + Beam dilatée par caractère
- Recherche de transformateur + faisceau
- Transformateur XL + Recherche de faisceau
Détection de langue
Formé sur l'ensemble de données Tatoeba.
Liste complète (1 cahiers)
- Char N-Grams à texte rapide
Traduction automatique neuronale
Formé à l'anglais-français, table de précision en traduction neuro-machine.
Liste complète (53 cahiers)
1.basic-seq2seq 2.lstm-seq2seq 3.gru-seq2seq 4.basic-seq2seq-contrib-gourmand 5.lstm-seq2seq-contrib-gourmand 6.gru-seq2seq-contrib-gourmand 7.basic-birnn-seq2seq 8.lstm-birnn-seq2seq 9.gru-birnn-seq2seq 10.basic-birnn-seq2seq-contrib-gourmand 11.lstm-birnn-seq2seq-contrib-gourmand 12.gru-birnn-seq2seq-contrib-gourmand 13.basic-seq2seq-luong 14.lstm-seq2seq-luong 15.gru-seq2seq-luong 16.basic-seq2seq-bahdanau 17.lstm-seq2seq-bahdanau 18.gru-seq2seq-bahdanau 19.basic-birnn-seq2seq-bahdanau 20.lstm-birnn-seq2seq-bahdanau 21.gru-birnn-seq2seq-bahdanau 22.basic-birnn-seq2seq-luong 23.lstm-birnn-seq2seq-luong 24.gru-birnn-seq2seq-luong 25.lstm-seq2seq-contrib-gourmand-luong 26.gru-seq2seq-contrib-gourmand-luong 27.lstm-seq2seq-contrib-gourmand-bahdanau 28.gru-seq2seq-contrib- gourmand-bahdanau 29.lstm-seq2seq-contrib-beam-luong 30.gru-seq2seq-contrib-beam-luong 31.lstm-seq2seq-contrib-beam-bahdanau 32.gru-seq2seq-contrib-beam-bahdanau 33.lstm-birnn-seq2seq-contrib-beam-bahdanau 34.lstm-birnn-seq2seq-contrib-beam-luong 35.gru-birnn-seq2seq-contrib-beam-bahdanau 36.gru-birnn-seq2seq-contrib-beam -luong 37.lstm-birnn-seq2seq-contrib-beam-luongmonotonique 38.gru-birnn-seq2seq-contrib-beam-luongmonotic 39.lstm-birnn-seq2seq-contrib-beam-bahdanaumonotonique 40.gru-birnn-seq2seq-contrib-beam-bahdanaumonotic 41.residual-lstm-seq2seq-greedy-luong 42.residual-gru-seq2seq-greedy-luong 43.residual-lstm-seq2seq-greedy-bahdanau 44.residual-gru-seq2seq-greedy-bahdanau 45.memory-network-lstm-decoder-greedy 46.google-nmt 47.transformer-encoder-transformer-decoder 48.transformer-encoder-lstm-decoder-greedy 49.bertmultilingual -encodeur-bertmultilingual-décodeur 50.bertmultilingual-encoder-lstm-decoder 51.bertmultilingual-encoder-transformer-decoder 52.bertenglish-encoder-transformer-decoder 53.transformer-t2t-2gpu
OCR (reconnaissance optique de caractères)
Liste complète (2 cahiers)
- CNN + LSTM RNN, précision du test 100 %
- Im2Latex, précision des tests 100 %
Marquage POS
Formé sur CONLL POS.
Liste complète (8 cahiers)
- RNN + CRF bidirectionnel, précision du test 92 %
- RNN bidirectionnel + Luong Attention + CRF, précision du test 91 %
- RNN bidirectionnel + Bahdanau Attention + CRF, précision du test 91 %
- Char Ngrams + RNN bidirectionnel + Bahdanau Attention + CRF, précision du test 91 %
- Char Ngrams + RNN bidirectionnel + Bahdanau Attention + CRF, précision du test 91 %
- Char Ngrams + Réseau résiduel + Bahdanau Attention + CRF, précision du test 3%
- Char Ngrams + Attention, vous avez tous besoin + CRF, précision du test 89 %
- BERT, précision des tests 99 %
Questions-Réponses
Formé sur l'ensemble de données bAbI.
Liste complète (4 cahiers)
- Réseau mémoire de bout en bout + cellule de base
- Réseau mémoire de bout en bout + cellule GRU
- Réseau mémoire de bout en bout + cellule LSTM
- Mémoire dynamique
Paire de phrases
Formé sur Cornell Movie - Dialogs Corpus
Liste complète (1 cahiers)
- BERTE
Parole en texte
Formé sur l'ensemble de données vocales de Toronto.
Liste complète (11 cahiers)
- Tacotron, https://github.com/Kyubyong/tacotron_asr, précision du test 77,09 %
- BiRNN LSTM, précision du test 84,66 %
- BiRNN Seq2Seq + Luong Attention + Cross Entropy, précision du test 87,86 %
- BiRNN Seq2Seq + Bahdanau Attention + Cross Entropy, précision du test 89,28 %
- BiRNN Seq2Seq + Bahdanau Attention + CTC, précision du test 86,35 %
- BiRNN Seq2Seq + Luong Attention + CTC, précision du test 80,30 %
- CNN RNN + Bahdanau Attention, précision du test 80,23%
- CNN RNN dilaté, précision du test 31,60 %
- Wavenet, précision des tests 75,11 %
- Deep Speech 2, précision du test 81,40 %
- Wav2Vec Transfert d'apprentissage BiRNN LSTM, précision du test 83,24 %
Correction orthographique
Liste complète (4 cahiers)
- Base BERT
- Base XLNET
- BERT-Base rapide
- Base BERT précise
Questions-Réponses SQUAD
Formé sur l'ensemble de données SQUAD.
Liste complète (1 cahiers)
- BERTE,
{ "exact_match" : 77.57805108798486 , "f1" : 86.18327335287402 }
Dérivé
Formé à la lemmatisation anglaise.
Liste complète (6 cahiers)
- LSTM + Seq2Seq + Faisceau
- GRU + Seq2Seq + Faisceau
- LSTM + BiRNN + Seq2Seq + Faisceau
- GRU + BiRNN + Seq2Seq + Faisceau
- DNC + Seq2Seq + gourmand
- BiRNN + Bahdanau + Copynet
Augmentation du texte
Liste complète (8 cahiers)
- Gant pré-entraîné
- GRU VAE-seq2seq-beam TF-probabilité
- Probabilité TF du faisceau LSTM VAE-seq2seq
- GRU VAE-seq2seq-beam + Bahdanau Attention TF-probabilité
- VAE + Attention Bahdanau déterministe, https://github.com/HareeshBahuleyan/tf-var-attention
- VAE + VAE Bahdanau Attention, https://github.com/HareeshBahuleyan/tf-var-attention
- Échantillonnage BERT-Base + Nucleus
- XLNET-Base + Échantillonnage de noyau
Classement du texte
Formé sur un ensemble de données de sentiments en anglais, un tableau d'exactitude dans la classification de texte.
Liste complète (79 cahiers)
- RNN cellulaire de base
- Cellule de base RNN + Charnière
- Cellule de base RNN + Huber
- Cellule de base RNN bidirectionnel
- Cellule de base RNN bidirectionnel + Charnière
- Cellule de base RNN bidirectionnel + Huber
- RNN de cellule LSTM
- Cellule LSTM RNN + Charnière
- Cellule LSTM RNN + Huber
- Cellule LSTM RNN bidirectionnel
- Cellule LSTM RNN + Huber bidirectionnel
- Cellule LSTM RNN + abandon + L2
- Cellule GRU RNN
- Cellule GRU RNN + Charnière
- Cellule GRU RNN + Huber
- Cellule GRU RNN bidirectionnel
- Cellule GRU RNN bidirectionnel + Charnière
- Cellule GRU RNN bidirectionnel + Huber
- LSTM RNN + Conv2D
- K-max Conv1j
- LSTM RNN + Conv1D + Autoroute
- LSTM RNN + Attention de base
- RNN dilaté LSTM
- RNN de cellule LSTM à norme de couche
- Réseau neuronal d'attention uniquement
- Réseau neuronal à attention multi-têtes
- Machine de Turing neuronale
- LSTM Seq2Seq
- LSTM Seq2Seq + Attention Luong
- LSTM Seq2Seq + Bahdanau Attention
- LSTM Seq2Seq + Décodeur de faisceau
- Seq2Seq bidirectionnel LSTM
- Filet de pointeur
- Cellule LSTM RNN + Bahdanau Attention
- Cellule LSTM RNN + Luong Attention
- Cellule LSTM RNN + Stack Bahdanau Luong Attention
- Cellule LSTM RNN bidirectionnel + Bahdanau arrière + Luong avant
- Bytenet
- LSTM rapide-lent
- Réseau siamois
- LSTM Seq2Seq + tf.estimateur
- Couches de capsules + RNN LSTM
- Couches de capsules + LSTM Seq2Seq
- Couches de capsule + LSTM Seq2Seq bidirectionnel
- LSTM imbriqué
- LSTM Seq2Seq + Autoroute
- Perte du triplet + LSTM
- DNC (ordinateur neuronal différenciable)
- ConvLSTM
- Réseau de conversion temporel
- Perte de triplet par lots + LSTM
- Texte rapide
- Réseau à convolution fermée
- Unité récurrente simple
- Réseau d'attention hiérarchique LSTM
- Transformateurs bidirectionnels
- Réseau de mémoire dynamique
- Réseau d'entités
- Réseau de mémoire de bout en bout
- Réseau clairsemé profond BOW-Chars
- Réseau résiduel utilisant Atrous CNN
- Réseau résiduel utilisant Atrous CNN + Bahdanau Attention
- Pyramide profonde CNN
- Transformateur-XL
- Transfert d'apprentissage GPT-2 345M
- Quasi-RNN
- Tacotron
- Tranche GRU
- Tranche GRU + Bahdanau
- Ondenet
- Transfert d'apprentissage BERT Base
- Apprentissage par transfert XL-net Large
- LSTM BiRNN global Mise en commun maximale et moyenne
- Transfert d'apprentissage BERT Base drop 6 couches
- Transfert d'apprentissage BERT Large drop 12 couches
- Apprentissage par transfert XL-net Base
- Transfert d'apprentissage ALBERT
- Apprentissage par transfert Base ELECTRA
- Apprentissage par transfert ELECTRA Large
Similitude du texte
Formé sur MNLI.
Liste complète (10 cahiers)
- BiRNN + perte de contraste, précision du test 73,032 %
- BiRNN + Entropie croisée, précision du test 74,265 %
- BiRNN + Perte de cercle, précision du test 75,857 %
- BiRNN + Perte proxy, précision du test 48,37 %
- Base BERT + entropie croisée, précision du test 91,123 %
- Base BERT + perte de cercle, précision du test 89,903 %
- ELECTRA Base + Entropie croisée, précision du test 96,317 %
- ELECTRA Base + Perte de cercle, précision du test 95,603 %
- Base XLNET + entropie croisée, précision du test 93,998 %
- XLNET Base + Perte de cercle, précision du test 94,033 %
Synthèse vocale
Formé sur l'ensemble de données vocales de Toronto.
Liste complète (8 cahiers)
- Tacotron, https://github.com/Kyubyong/tacotron
- CNN Seq2seq + Vocoder CNN dilaté
- Seq2Seq + Bahdanau Attention
- Seq2Seq + Attention Luong
- CNN dilaté + Attention monothique + Vocoder CNN dilaté
- CNN dilaté + Attention personnelle + Vocoder CNN dilaté
- CNN profond + Attention monothique + Vocoder CNN dilaté
- CNN profond + auto-attention + vocodeur CNN dilaté
Générateur de sujets
Formé sur l'actualité de la Malaisie.
Liste complète (4 cahiers)
- TAT-LSTM
- TAV-LSTM
- MTA-LSTM
- CNN dilaté Seq2seq
Modélisation de sujets
Extrait de l'ensemble de données sur les sentiments en anglais.
Liste complète (3 cahiers)
- LDA2Vec
- Attention
- Attention XLNET
Résumé extractif non supervisé
Formé sur des livres aléatoires.
Liste complète (3 cahiers)
- Sauter la pensée
- Réseau résiduel utilisant Atrous CNN
- Réseau résiduel utilisant Atrous CNN + Bahdanau Attention
Vectoriseur
Formé sur un ensemble de données de sentiments en anglais.
Liste complète (11 cahiers)
- Vecteur de mots utilisant l'exemple CBOW softmax
- Vecteur de mots utilisant l'estimation contrastée du bruit CBOW
- Vecteur de mots utilisant un exemple de skipgram softmax
- Vecteur de mots utilisant l'estimation contrastive du bruit skipgram
- Supervisé Embarqué
- Perte de triplet + LSTM
- Encodeur automatique LSTM
- LSTM à perte de triplet par lots
- Texte rapide
- ELMO (biLM)
- Perte de triplet + BERT
Visualisation
Liste complète (4 cahiers)
- Attention carte thermique sur Bahdanau Attention
- Attention carte thermique sur Luong Attention
- Attention BERT, https://github.com/hsm207/bert_attn_viz
- Attention XLNET
Vocodeur pour jeunes et vieux
Formé sur l'ensemble de données vocales de Toronto.
Liste complète (1 cahiers)
- CNN dilaté
Attention
Liste complète (8 cahiers)
- Bahdanau
- Luong
- Hiérarchique
- Additif
- Doux
- Attention sur Attention
- API Bahdanau
- API Luong
Pas d'apprentissage en profondeur
- Chatbot de Markov
- Résumé de la décomposition (3 cahiers)