Avis
Parce qu'il y a actuellement trop de projets dans cet entrepôt, il est difficile à maintenir. Par conséquent, diverses tâches seront séparées à l'avenir, des entrepôts seront créés séparément et de nombreuses expériences comparatives seront menées pour faciliter la sélection des modèles par les utilisateurs. Si nécessaire, vous pouvez accéder à l'entrepôt spécifié, le lien est le suivant :
- Entrepôt de classification de texte
- Entrepôt de correspondance sémantique
- Entrepôt de génération de texte
- D'autres référentiels accélèrent les mises à jour...
Table des matières
- Chatbot
- 1. Bert_chatbot : similaire à UniLM
- 2. seq2seq_luong : L'encodeur est un réseau gru à deux couches, et le décodeur est un réseau gru à une couche, une attention est ajoutée entre l'encodeur et le décodeur.
- 3. transformer_chatbot : modèle de transformateur standard
- Distillation
- 1. DynaBert : Le travail de Huawei utilise principalement l'élagage pour couper certaines structures de bert.
- 2. rnn_distill_bert : utilisez une couche de réseau lstm pour distiller le modèle bert et ajoutez uniquement une perte d'étiquette logicielle.
- 3. three_layer_self-attention_to_distill_bert : Vous savez probablement ce que cela signifie en regardant le nom. Il écrit simplement l'encodeur du transformateur à trois couches, puis distille le modèle bert.
- 4. tiny_bert : Le travail de Huawei, la méthode de distillation de tiny_bert consiste à ajouter la perte d'erreur quadratique moyenne de la couche intermédiaire en plus de la perte d'étiquette souple.
- Intégration
- 1. skipgram-word2vec : utilisez skipgram pour obtenir des vecteurs de mots
- 2. bert : entraînez bert directement, entraînez-vous à partir de zéro ou utilisez ce code pour vous recycler
- 3. albert : formez albert directement et entraînez-vous à partir de zéro. Vous pouvez également utiliser ce code pour vous recycler.
- 4. NPLM : Approche traditionnelle
- NER
- 1. Bert_CRF_Ner : modèle de Bert plus champ aléatoire conditionnel pour les tâches d'étiquetage de séquence
- 2. Bert_Softmax_Ner : utilisez directement le modèle bert pour l'annotation de séquence
- 3. BiLSTM_CRF_Ner : utilisez le réseau lstm bidirectionnel et crf pour les tâches d'étiquetage de séquence
- NMT
- 1. GRU_attention : l'encodeur et le décodeur sont tous deux des réseaux gru, avec un mécanisme d'attention commun (somme pondérée directe) ajouté au milieu.
- 2. Transformers_NMT : structure de transformateur standard pour la traduction automatique
- Prétrain_Modèle
- 1. bert-pretrain : pour recycler le modèle bert, effectuez d'abord le prétraitement des données via get_train_data.py, y compris 15 % des mots pour le masque et d'autres opérations, puis entraînez-vous.
- 2. wobert-pretrain : Le modèle de pré-formation de wobert est donné par Su Shen. Pour le recyclage ici, vous pouvez ajouter la liste de mots que vous avez construite vous-même, puis modifier la méthode de segmentation de mots de bert.
- Lecture_compréhension
- 1. BERT_MRC : utilisez bert pour effectuer des tâches de compréhension en lecture automatique. Il est prévu que la méthode de l'étape directe soit adoptée ici.
- 2. BiDAF : modèle de compréhension en lecture automatique avec mécanisme de flux d'attention bidirectionnel
- 3. DocQA : modèle traditionnel
- 4. Match_LSTM : modèle traditionnel, structure rnn simple.
- 5. QANet : C'est aussi un modèle relativement traditionnel, mais ce modèle est le premier modèle mrc à abandonner la structure rnn. Ce modèle est également le premier à introduire le mécanisme d'auto-attention dans la tâche mrc.
- 6. RNet : modèle traditionnel
- 7. Recurrence-hotpot-baseline : Pour la première fois, le problème de l'utilisation de la structure rnn pour traiter le raisonnement multi-sauts est généré dans l'ensemble de données hotpotqa, en plus des prédictions contenant des réponses, il existe également des prédictions de faits à l'appui. et les prédictions des paragraphes connexes.
- 8. albert_mrc : utilisez le modèle pré-entraîné Albert pour effectuer des tâches mrc
- 9. electra_bert : utilisez le modèle Electra pré-entraîné pour effectuer des tâches MRC
- 10. mrc_baseline : Si vous effectuez des tâches mrc, il est recommandé de lire d'abord ce code. Il contient divers détails auxquels mrc prête attention, tels que le traitement de textes longs (fenêtre coulissante), le tri des réponses, la formation contradictoire, etc.
- 11. roberta_mrc : utilisez le modèle Roberta pré-entraîné pour effectuer des tâches mrc
- 12. transformer+rnn+attention : Ce projet est destiné à la compréhension générative en lecture, en utilisant directement la méthode seq2seq. L'encodeur utilise l'encodeur du transformateur, et le décodeur utilise la structure gru, et une couche d'attention ordinaire est ajoutée au milieu. mécanisme.
- 13. transformer_reading : Ce projet concerne également la compréhension générative en lecture, en utilisant la structure standard du transformateur.
- Slot_Remplissage
- 1. JointBert : implique la classification des intentions et la classification des emplacements. Utilisez directement bert pour coder l'entrée et utilisez les vecteurs "CLS" pour la classification des intentions. Le vecteur de codage final de chaque jeton est utilisé pour la classification des emplacements.
- Texte_Classification
- 1. DPCNN : Le réseau convolutif profond + la connexion résiduelle rendent ce modèle meilleur que les structures CNN précédentes, et sa complexité n'est pas élevée.
- 2. FastBert : utilise une méthode d'auto-distillation pour accélérer le raisonnement du modèle. Principalement utilisé dans les tâches de classification.
- 3. FastText : Proposé par Facebook, c'est un modèle efficace de classification de texte.
- 4. XLNet : 1) Apprenez les informations contextuelles bidirectionnelles en maximisant la log-vraisemblance de tous les ordres de factorisation possibles ; 2) Utilisez les caractéristiques de l'autorégression elle-même pour surmonter les lacunes de BERT ; De plus, XLNet intègre également les idées du modèle autorégressif optimal actuel Transformer-XL.
- 5. all_layer_out_concat : comme son nom l'indique, ce projet encode le texte via le modèle de style bert, puis supprime le vecteur cls de chaque couche, effectue un calcul d'attention, puis effectue une classification.
- 6. bert+bceloss+average_checkpoint : ce projet modifie la fonction de perte de la tâche de classification en BCELoss. De plus, la moyenne du poids ajoutée (moyenne de plusieurs points de contrôle)
- 7. capsule_text_classification : GRU+Capsule pour la classification de texte
- 8. longformer_classification : utilisez le modèle longformer pré-entraîné pour la classification de texte. Pour la classification de textes longs, vous pouvez essayer ce modèle.
- 9. multi_label_classify_bert : utilisez le modèle bert pour la classification multi-étiquettes. Il contient trois modèles : bert (model.py), les deux dernières couches de pooling de bert (model2.py) et bert+TextCNN (model3.py).
- 10. roberta_classification : utilisez le modèle Roberta pré-entraîné pour la classification de texte.
- 11. transformer_xl : utilisez transformer_xl directement pour la classification de texte. Pour la classification de texte long, vous pouvez essayer ce modèle.
- 12. wobert+focal_loss : Le modèle de pré-entraînement wobert est fourni par Su Shen, et la perte focale est ajoutée à la tâche de classification pour résoudre le problème du déséquilibre des catégories.
- 13. TextCNN : faites évoluer le texte à différentes échelles, puis concaténez-le pour la classification du texte.
- 14. BILSTM+Attention : réseau LSTM bidirectionnel plus attention ordinaire pour la classification des textes.
- Text_Clustering
- 1. Regroupement LDA
- 2.DBSCAN
- 3. Ksignifie
- Text_Correcteur
- 1. bert_for_correction : Il s'agit simplement d'une simple tentative, de recyclage sur le corpus correspondant, de saisie d'une phrase avec des fautes de frappe, puis de classification du vecteur d'encodage de chaque jeton.
- Génération_texte
- 1. GPT2_SummaryGen : utilisez GPT2 pour générer un résumé
- 2. GPT2_TitleGen : Génération des titres d'articles
- 3. Simple-GPT2 : modèle GPT2 auto-implémenté
- Texte_Classement
- 1. BM25 : calculez la valeur BM25 de la requête et de tous les textes à trier, puis triez en fonction de cette valeur.
- 2. DC_Bert_Ranking : Tours jumelles + Interaction. Premièrement, la requête et le contexte sont codés séparément, et les poids ici ne sont pas partagés. Ensuite, le codage de la requête et du contexte est mélangé, puis passé à travers plusieurs couches de transformateur-encodeur interactif.
- 3. DPR_Ranking : le modèle de classement des textes de Facebook
- 4. MT_Ranking : utilisez le modèle de style bert pour l'encodage, puis utilisez cls pour la classification et triez selon le score de l'échantillon positif.
- 5. ReRank : y compris la distillation du modèle
- Text_Similarité
- 1. ABCNN : effectuez d'abord l'intégration de mots sur les deux phrases, puis effectuez une mise en commun pour obtenir les vecteurs des deux phrases, puis calculez la différence entre les deux vecteurs, et enfin effectuez une convolution sur le vecteur de différence à différentes échelles, puis classez.
- 2. BiMPM : ce modèle est divisé en quatre parties : intégration de mots, codage de contexte (bilstm), quatre types de correspondance et couche d'agrégation.
- 3. DecomposableAttention : Le cœur de cet article est l'alignement, c'est-à-dire la correspondance entre les mots. L'alignement dans l'article est utilisé à deux endroits. L'un est la partie attention, qui est utilisée pour calculer la relation d'attention entre deux phrases. l'autre est Dans la partie comparaison, les mots entre les deux phrases sont comparés. Chaque traitement est basé sur des mots, et enfin un réseau neuronal à réaction est utilisé pour faire des prédictions. Il est évident que le modèle évoqué dans cet article n'utilise pas la relation temporelle des mots dans la phrase, mais met l'accent sur la correspondance entre les mots dans les deux phrases (alignement).
- 4. ESIM : outil de correspondance de textes courts. L'avantage d'ESIM est son attention inter-phrases, qui est la soft_align_attention dans le code. Dans cette étape, les deux phrases à comparer interagissent. Dans les structures précédentes similaires aux réseaux siamois, il n’y avait souvent aucune interaction au milieu et seule une distance cosinusoïdale ou une autre distance était trouvée au niveau de la dernière couche.
- 5. RE2 : Le nom RE2 vient de la combinaison de trois parties importantes du réseau : les vecteurs résiduels ;
- 6. SiaGRU : structure à deux tours, utilisez GRU pour encoder deux phrases respectivement, puis calculez la différence entre les deux vecteurs d'encodage de phrases, et enfin utilisez ce vecteur de différence pour la classification.
- 7. SimCSE : Apprentissage contrastif, compétences : différents échantillons, différents abandons
- 8. BM25 : Calculez directement la valeur BM25 de deux textes, représentant leur degré de similitude.
- 9. TF_IDF : calculez directement la valeur TF_IDF de deux textes, représentant leur degré de similitude.
- 10. NEZHA_Coattention : il adopte une structure à deux tours. Deux phrases sont respectivement entrées dans le modèle NEZHA, puis l'entrée est différenciée, épissée avec la représentation originale, puis envoyée à un réseau entièrement connecté pour classification. Il existe un autre modèle, c'est-à-dire qu'après avoir obtenu la représentation des deux phrases, nous implémentons nous-mêmes une couche de transformateur-encodeur pour fusionner les informations de représentation, et enfin les classer.
- 11. Bert_Whitening : La méthode proposée par Su Jianlin ne nécessite pas de formation et unifie directement la sortie bert de chaque phrase à la base orthonormée standard.
- data_augmentation
- 1. eda : utilisez la boîte à outils nlpcda pour l'augmentation des données. Tels que : remplacement d'entité équivalente, remplacement aléatoire de synonymes, suppression aléatoire de caractères, échange de position, remplacement d'homophones.
- 2. Traduction arrière-Baidu : utilisez Baidu Translate pour la traduction inverse du texte.
- 3. Back-traduction-google : utilisez Google Translate pour la rétro-traduction du texte.
- relation_extraction
- 1. lstm_cnn_information_extract : lstm+cnn
- 2. relation_classification : classification des relations, bilstm+attention ordinaire
NLP_pytorch_project
Chatbot
1. Bert_chatbot : similaire à UniLM
- python train.py # code de formation
- python infernece.py # Inférence de modèle
2. seq2seq_luong : L'encodeur est un réseau gru à deux couches, et le décodeur est un réseau gru à une couche, une attention est ajoutée entre l'encodeur et le décodeur.
- python train.py # code de formation
- python inference.py # Inférence de modèle
3. transformer_chatbot : modèle de transformateur standard
- python train.py # code de formation
- python chat.py # Les données de formation qui peuvent être utilisées pour discuter sont le matériel de dialogue Qingyun.
Distillation
1. DynaBert : Le travail de Huawei utilise principalement l'élagage pour couper certaines structures de bert.
- python train_teacher_model.py # Former le modèle d'enseignant
- python train_tailor_model.py # Élaguer le modèle d'enseignant
2. rnn_distill_bert : utilisez une couche de réseau lstm pour distiller le modèle bert et ajoutez uniquement une perte d'étiquette logicielle.
- python train_bert.py # Former le modèle d'enseignant bert
- python train_distill.py # La distillation utilise lstm pour apprendre le résultat de bert
3. three_layer_self-attention_to_distill_bert : Vous savez probablement ce que cela signifie en regardant le nom. Il écrit simplement l'encodeur du transformateur à trois couches, puis distille le modèle bert.
- python train_bert.py # Former le modèle d'enseignant bert
- python train_distill.py # Distillation
4. tiny_bert : Le travail de Huawei, la méthode de distillation de tiny_bert consiste à ajouter la perte d'erreur quadratique moyenne de la couche intermédiaire en plus de la perte d'étiquette souple.
- python train.py # Former le modèle d'enseignant Bert
- python train_distill_v2.py # Distillation
Intégration
1. skipgram-word2vec : utilisez skipgram pour obtenir des vecteurs de mots
- python 001-skipgram-word2vec.py
2. bert : entraînez bert directement, entraînez-vous à partir de zéro ou utilisez ce code pour vous recycler
3. albert : formez albert directement et entraînez-vous à partir de zéro. Vous pouvez également utiliser ce code pour vous recycler.
4. NPLM : Approche traditionnelle
NER
1. Bert_CRF_Ner : modèle de Bert plus champ aléatoire conditionnel pour les tâches d'étiquetage de séquence
- python run_ner_crf.py # Formation du modèle
- python inference.py # Inférence de modèle
2. Bert_Softmax_Ner : utilisez directement le modèle bert pour l'annotation de séquence
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
3. BiLSTM_CRF_Ner : utilisez le réseau lstm bidirectionnel et crf pour les tâches d'étiquetage de séquence
- python train.py # Formation de modèle
NMT
1. GRU_attention : l'encodeur et le décodeur sont tous deux des réseaux gru, avec un mécanisme d'attention commun (somme pondérée directe) ajouté au milieu.
- python train.py # Formation de modèle
2. Transformers_NMT : structure de transformateur standard pour la traduction automatique
- python train.py # Formation de modèle
Prétrain_Modèle
1. bert-pretrain : pour recycler le modèle bert, effectuez d'abord le prétraitement des données via get_train_data.py, y compris 15 % des mots pour le masque et d'autres opérations, puis entraînez-vous.
- python get_train_data.py #Prétraitement des données
- python run_pretrain.py # Recyclage
2. wobert-pretrain : Le modèle de pré-formation de wobert est donné par Su Shen. Pour le recyclage ici, vous pouvez ajouter la liste de mots que vous avez construite vous-même, puis modifier la méthode de segmentation de mots de bert.
- python process_pretrain_data.py #Prétraitement des données
- python run_pretrain.py # Recyclage
Lecture_compréhension
1. BERT_MRC : utilisez bert pour effectuer des tâches de compréhension en lecture automatique. Il est prévu que la méthode de l'étape directe soit adoptée ici.
- python train.py # Formation de modèle
2. BiDAF : modèle de compréhension en lecture automatique avec mécanisme de flux d'attention bidirectionnel
- python data_process.py # Prétraitez d'abord les données
- python train_bidaf.py # Formation de modèle
3. DocQA : modèle traditionnel
- python data_process.py # Prétraitez d'abord les données
- python train_DocQA.py # Formation du modèle
4. Match_LSTM : modèle traditionnel, structure rnn simple.
- python data_process.py # Prétraitez d'abord les données
- python train_Match_Lstm.py # Formation du modèle
5. QANet : C'est aussi un modèle relativement traditionnel, mais ce modèle est le premier modèle mrc à abandonner la structure rnn. Ce modèle est également le premier à introduire le mécanisme d'auto-attention dans la tâche mrc.
- python data_process.py #Prétraitement des données
- python train.py # Formation de modèle
6. RNet : modèle traditionnel
- python data_process.py #Prétraitement des données
- python train_RNet.py # Formation de modèle
7. Recurrence-hotpot-baseline : Pour la première fois, le problème de l'utilisation de la structure rnn pour traiter le raisonnement multi-sauts est généré dans l'ensemble de données hotpotqa, en plus des prédictions contenant des réponses, il existe également des prédictions de faits à l'appui. et les prédictions des paragraphes connexes.
- python data_process.py #Prétraitement des données
- python train.py # Formation de modèle
8. albert_mrc : utilisez le modèle pré-entraîné Albert pour effectuer des tâches mrc
- python train_update.py # Modèle de formation
- python inference.py #Inférence sur une seule donnée
- python inference_all.py #Inférence pour toutes les données
9. electra_bert : utilisez le modèle Electra pré-entraîné pour effectuer des tâches MRC
- python run_cail.py #Modèle de formation
- python évaluer.py # Évaluation du modèle
10. mrc_baseline : Si vous effectuez des tâches mrc, il est recommandé de lire d'abord ce code. Il contient divers détails auxquels mrc prête attention, tels que le traitement de textes longs (fenêtre coulissante), le tri des réponses, la formation contradictoire, etc.
- python train.py #modèle de train
11. roberta_mrc : utilisez le modèle Roberta pré-entraîné pour effectuer des tâches mrc
- python train.py #modèle de train
12. transformer+rnn+attention : Ce projet est destiné à la compréhension générative en lecture, en utilisant directement la méthode seq2seq. L'encodeur utilise l'encodeur du transformateur, et le décodeur utilise la structure gru, et une couche d'attention ordinaire est ajoutée au milieu. mécanisme.
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
13. transformer_reading : Ce projet concerne également la compréhension générative en lecture, en utilisant la structure standard du transformateur.
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
Slot_Remplissage
1. JointBert : implique la classification des intentions et la classification des emplacements. Utilisez directement bert pour coder l'entrée et utilisez les vecteurs "CLS" pour la classification des intentions. Le vecteur de codage final de chaque jeton est utilisé pour la classification des emplacements.
- python train.py # Formation du modèle
Texte_Classification
1. DPCNN : Le réseau convolutif profond + la connexion résiduelle rendent ce modèle meilleur que les structures CNN précédentes, et sa complexité n'est pas élevée.
- python get_data_to_examples.py # Prétraiter les données
- python examples_to_features.py # Convertir les exemples correspondants en fonctionnalités
- python train.py # Formation de modèle
2. FastBert : utilise une méthode d'auto-distillation pour accélérer le raisonnement du modèle. Principalement utilisé dans les tâches de classification.
- sh train_stage0.sh # Former le modèle d'enseignant Bert
- sh train_stage1.sh # auto-distillation
- sh infer_sigle.sh # Échantillon unique d'inférence adaptative
3. FastText : Proposé par Facebook, c'est un modèle efficace de classification de texte.
- python step1_get_data_to_examples.py # Récupérer des données
- python step2_examples_to_features.py # Convertir les données texte en séquence d'identification
- python train.py # Formation de modèle
4. XLNet : 1) Apprenez les informations contextuelles bidirectionnelles en maximisant la log-vraisemblance de tous les ordres de factorisation possibles ; 2) Utilisez les caractéristiques de l'autorégression elle-même pour surmonter les lacunes de BERT ; De plus, XLNet intègre également les idées du modèle autorégressif optimal actuel Transformer-XL.
- python train.py # Formation de modèle
5. all_layer_out_concat : comme son nom l'indique, ce projet encode le texte via le modèle de style bert, puis supprime le vecteur cls de chaque couche, effectue un calcul d'attention, puis effectue une classification.
- python train.py # Formation de modèle
- Python inference.py # Inférence de modèle
6. bert+bceloss+average_checkpoint : ce projet modifie la fonction de perte de la tâche de classification en BCELoss. De plus, la moyenne du poids ajoutée (moyenne de plusieurs points de contrôle)
- python run_classify.py # Formation du modèle
- python run_average_checkpoints.py # Poids moyen
7. capsule_text_classification : GRU+Capsule pour la classification de texte
- python train.py # Formation de modèle
8. longformer_classification : utilisez le modèle longformer pré-entraîné pour la classification de texte. Pour la classification de textes longs, vous pouvez essayer ce modèle.
- python train.py # Formation de modèle
9. multi_label_classify_bert : utilisez le modèle bert pour la classification multi-étiquettes. Il contient trois modèles : bert (model.py), les deux dernières couches de pooling de bert (model2.py) et bert+TextCNN (model3.py).
- python train.py # Formation de modèle
- python inference.py # Prédiction du modèle
10. roberta_classification : utilisez le modèle Roberta pré-entraîné pour la classification de texte.
- python train.py # Formation de modèle
11. transformer_xl : utilisez transformer_xl directement pour la classification de texte. Pour la classification de texte long, vous pouvez essayer ce modèle.
- python train.py # Formation de modèle
12. wobert+focal_loss : Le modèle de pré-entraînement wobert est fourni par Su Shen, et la perte focale est ajoutée à la tâche de classification pour résoudre le problème du déséquilibre des catégories.
- python run_classify.py # Formation du modèle
13. TextCNN : faites évoluer le texte à différentes échelles, puis concaténez-le pour la classification du texte.
- python 001-TextCNN.py # Formation du modèle
14. BILSTM+Attention : réseau LSTM bidirectionnel plus attention ordinaire pour la classification des textes.
- python 002-BILSTM+Attention.py # Formation du modèle
Text_Clustering
1. Regroupement LDA
- python train_LDA_cluster.py # Clustering
2.DBSCAN
- python train_dbscan_cluster.py # Clustering
3. Ksignifie
- python train_kmeans_cluster.py # Clustering
Text_Correcteur
1. bert_for_correction : Il s'agit simplement d'une simple tentative, de recyclage sur le corpus correspondant, de saisie d'une phrase avec des fautes de frappe, puis de classification du vecteur d'encodage de chaque jeton.
- python run_pretrain_bert.py #Recyclage
- bert_corrector.py # Correction d'erreur
Génération_texte
1. GPT2_SummaryGen : utilisez GPT2 pour générer un résumé
- python train.py # Formation de modèle
- python inferface.py # Inférence de modèle
2. GPT2_TitleGen : Génération des titres d'articles
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
3. Simple-GPT2 : modèle GPT2 auto-implémenté
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
Texte_Classement
1. BM25 : calculez la valeur BM25 de la requête et de tous les textes à trier, puis triez en fonction de cette valeur.
2. DC_Bert_Ranking : Tours jumelles + Interaction. Premièrement, la requête et le contexte sont codés séparément, et les poids ici ne sont pas partagés. Ensuite, le codage de la requête et du contexte est mélangé, puis passé à travers plusieurs couches de transformateur-encodeur interactif.
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
3. DPR_Ranking : le modèle de classement des textes de Facebook
- python train.py # Formation de modèle
4. MT_Ranking : utilisez le modèle de style bert pour l'encodage, puis utilisez cls pour la classification et triez selon le score de l'échantillon positif.
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
5. ReRank : y compris la distillation du modèle
- python train.py # Formation de modèle
- python train_distill.py # Distillation de modèle
Text_Similarité
1. ABCNN : effectuez d'abord l'intégration de mots sur les deux phrases, puis effectuez un regroupement pour obtenir les vecteurs des deux phrases, puis calculez la différence entre les deux vecteurs, et enfin effectuez une convolution sur le vecteur de différence à différentes échelles, puis classez.
- python train.py # Formation de modèle
2. BiMPM : ce modèle est divisé en quatre parties : intégration de mots, codage de contexte (bilstm), quatre types de correspondance et couche d'agrégation.
- python train.py # Formation de modèle
3. DecomposableAttention : Le cœur de cet article est l'alignement, c'est-à-dire la correspondance entre les mots. L'alignement dans l'article est utilisé à deux endroits. L'un est la partie attention, qui est utilisée pour calculer la relation d'attention entre deux phrases. l'autre est Dans la partie comparaison, les mots entre les deux phrases sont comparés. Chaque traitement est basé sur des mots, et enfin un réseau neuronal à réaction est utilisé pour faire des prédictions. Il est évident que le modèle évoqué dans cet article n'utilise pas la relation temporelle des mots dans la phrase, mais met l'accent sur la correspondance entre les mots dans les deux phrases (alignement).
- python train.py # Formation de modèle
4. ESIM : outil de correspondance de textes courts. L'avantage d'ESIM est son attention inter-phrases, qui est la soft_align_attention dans le code. Dans cette étape, les deux phrases à comparer interagissent. Dans les structures précédentes similaires aux réseaux siamois, il n’y avait souvent aucune interaction au milieu et seule une distance cosinusoïdale ou une autre distance était trouvée au niveau de la dernière couche.
- python train.py # Formation de modèle
5. RE2 : Le nom RE2 vient de la combinaison de trois parties importantes du réseau : les vecteurs résiduels ;
- python train.py # Formation de modèle
6. SiaGRU : structure à deux tours, utilisez GRU pour encoder deux phrases respectivement, puis calculez la différence entre les deux vecteurs d'encodage de phrases, et enfin utilisez ce vecteur de différence pour la classification.
- python train.py # Formation de modèle
7. SimCSE : Apprentissage contrastif, compétences : différents échantillons, différents abandons
- python train.py # Formation de modèle
8. BM25 : Calculez directement la valeur BM25 de deux textes, représentant leur degré de similitude.
9. TF_IDF : calculez directement la valeur TF_IDF de deux textes, représentant leur degré de similitude.
10. NEZHA_Coattention : il adopte une structure à deux tours. Deux phrases sont respectivement entrées dans le modèle NEZHA, puis l'entrée est différenciée, épissée avec la représentation originale, puis envoyée à un réseau entièrement connecté pour classification. Il existe un autre modèle, c'est-à-dire qu'après avoir obtenu la représentation des deux phrases, nous implémentons nous-mêmes une couche de transformateur-encodeur pour fusionner les informations de représentation, et enfin les classer.
11. Bert_Whitening : La méthode proposée par Su Jianlin ne nécessite pas de formation et unifie directement la sortie bert de chaque phrase à la base orthonormée standard.
- python run_bert_whitening.py # Vérifiez directement l'ensemble de données et calculez le coefficient de Spearman
data_augmentation
1. eda : utilisez la boîte à outils nlpcda pour l'augmentation des données. Tels que : remplacement d'entité équivalente, remplacement aléatoire de synonymes, suppression aléatoire de caractères, échange de position, remplacement d'homophones.
2. Traduction arrière-Baidu : utilisez Baidu Translate pour la traduction inverse du texte.
- python 002-run_contrslate_data_aug.py
3. Back-traduction-google : utilisez Google Translate pour la rétro-traduction du texte.
- python 003-google_trans_data_aug.py
relation_extraction
1. lstm_cnn_information_extract : lstm+cnn
- python train.py # Formation de modèle
- python inference.py # Inférence de modèle
2. relation_classification : classification des relations, bilstm+attention ordinaire
- python data_helper.py #Prétraitement des données
- python train.py # Formation de modèle
Histoire des étoiles