Beachten
Da sich in diesem Lager derzeit zu viele Projekte befinden, ist die Wartung schwierig. Daher werden in Zukunft verschiedene Aufgaben getrennt, Lager separat eingerichtet und viele Vergleichsexperimente durchgeführt, um Benutzern die Auswahl von Modellen zu erleichtern. Bei Bedarf können Sie zum angegebenen Lager springen. Der Link lautet wie folgt:
- Textklassifizierungslager
- Semantisches Matching-Warehouse
- Lager zur Textgenerierung
- Andere Repositories beschleunigen Updates ...
Inhaltsverzeichnis
- Chatbot
- 1. Bert_chatbot: Ähnlich wie UniLM
- 2. seq2seq_luong: Der Encoder ist ein zweischichtiges Gru-Netzwerk, und der Decoder ist ein einschichtiges Gru-Netzwerk, das zwischen dem Encoder und dem Decoder hinzugefügt wird.
- 3. Transformer_Chatbot: Standardtransformatormodell
- Destillation
- 1. DynaBert: Die Arbeit von Huawei nutzt hauptsächlich das Beschneiden, um bestimmte Bert-Strukturen zu beschneiden.
- 2. rnn_distill_bert: Verwenden Sie eine Schicht des LSTM-Netzwerks, um das Bert-Modell zu destillieren, und fügen Sie nur Soft-Label-Verlust hinzu.
- 3. three_layer_self-attention_to_distill_bert: Sie wissen wahrscheinlich, was es bedeutet, wenn Sie sich den Namen ansehen. Es schreibt nur den Encoder des dreischichtigen Transformators und destilliert dann das Bert-Modell.
- 4. tiny_bert: Die Arbeit von Huawei, die Destillationsmethode von tiny_bert, besteht darin, zusätzlich zum Soft-Label-Verlust den mittleren quadratischen Fehlerverlust der mittleren Schicht hinzuzufügen.
- Einbetten
- 1. Skipgram-word2vec: Verwenden Sie Skipgram, um Wortvektoren zu erhalten
- 2. Bert: Trainieren Sie Bert direkt, trainieren Sie von Grund auf oder verwenden Sie diesen Code zum Umschulen
- 3. Albert: Trainieren Sie Albert direkt und trainieren Sie von Grund auf. Sie können diesen Code auch zum Umschulen verwenden.
- 4. NPLM: Traditioneller Ansatz
- NER
- 1. Bert_CRF_Ner: Bert-Modell plus bedingtes Zufallsfeld für Sequenzmarkierungsaufgaben
- 2. Bert_Softmax_Ner: Verwenden Sie das Bert-Modell direkt für die Sequenzannotation
- 3. BiLSTM_CRF_Ner: Verwenden Sie das bidirektionale lstm-Netzwerk und crf für Sequenzkennzeichnungsaufgaben
- NMT
- 1. GRU_attention: Der Encoder und der Decoder sind beide GRU-Netzwerke, in deren Mitte ein gemeinsamer Aufmerksamkeitsmechanismus (direkt gewichtete Summe) hinzugefügt wird.
- 2. Transformers_NMT: Standardtransformatorstruktur für maschinelle Übersetzung
- Pretrain_Model
- 1. Bert-Pretrain: Um das Bert-Modell neu zu trainieren, führen Sie zunächst eine Datenvorverarbeitung über get_train_data.py durch, einschließlich 15 % der Wörter für Masken und andere Operationen, und trainieren Sie dann.
- 2. Wobert-Pretrain: Das Vortrainingsmodell von Wobert wird von Su Shen bereitgestellt. Für die Umschulung können Sie hier die von Ihnen selbst erstellte Wortliste hinzufügen und dann die Wortsegmentierungsmethode von Bert ändern.
- Leseverständnis
- 1. BERT_MRC: Verwenden Sie Bert, um Aufgaben zum maschinellen Leseverständnis auszuführen. Es wird erwartet, dass hier die Direktstufenmethode übernommen wird.
- 2. BiDAF: Modell des maschinellen Leseverständnisses mit bidirektionalem Aufmerksamkeitsflussmechanismus
- 3. DocQA: traditionelles Modell
- 4. Match_LSTM: traditionelles Modell, einfache RNN-Struktur.
- 5. QANet: Es ist ebenfalls ein relativ traditionelles Modell, aber dieses Modell ist das erste MRC-Modell, das die RNN-Struktur aufgibt. Dieses Modell ist auch das erste, das den Selbstaufmerksamkeitsmechanismus in die MRC-Aufgabe einführt.
- 6. RNet: traditionelles Modell
- 7. Recurrence-Hotpot-Baseline: Zum ersten Mal wird das Problem der Verwendung der RNN-Struktur zur Behandlung von Multi-Hop-Argumentation generiert. Im Hotpotqa-Datensatz gibt es zusätzlich zu den Vorhersagen, die Antworten enthalten, auch Vorhersagen unterstützender Fakten und Vorhersagen verwandter Absätze.
- 8. albert_mrc: Verwenden Sie das vorab trainierte Albert-Modell, um MRC-Aufgaben auszuführen
- 9. electra_bert: Verwenden Sie das vorab trainierte Modell von electra, um MRC-Aufgaben auszuführen
- 10. mrc_baseline: Wenn Sie mrc-Aufgaben ausführen, wird empfohlen, diesen Code zuerst zu lesen. Er enthält verschiedene Details, auf die mrc achtet, z. B. die Verarbeitung langer Texte (Schiebefenster), die Antwortsortierung, das kontradiktorische Training usw.
- 11. roberta_mrc: Verwenden Sie das vorab trainierte Roberta-Modell, um MRC-Aufgaben auszuführen
- 12. Transformer+rnn+attention: Dieses Projekt dient dem generativen Leseverständnis und verwendet direkt die seq2seq-Methode Mechanismus.
- 13. Transformer_reading: In diesem Projekt geht es auch um generatives Leseverständnis unter Verwendung der Standard-Transformer-Struktur.
- Slot_Filling
- 1. JointBert: Beinhaltet Absichtsklassifizierung und Slotklassifizierung. Verwenden Sie Bert direkt zum Codieren der Eingabe und verwenden Sie „CLS“-Vektoren zur Absichtsklassifizierung. Der endgültige Codierungsvektor jedes Tokens wird zur Slot-Klassifizierung verwendet.
- Text_Klassifizierung
- 1. DPCNN: Das tiefe Faltungsnetzwerk + die Restverbindung machen dieses Modell besser als frühere CNN-Strukturen und seine Komplexität ist nicht hoch.
- 2. FastBert: verwendet eine Selbstdestillationsmethode, um die Modellschlussfolgerung zu beschleunigen. Wird hauptsächlich bei Klassifizierungsaufgaben verwendet.
- 3. FastText: Von Facebook vorgeschlagen, ist es ein effizientes Textklassifizierungsmodell.
- 4. XLNet: 1) Lernen Sie bidirektionale Kontextinformationen, indem Sie die Log-Likelihood aller möglichen Faktorisierungsreihenfolgen maximieren. 2) Nutzen Sie die Eigenschaften der Autoregression selbst, um die Mängel von BERT zu überwinden. Darüber hinaus berücksichtigt XLNet auch die Ideen des aktuellen optimalen autoregressiven Modells Transformer-XL.
- 5. all_layer_out_concat: Wie Sie dem Namen entnehmen können, codiert dieses Projekt den Text mithilfe des Bert-Modells, entnimmt dann den CLS-Vektor jeder Ebene, führt eine Aufmerksamkeitsberechnung durch und führt dann eine Klassifizierung durch.
- 6. bert+bceloss+average_checkpoint: Dieses Projekt ändert die Verlustfunktion der Klassifizierungsaufgabe in BCELoss und fügt außerdem den Gewichtungsdurchschnitt (durchschnittliche mehrere Prüfpunkte) hinzu.
- 7. Capsule_text_classification: GRU+Kapsel zur Textklassifizierung
- 8. longformer_classification: Verwenden Sie das vorab trainierte Modell longformer zur Textklassifizierung. Zur Klassifizierung langer Texte können Sie dieses Modell ausprobieren.
- 9. multi_label_classify_bert: Verwenden Sie das Bert-Modell für die Klassifizierung mit mehreren Etiketten. Es enthält drei Modelle: bert (model.py), die letzten beiden Pooling-Ebenen von bert (model2.py) und bert+TextCNN (model3.py).
- 10. roberta_classification: Verwenden Sie das vorab trainierte Roberta-Modell für die Textklassifizierung.
- 11. Transformer_XL: Verwenden Sie Transformer_XL direkt für die Textklassifizierung. Für die Langtextklassifizierung können Sie dieses Modell ausprobieren.
- 12. wobert+focal_loss: Das Wobert-Pre-Training-Modell wird von Su Shen bereitgestellt, und der Klassifizierungsaufgabe wird Fokusverlust hinzugefügt, um das Problem des Kategorienungleichgewichts zu lösen.
- 13. TextCNN: Falten Sie den Text in verschiedenen Maßstäben und verketten Sie ihn dann zur Textklassifizierung.
- 14. BILSTM+Attention: Bidirektionales LSTM-Netzwerk plus normale Aufmerksamkeit für die Textklassifizierung.
- Text_Clustering
- 1. LDA-Clustering
- 2.DBSCAN
- 3. Kbedeutet
- Text_Corrector
- 1. bert_for_correction: Es ist nur ein einfacher Versuch, den entsprechenden Korpus neu zu trainieren, einen Satz mit Tippfehlern einzugeben und dann den Codierungsvektor jedes Tokens zu klassifizieren.
- Text_Generation
- 1. GPT2_SummaryGen: Verwenden Sie GPT2, um eine Zusammenfassung zu erstellen
- 2. GPT2_TitleGen: Generierung von Artikeltiteln
- 3. Simple-GPT2: Selbstimplementiertes GPT2-Modell
- Text_Ranking
- 1. BM25: Berechnen Sie den BM25-Wert der Abfrage und aller zu sortierenden Texte und sortieren Sie dann basierend auf diesem Wert.
- 2. DC_Bert_Ranking: Zwillingstürme + Interaktion. Zuerst werden Abfrage und Kontext separat codiert, und die Gewichte werden hier nicht geteilt. Dann wird die Codierung von Abfrage und Kontext gemischt und dann durch mehrere Ebenen des interaktiven Transformator-Encoders geleitet.
- 3. DPR_Ranking: Facebooks Text-Ranking-Modell
- 4. MT_Ranking: Verwenden Sie das Bert-Modell zur Codierung, verwenden Sie dann cls zur Klassifizierung und sortieren Sie nach der Punktzahl der positiven Stichprobe
- 5. ReRank: einschließlich Modelldestillation
- Text_Ähnlichkeit
- 1. ABCNN: Führen Sie zuerst eine Worteinbettung für die beiden Sätze durch, führen Sie dann ein Pooling durch, um die Vektoren der beiden Sätze zu erhalten, berechnen Sie dann die Differenz zwischen den beiden Vektoren und führen Sie schließlich eine Faltung des Differenzvektors in verschiedenen Maßstäben durch und klassifizieren Sie ihn dann.
- 2. BiMPM: Dieses Modell ist in vier Teile unterteilt: Worteinbettung, Kontextkodierung (bilstm), vier Arten von Matching und Aggregationsschicht.
- 3. Zerlegbare Aufmerksamkeit: Der Kern dieses Artikels ist die Ausrichtung, dh die Übereinstimmung zwischen Wörtern. Die Ausrichtung im Artikel wird an zwei Stellen verwendet, um die Aufmerksamkeitsbeziehung zwischen zwei Sätzen zu berechnen der andere ist Im Vergleichsteil werden die Wörter zwischen den beiden Sätzen verglichen. Jede Verarbeitung basiert auf Wörtern und schließlich wird ein Feed-Forward-Neuronales Netzwerk verwendet, um Vorhersagen zu treffen. Es ist offensichtlich, dass das in diesem Artikel erwähnte Modell nicht die zeitliche Beziehung der Wörter im Satz verwendet, sondern die Korrespondenz zwischen den Wörtern in den beiden Sätzen (Ausrichtung) betont.
- 4. ESIM: Kurztext-Matching-Tool. Das Tolle an ESIM ist die satzübergreifende Aufmerksamkeit, die soft_align_attention im Code. In diesem Schritt werden die beiden zu vergleichenden Sätze interagiert. In früheren Strukturen, die siamesischen Netzwerken ähnelten, gab es in der Mitte oft keine Interaktion, und in der letzten Schicht wurde nur ein Kosinusabstand oder ein anderer Abstand gefunden.
- 5. RE2: Der Name RE2 ergibt sich aus der Kombination von drei wichtigen Teilen des Netzwerks: Restvektoren;
- 6. SiaGRU: Twin-Tower-Struktur. Verwenden Sie GRU, um jeweils zwei Sätze zu codieren, berechnen Sie dann die Differenz zwischen den beiden Satzcodierungsvektoren und verwenden Sie schließlich diesen Differenzvektor zur Klassifizierung.
- 7. SimCSE: Kontrastives Lernen, Fähigkeiten: unterschiedliche Stichproben, unterschiedliche Dropouts
- 8. BM25: Berechnen Sie direkt den BM25-Wert zweier Texte und stellen Sie deren Ähnlichkeitsgrad dar.
- 9. TF_IDF: Berechnen Sie direkt den TF_IDF-Wert zweier Texte und stellen Sie deren Ähnlichkeitsgrad dar.
- 10. NEZHA_Coattention: Es werden jeweils zwei Sätze in das NEZHA-Modell eingegeben. Anschließend wird die Eingabe differenziert, mit der ursprünglichen Darstellung gespleißt und dann zur Klassifizierung an ein vollständig verbundenes Netzwerk gesendet. Es gibt ein anderes Modell: Nachdem wir die Darstellung der beiden Sätze erhalten haben, implementieren wir selbst eine Transformator-Encoder-Schicht, um die Darstellungsinformationen zusammenzuführen und schließlich zu klassifizieren.
- 11. Bert_Whitening: Die von Su Jianlin vorgeschlagene Methode erfordert kein Training und vereinheitlicht die Bert-Ausgabe jedes Satzes direkt mit der Standard-Orthonormalbasis.
- data_augmentation
- 1. eda: Verwenden Sie das nlpcda-Toolkit zur Datenerweiterung. Zum Beispiel: äquivalente Entitätsersetzung, zufällige Synonymersetzung, zufällige Löschung von Zeichen, Positionsaustausch, homophone Ersetzung.
- 2. Rückübersetzung – Baidu: Verwenden Sie Baidu Translate für die Rückübersetzung von Text.
- 3. Back-translation-google: Verwenden Sie Google Translate für die Rückübersetzung von Text.
- relation_extraction
- 1. lstm_cnn_information_extract: lstm+cnn
- 2. relation_classification: Beziehungsklassifizierung, bilstm+gewöhnliche Aufmerksamkeit
NLP_pytorch_project
Chatbot
1. Bert_chatbot: Ähnlich wie UniLM
- Python train.py # Trainingscode
- python infernece.py # Modellinferenz
2. seq2seq_luong: Der Encoder ist ein zweischichtiges Gru-Netzwerk, und der Decoder ist ein einschichtiges Gru-Netzwerk, das zwischen dem Encoder und dem Decoder hinzugefügt wird.
- Python train.py # Trainingscode
- python inference.py # Modellinferenz
3. Transformer_Chatbot: Standardtransformatormodell
- Python train.py # Trainingscode
- python chat.py # Die Trainingsdaten, die zum Chatten verwendet werden können, sind Qingyun-Dialogmaterial.
Destillation
1. DynaBert: Die Arbeit von Huawei nutzt hauptsächlich das Beschneiden, um bestimmte Bert-Strukturen zu beschneiden.
- python train_teacher_model.py # Lehrermodell trainieren
- python train_tailor_model.py # Beschneide das Lehrermodell
2. rnn_distill_bert: Verwenden Sie eine Schicht des LSTM-Netzwerks, um das Bert-Modell zu destillieren, und fügen Sie nur Soft-Label-Verlust hinzu.
- python train_bert.py # Lehrermodell Bert trainieren
- python train_distill.py # Distillation verwendet lstm, um die Ausgabe von Bert zu lernen
3. three_layer_self-attention_to_distill_bert: Sie wissen wahrscheinlich, was es bedeutet, wenn Sie sich den Namen ansehen. Es schreibt nur den Encoder des dreischichtigen Transformators und destilliert dann das Bert-Modell.
- python train_bert.py # Lehrermodell Bert trainieren
- python train_distill.py # Destillation
4. tiny_bert: Die Arbeit von Huawei, die Destillationsmethode von tiny_bert, besteht darin, zusätzlich zum Soft-Label-Verlust den mittleren quadratischen Fehlerverlust der mittleren Schicht hinzuzufügen.
- python train.py # Lehrermodell Bert trainieren
- python train_distill_v2.py # Destillation
Einbetten
1. Skipgram-word2vec: Verwenden Sie Skipgram, um Wortvektoren zu erhalten
- Python 001-skipgram-word2vec.py
2. Bert: Trainieren Sie Bert direkt, trainieren Sie von Grund auf oder verwenden Sie diesen Code zum Umschulen
3. Albert: Trainieren Sie Albert direkt und trainieren Sie von Grund auf. Sie können diesen Code auch zum Umschulen verwenden.
4. NPLM: Traditioneller Ansatz
NER
1. Bert_CRF_Ner: Bert-Modell plus bedingtes Zufallsfeld für Sequenzmarkierungsaufgaben
- python run_ner_crf.py # Modelltraining
- python inference.py # Modellinferenz
2. Bert_Softmax_Ner: Verwenden Sie das Bert-Modell direkt für die Sequenzannotation
- python train.py # Modelltraining
- python inference.py # Modellinferenz
3. BiLSTM_CRF_Ner: Verwenden Sie das bidirektionale lstm-Netzwerk und crf für Sequenzkennzeichnungsaufgaben
- python train.py # Modelltraining
NMT
1. GRU_attention: Der Encoder und der Decoder sind beide GRU-Netzwerke, in deren Mitte ein gemeinsamer Aufmerksamkeitsmechanismus (direkt gewichtete Summe) hinzugefügt wird.
- python train.py # Modelltraining
2. Transformers_NMT: Standardtransformatorstruktur für maschinelle Übersetzung
- python train.py # Modelltraining
Pretrain_Model
1. Bert-Pretrain: Um das Bert-Modell neu zu trainieren, führen Sie zunächst eine Datenvorverarbeitung über get_train_data.py durch, einschließlich 15 % der Wörter für Masken- und andere Operationen, und trainieren Sie dann.
- python get_train_data.py #Datenvorverarbeitung
- python run_pretrain.py # Umschulung
2. Wobert-Pretrain: Das Vortrainingsmodell von Wobert wird von Su Shen bereitgestellt. Für die Umschulung können Sie hier die von Ihnen selbst erstellte Wortliste hinzufügen und dann die Wortsegmentierungsmethode von Bert ändern.
- pythonprocess_pretrain_data.py #Datenvorverarbeitung
- python run_pretrain.py # Umschulung
Leseverständnis
1. BERT_MRC: Verwenden Sie Bert, um Aufgaben zum maschinellen Leseverständnis auszuführen. Es wird erwartet, dass hier die Direktstufenmethode übernommen wird.
- python train.py # Modelltraining
2. BiDAF: Modell des maschinellen Leseverständnisses mit bidirektionalem Aufmerksamkeitsflussmechanismus
- python data_process.py # Verarbeiten Sie zunächst die Daten vor
- python train_bidaf.py # Modelltraining
3. DocQA: traditionelles Modell
- python data_process.py # Verarbeiten Sie zunächst die Daten vor
- python train_DocQA.py # Modelltraining
4. Match_LSTM: traditionelles Modell, einfache RNN-Struktur.
- python data_process.py # Verarbeiten Sie zunächst die Daten vor
- python train_Match_Lstm.py # Modelltraining
5. QANet: Es ist ebenfalls ein relativ traditionelles Modell, aber dieses Modell ist das erste MRC-Modell, das die RNN-Struktur aufgibt. Dieses Modell ist auch das erste, das den Selbstaufmerksamkeitsmechanismus in die MRC-Aufgabe einführt.
- python data_process.py #Datenvorverarbeitung
- python train.py # Modelltraining
6. RNet: traditionelles Modell
- python data_process.py #Datenvorverarbeitung
- python train_RNet.py # Modelltraining
7. Recurrence-Hotpot-Baseline: Zum ersten Mal wird das Problem der Verwendung der RNN-Struktur zur Behandlung von Multi-Hop-Argumentation generiert. Im Hotpotqa-Datensatz gibt es zusätzlich zu den Vorhersagen, die Antworten enthalten, auch Vorhersagen unterstützender Fakten und Vorhersagen verwandter Absätze.
- python data_process.py #Datenvorverarbeitung
- python train.py # Modelltraining
8. albert_mrc: Verwenden Sie das vorab trainierte Albert-Modell, um MRC-Aufgaben auszuführen
- python train_update.py # Trainingsmodell
- python inference.py #Inferenz auf ein einzelnes Datenelement
- python inference_all.py #Inferenz für alle Daten
9. electra_bert: Verwenden Sie das vorab trainierte Modell von electra, um MRC-Aufgaben auszuführen
- python run_cail.py #Trainingsmodell
- python evaluieren.py # Modellbewertung
10. mrc_baseline: Wenn Sie mrc-Aufgaben ausführen, wird empfohlen, diesen Code zuerst zu lesen. Er enthält verschiedene Details, auf die mrc achtet, z. B. die Verarbeitung langer Texte (Schiebefenster), die Antwortsortierung, das kontradiktorische Training usw.
- Python train.py #Train-Modell
11. roberta_mrc: Verwenden Sie das vorab trainierte Roberta-Modell, um MRC-Aufgaben auszuführen
- Python train.py #Train-Modell
12. Transformer+rnn+attention: Dieses Projekt dient dem generativen Leseverständnis und verwendet direkt die seq2seq-Methode Mechanismus.
- python train.py # Modelltraining
- python inference.py # Modellinferenz
13. Transformer_reading: In diesem Projekt geht es auch um generatives Leseverständnis unter Verwendung der Standard-Transformer-Struktur.
- python train.py # Modelltraining
- python inference.py # Modellinferenz
Slot_Filling
1. JointBert: Beinhaltet Absichtsklassifizierung und Slotklassifizierung. Verwenden Sie Bert direkt zum Codieren der Eingabe und verwenden Sie „CLS“-Vektoren zur Absichtsklassifizierung. Der endgültige Codierungsvektor jedes Tokens wird zur Slot-Klassifizierung verwendet.
- python train.py # Training des Modells
Text_Klassifizierung
1. DPCNN: Das tiefe Faltungsnetzwerk + die Restverbindung machen dieses Modell besser als frühere CNN-Strukturen und seine Komplexität ist nicht hoch.
- python get_data_to_examples.py # Daten vorverarbeiten
- python examples_to_features.py # Konvertieren Sie die entsprechenden Beispiele in Features
- python train.py # Modelltraining
2. FastBert: verwendet eine Selbstdestillationsmethode, um die Modellschlussfolgerung zu beschleunigen. Wird hauptsächlich bei Klassifizierungsaufgaben verwendet.
- sh train_stage0.sh # Lehrermodell Bert trainieren
- sh train_stage1.sh # Selbstdestillation
- sh infer_sigle.sh # Adaptive Inferenz einzelner Stichprobe
3. FastText: Von Facebook vorgeschlagen, ist es ein effizientes Textklassifizierungsmodell.
- python step1_get_data_to_examples.py # Daten abrufen
- python step2_examples_to_features.py # Textdaten in ID-Sequenz konvertieren
- python train.py # Modelltraining
4. XLNet: 1) Lernen Sie bidirektionale Kontextinformationen, indem Sie die Log-Likelihood aller möglichen Faktorisierungsreihenfolgen maximieren. 2) Nutzen Sie die Eigenschaften der Autoregression selbst, um die Mängel von BERT zu überwinden. Darüber hinaus berücksichtigt XLNet auch die Ideen des aktuellen optimalen autoregressiven Modells Transformer-XL.
- python train.py # Modelltraining
5. all_layer_out_concat: Wie Sie dem Namen entnehmen können, codiert dieses Projekt den Text mithilfe des Bert-Modells, entnimmt dann den CLS-Vektor jeder Ebene, führt eine Aufmerksamkeitsberechnung durch und führt dann eine Klassifizierung durch.
- python train.py # Modelltraining
- Python inference.py # Modellinferenz
6. bert+bceloss+average_checkpoint: Dieses Projekt ändert die Verlustfunktion der Klassifizierungsaufgabe in BCEloss und fügt außerdem den Gewichtungsdurchschnitt (durchschnittliche mehrere Prüfpunkte) hinzu.
- python run_classify.py # Modelltraining
- python run_average_checkpoints.py # Gewichtsdurchschnitt
7. Capsule_text_classification: GRU+Kapsel zur Textklassifizierung
- python train.py # Modelltraining
8. longformer_classification: Verwenden Sie das vorab trainierte Modell longformer zur Textklassifizierung. Zur Klassifizierung langer Texte können Sie dieses Modell ausprobieren.
- python train.py # Modelltraining
9. multi_label_classify_bert: Verwenden Sie das Bert-Modell für die Klassifizierung mit mehreren Etiketten. Es enthält drei Modelle: bert (model.py), die letzten beiden Pooling-Ebenen von bert (model2.py) und bert+TextCNN (model3.py).
- python train.py # Modelltraining
- python inference.py # Modellvorhersage
10. roberta_classification: Verwenden Sie das vorab trainierte Roberta-Modell für die Textklassifizierung.
- python train.py # Modelltraining
11. Transformer_XL: Verwenden Sie Transformer_XL direkt für die Textklassifizierung. Für die Langtextklassifizierung können Sie dieses Modell ausprobieren.
- python train.py # Modelltraining
12. wobert+focal_loss: Das Wobert-Pre-Training-Modell wird von Su Shen bereitgestellt, und der Klassifizierungsaufgabe wird Fokusverlust hinzugefügt, um das Problem des Kategorieungleichgewichts zu lösen.
- python run_classify.py # Modelltraining
13. TextCNN: Falten Sie den Text in verschiedenen Maßstäben und verketten Sie ihn dann zur Textklassifizierung.
- Python 001-TextCNN.py # Modelltraining
14. BILSTM+Attention: Bidirektionales LSTM-Netzwerk plus normale Aufmerksamkeit für die Textklassifizierung.
- python 002-BILSTM+Attention.py # Modelltraining
Text_Clustering
1. LDA-Clustering
- python train_LDA_cluster.py # Clustering
2.DBSCAN
- python train_dbscan_cluster.py # Clustering
3. Kbedeutet
- python train_kmeans_cluster.py # Clustering
Text_Corrector
1. bert_for_correction: Es ist nur ein einfacher Versuch, den entsprechenden Korpus neu zu trainieren, einen Satz mit Tippfehlern einzugeben und dann den Codierungsvektor jedes Tokens zu klassifizieren.
- python run_pretrain_bert.py #Umschulung
- bert_corrector.py # Fehlerkorrektur
Text_Generation
1. GPT2_SummaryGen: Verwenden Sie GPT2, um eine Zusammenfassung zu erstellen
- python train.py # Modelltraining
- python inferface.py # Modellinferenz
2. GPT2_TitleGen: Generierung von Artikeltiteln
- python train.py # Modelltraining
- python inference.py # Modellinferenz
3. Simple-GPT2: Selbstimplementiertes GPT2-Modell
- python train.py # Modelltraining
- python inference.py # Modellinferenz
Text_Ranking
1. BM25: Berechnen Sie den BM25-Wert der Abfrage und aller zu sortierenden Texte und sortieren Sie dann basierend auf diesem Wert.
- python main.py # Sortieren
2. DC_Bert_Ranking: Zwillingstürme + Interaktion. Zuerst werden Abfrage und Kontext separat codiert, und die Gewichte werden hier nicht geteilt. Dann wird die Codierung von Abfrage und Kontext gemischt und dann durch mehrere Ebenen des interaktiven Transformator-Encoders geleitet.
- python train.py # Modelltraining
- python inference.py # Modellinferenz
3. DPR_Ranking: Facebooks Text-Ranking-Modell
- python train.py # Modelltraining
4. MT_Ranking: Verwenden Sie das Bert-Modell zur Codierung, verwenden Sie dann cls zur Klassifizierung und sortieren Sie nach der Punktzahl der positiven Stichprobe
- python train.py # Modelltraining
- python inference.py # Modellinferenz
5. ReRank: einschließlich Modelldestillation
- python train.py # Modelltraining
- python train_distill.py # Modelldestillation
Text_Ähnlichkeit
1. ABCNN: Führen Sie zuerst eine Worteinbettung für die beiden Sätze durch, führen Sie dann ein Pooling durch, um die Vektoren der beiden Sätze zu erhalten, berechnen Sie dann die Differenz zwischen den beiden Vektoren und führen Sie schließlich eine Faltung des Differenzvektors in verschiedenen Maßstäben durch und klassifizieren Sie ihn dann.
- python train.py # Modelltraining
2. BiMPM: Dieses Modell ist in vier Teile unterteilt: Worteinbettung, Kontextkodierung (bilstm), vier Arten von Matching und Aggregationsschicht.
- python train.py # Modelltraining
3. Zerlegbare Aufmerksamkeit: Der Kern dieses Artikels ist die Ausrichtung, dh die Übereinstimmung zwischen Wörtern. Die Ausrichtung im Artikel wird an zwei Stellen verwendet, um die Aufmerksamkeitsbeziehung zwischen zwei Sätzen zu berechnen der andere ist Im Vergleichsteil werden die Wörter zwischen den beiden Sätzen verglichen. Jede Verarbeitung basiert auf Wörtern und schließlich wird ein Feed-Forward-Neuronales Netzwerk verwendet, um Vorhersagen zu treffen. Es ist offensichtlich, dass das in diesem Artikel erwähnte Modell nicht die zeitliche Beziehung der Wörter im Satz verwendet, sondern die Korrespondenz zwischen den Wörtern in den beiden Sätzen (Ausrichtung) betont.
- python train.py # Modelltraining
4. ESIM: Kurztext-Matching-Tool. Das Tolle an ESIM ist die satzübergreifende Aufmerksamkeit, die soft_align_attention im Code. In diesem Schritt werden die beiden zu vergleichenden Sätze interagiert. In früheren Strukturen, die siamesischen Netzwerken ähnelten, gab es in der Mitte oft keine Interaktion, und in der letzten Schicht wurde nur ein Kosinusabstand oder ein anderer Abstand gefunden.
- python train.py # Modelltraining
5. RE2: Der Name RE2 ergibt sich aus der Kombination von drei wichtigen Teilen des Netzwerks: Restvektoren;
- python train.py # Modelltraining
6. SiaGRU: Twin-Tower-Struktur. Verwenden Sie GRU, um jeweils zwei Sätze zu codieren, berechnen Sie dann die Differenz zwischen den beiden Satzcodierungsvektoren und verwenden Sie schließlich diesen Differenzvektor zur Klassifizierung.
- python train.py # Modelltraining
7. SimCSE: Kontrastives Lernen, Fähigkeiten: unterschiedliche Stichproben, unterschiedliche Dropouts
- python train.py # Modelltraining
8. BM25: Berechnen Sie direkt den BM25-Wert zweier Texte und stellen Sie deren Ähnlichkeitsgrad dar.
9. TF_IDF: Berechnen Sie direkt den TF_IDF-Wert zweier Texte und stellen Sie deren Ähnlichkeitsgrad dar.
10. NEZHA_Coattention: Es werden jeweils zwei Sätze in das NEZHA-Modell eingegeben. Anschließend wird die Eingabe differenziert, mit der ursprünglichen Darstellung gespleißt und dann zur Klassifizierung an ein vollständig verbundenes Netzwerk gesendet. Es gibt ein anderes Modell: Nachdem wir die Darstellung der beiden Sätze erhalten haben, implementieren wir selbst eine Transformator-Encoder-Schicht, um die Darstellungsinformationen zusammenzuführen und schließlich zu klassifizieren.
11. Bert_Whitening: Die von Su Jianlin vorgeschlagene Methode erfordert kein Training und vereinheitlicht die Bert-Ausgabe jedes Satzes direkt mit der Standard-Orthonormalbasis.
- python run_bert_whitening.py # Überprüfen Sie den Datensatz direkt und berechnen Sie den Spearman-Koeffizienten
data_augmentation
1. eda: Verwenden Sie das nlpcda-Toolkit zur Datenerweiterung. Zum Beispiel: äquivalente Entitätsersetzung, zufällige Synonymersetzung, zufällige Löschung von Zeichen, Positionsaustausch, homophone Ersetzung.
2. Rückübersetzung – Baidu: Verwenden Sie Baidu Translate für die Rückübersetzung von Text.
- Python 002-run_contrslate_data_aug.py
3. Back-translation-google: Verwenden Sie Google Translate für die Rückübersetzung von Text.
- Python 003-google_trans_data_aug.py
relation_extraction
1. lstm_cnn_information_extract: lstm+cnn
- python train.py # Modelltraining
- python inference.py # Modellinferenz
2. relation_classification: Beziehungsklassifizierung, bilstm+gewöhnliche Aufmerksamkeit
- python data_helper.py #Datenvorverarbeitung
- python train.py # Modelltraining
Sternengeschichte