สังเกต
เนื่องจากปัจจุบันมีโครงการมากเกินไปในคลังสินค้าแห่งนี้ จึงดูแลรักษาได้ยาก ดังนั้นในอนาคตงานต่างๆ จะถูกแยกออกไป คลังสินค้าจะถูกสร้างขึ้นแยกจากกัน และจะมีการทดลองเปรียบเทียบหลายอย่างเพื่ออำนวยความสะดวกให้ผู้ใช้เลือกแบบจำลอง หากจำเป็น คุณสามารถข้ามไปยังคลังสินค้าที่ระบุได้ ตามลิงค์ดังนี้:
- คลังสินค้าจำแนกข้อความ
- คลังสินค้าการจับคู่ความหมาย
- คลังสินค้าสร้างข้อความ
- ที่เก็บข้อมูลอื่นกำลังเร่งการอัปเดต...
สารบัญ
- แชทบอท
- 1. Bert_chatbot: คล้ายกับ UniLM
- 2. seq2seq_luong: ตัวเข้ารหัสเป็นเครือข่าย gru สองชั้น และตัวถอดรหัสเป็นเครือข่าย gru ชั้นเดียว ความสนใจของ Luong จะถูกเพิ่มระหว่างตัวเข้ารหัสและตัวถอดรหัส
- 3.transformer_chatbot : หม้อแปลงรุ่นมาตรฐาน
- การกลั่น
- 1. DynaBert: งานของ Huawei ใช้การตัดแต่งกิ่งเพื่อตัดโครงสร้างบางส่วนของเบิร์ตเป็นหลัก
- 2. rnn_distill_bert: ใช้เลเยอร์ของเครือข่าย lstm เพื่อกลั่นแบบจำลอง bert และเพิ่มเฉพาะการสูญเสีย soft label เท่านั้น
- 3. three_layer_self-attention_to_distill_bert: คุณคงรู้ว่ามันหมายถึงอะไรโดยดูจากชื่อ มันแค่เขียนตัวเข้ารหัสของหม้อแปลงสามชั้น จากนั้นจึงกลั่นโมเดลเบิร์ต
- 4. Tiny_bert: งานของ Huawei วิธีการกลั่นของ Tiny_bert คือการเพิ่มค่าเฉลี่ยการสูญเสียข้อผิดพลาดกำลังสองของชั้นกลาง นอกเหนือจากการสูญเสียฉลากแบบอ่อน
- การฝัง
- 1.ข้ามกรัม-word2vec: ใช้ข้ามแกรมเพื่อรับเวกเตอร์คำ
- 2. เบิร์ต: ฝึกเบิร์ตโดยตรง ฝึกตั้งแต่ต้น หรือใช้รหัสนี้เพื่อฝึกใหม่
- 3. อัลเบิร์ต: ฝึกอัลเบิร์ตโดยตรงและฝึกตั้งแต่เริ่มต้น คุณยังสามารถใช้รหัสนี้เพื่อฝึกใหม่ได้
- 4. NPLM: แนวทางดั้งเดิม
- เนอ
- 1. Bert_CRF_Ner: โมเดล Bert บวกฟิลด์สุ่มแบบมีเงื่อนไขสำหรับงานการติดป้ายกำกับลำดับ
- 2. Bert_Softmax_Ner: ใช้โมเดล bert โดยตรงสำหรับคำอธิบายประกอบแบบลำดับ
- 3. BiLSTM_CRF_Ner: ใช้เครือข่าย lstm แบบสองทิศทางและ crf สำหรับงานการติดฉลากตามลำดับ
- นทท
- 1. GRU_attention: ตัวเข้ารหัสและตัวถอดรหัสเป็นทั้งเครือข่าย gru โดยมีกลไกความสนใจร่วมกัน (ผลรวมถ่วงน้ำหนักโดยตรง) ที่เพิ่มไว้ตรงกลาง
- 2. Transformers_NMT: โครงสร้างหม้อแปลงมาตรฐานสำหรับการแปลด้วยเครื่อง
- Pretrain_รุ่น
- 1. bert-pretrain: หากต้องการฝึกโมเดล bert ใหม่ ขั้นแรกให้ดำเนินการประมวลผลข้อมูลล่วงหน้าผ่าน get_train_data.py รวมถึง 15% ของคำสำหรับมาสก์และการดำเนินการอื่นๆ จากนั้นจึงฝึก
- 2. wobert-pretrain: โมเดลก่อนการฝึกของ wobert มอบให้โดย Su Shen สำหรับการฝึกใหม่ที่นี่ คุณสามารถเพิ่มรายการคำที่คุณสร้างขึ้นเอง จากนั้นแก้ไขวิธีการแบ่งส่วนคำของ bert
- การอ่าน_ความเข้าใจ
- 1. BERT_MRC: ใช้ bert เพื่อทำงานเพื่อความเข้าใจในการอ่านของเครื่อง คาดว่าวิธีการขั้นตรงจะถูกนำมาใช้ที่นี่
- 2. BiDAF: โมเดลการอ่านเพื่อความเข้าใจของเครื่องพร้อมกลไกการไหลของความสนใจแบบสองทิศทาง
- 3. DocQA: โมเดลดั้งเดิม
- 4. Match_LSTM: โมเดลดั้งเดิม โครงสร้าง rnn อย่างง่าย
- 5. QANet: มันเป็นโมเดลที่ค่อนข้างดั้งเดิม แต่โมเดลนี้เป็นโมเดล mrc แรกที่ละทิ้งโครงสร้าง rnn
- 6. RNet: โมเดลดั้งเดิม
- 7. การเกิดซ้ำ-hotpot-baseline: เป็นครั้งแรกที่มีการสร้างปัญหาในการใช้โครงสร้าง rnn เพื่อจัดการกับการใช้เหตุผลแบบหลายฮอป ในชุดข้อมูล hotpotqa นอกเหนือจากการคาดการณ์ที่มีคำตอบแล้ว ยังมีการคาดการณ์ข้อเท็จจริงที่สนับสนุนอีกด้วย และการทำนายย่อหน้าที่เกี่ยวข้อง
- 8. albert_mrc: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ albert เพื่อทำงาน mrc
- 9. electra_bert: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ electra เพื่อทำงาน mrc
- 10. mrc_baseline: หากคุณกำลังทำงาน mrc ขอแนะนำให้อ่านโค้ดนี้ก่อน ซึ่งมีรายละเอียดต่างๆ ที่ mrc ให้ความสนใจ เช่น การประมวลผลข้อความแบบยาว (หน้าต่างแบบเลื่อน) การเรียงลำดับคำตอบ การฝึกอบรมฝ่ายตรงข้าม เป็นต้น
- 11. roberta_mrc: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ roberta เพื่อทำงาน mrc
- 12. Transformer+rnn+attention: โปรเจ็กต์นี้มีไว้เพื่อความเข้าใจในการอ่านแบบกำเนิด โดยใช้วิธี seq2seq โดยตรง ตัวเข้ารหัสใช้ตัวเข้ารหัสของหม้อแปลงไฟฟ้า และตัวถอดรหัสใช้โครงสร้าง gru และมีการเพิ่มเลเยอร์ของความสนใจธรรมดาไว้ตรงกลาง กลไก.
- 13. Transformer_reading: โครงการนี้ยังเกี่ยวกับความเข้าใจในการอ่านแบบกำเนิด โดยใช้โครงสร้างหม้อแปลงมาตรฐาน
- Slot_Filling
- 1. JointBert: เกี่ยวข้องกับการจำแนกประเภทเจตนาและการจำแนกช่อง ใช้ bert โดยตรงเพื่อเข้ารหัสอินพุตและใช้เวกเตอร์ "CLS" สำหรับการจำแนกประเภทเจตนา เวกเตอร์การเข้ารหัสขั้นสุดท้ายของแต่ละโทเค็นจะใช้สำหรับการจำแนกสล็อต
- ข้อความ_การจัดประเภท
- 1. DPCNN: เครือข่าย Convolutional แบบลึก + การเชื่อมต่อที่เหลือทำให้โมเดลนี้ดีกว่าโครงสร้าง CNN ก่อนหน้า และความซับซ้อนไม่สูง
- 2. FastBert: ใช้วิธีการกลั่นตัวเองเพื่อเร่งการใช้เหตุผลของโมเดล ส่วนใหญ่ใช้ในงานจำแนกประเภท
- 3. FastText: เสนอโดย Facebook ซึ่งเป็นรูปแบบการจัดหมวดหมู่ข้อความที่มีประสิทธิภาพ
- 4. XLNet: 1) เรียนรู้ข้อมูลตามบริบทแบบสองทิศทางโดยเพิ่มความเป็นไปได้ในการบันทึกลำดับการแยกตัวประกอบที่เป็นไปได้ทั้งหมด 2) ใช้คุณลักษณะของการถดถอยอัตโนมัติเพื่อเอาชนะข้อบกพร่องของ BERT นอกจากนี้ XLNet ยังรวมแนวคิดของ Transformer-XL รุ่น autoregressive ที่เหมาะสมที่สุดในปัจจุบันไว้ด้วย
- 5. all_layer_out_concat: อย่างที่คุณเห็นจากชื่อ โปรเจ็กต์นี้จะเข้ารหัสข้อความผ่านโมเดลสไตล์เบิร์ต จากนั้นนำเวกเตอร์ cls ของแต่ละเลเยอร์ออกมา คำนวณความสนใจ จากนั้นจึงดำเนินการจำแนกประเภท
- 6. bert+bceloss+average_checkpoint: โปรเจ็กต์นี้เปลี่ยนฟังก์ชันการสูญเสียของงานการจำแนกประเภทเป็น BCELoss นอกจากนี้ ค่าเฉลี่ยน้ำหนักที่เพิ่ม (จุดตรวจเฉลี่ยหลายจุด)
- 7. Capsule_text_classification: GRU+Capsule สำหรับการจำแนกข้อความ
- 8. longformer_classification: ใช้โมเดล longformer ที่ผ่านการฝึกอบรมมาแล้วสำหรับการจำแนกข้อความ สำหรับการจำแนกข้อความขนาดยาวคุณสามารถลองใช้โมเดลนี้
- 9. multi_label_classify_bert: ใช้โมเดล bert สำหรับการจำแนกประเภทหลายป้ายกำกับ ประกอบด้วยสามโมเดล: bert (model.py), การรวมเลเยอร์สองชั้นสุดท้ายของ bert (model2.py) และ bert+TextCNN (model3.py)
- 10. roberta_classification: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ roberta สำหรับการจัดประเภทข้อความ
- 11. Transformer_xl: ใช้ Transformer_xl โดยตรงสำหรับการจัดประเภทข้อความ สำหรับการจัดประเภทข้อความแบบยาว คุณสามารถลองใช้โมเดลนี้ได้
- 12. wobert+focal_loss: โมเดลก่อนการฝึกอบรมของ wobert จัดทำโดย Su Shen และการสูญเสียโฟกัสจะถูกเพิ่มในงานการจัดหมวดหมู่เพื่อแก้ปัญหาความไม่สมดุลของหมวดหมู่
- 13. TextCNN: รวบรวมข้อความในระดับต่างๆ แล้วต่อเข้าด้วยกันเพื่อจัดหมวดหมู่ข้อความ
- 14. BILSTM+Attention: เครือข่าย LSTM แบบสองทิศทางบวกกับความสนใจทั่วไปสำหรับการจำแนกข้อความ
- Text_การจัดกลุ่ม
- 1. การจัดกลุ่ม LDA
- 2.ดีบีเอสสแกน
- 3. กมน
- Text_Corrector
- 1. bert_for_correction: มันเป็นเพียงความพยายามง่ายๆ ฝึกใหม่ในคลังข้อมูลที่เกี่ยวข้อง ป้อนประโยคที่มีการพิมพ์ผิด จากนั้นจัดประเภทเวกเตอร์การเข้ารหัสของแต่ละโทเค็น
- Text_Generation
- 1. GPT2_SummaryGen: ใช้ GPT2 เพื่อสร้างข้อมูลสรุป
- 2. GPT2_TitleGen: การสร้างชื่อบทความ
- 3. Simple-GPT2: โมเดล GPT2 ที่นำไปใช้เอง
- ข้อความ_การจัดอันดับ
- 1. BM25: คำนวณค่า BM25 ของแบบสอบถามและข้อความทั้งหมดที่จะเรียงลำดับ จากนั้นเรียงลำดับตามค่านี้
- 2. DC_Bert_Ranking: ตึกแฝด + การโต้ตอบ ประการแรก การสืบค้นและบริบทจะถูกเข้ารหัสแยกกัน และน้ำหนักที่นี่จะไม่ถูกแชร์ จากนั้นการเข้ารหัสของการสืบค้นและบริบทจะถูกผสมกัน จากนั้นจึงส่งผ่านตัวเข้ารหัสหม้อแปลงแบบโต้ตอบหลายชั้น
- 3. DPR_Ranking: โมเดลการจัดอันดับข้อความของ Facebook
- 4. MT_Ranking: ใช้โมเดลสไตล์เบิร์ตสำหรับการเข้ารหัส จากนั้นใช้ cls เพื่อจัดหมวดหมู่ และจัดเรียงตามคะแนนของกลุ่มตัวอย่างที่เป็นบวก
- 5. ReRank: รวมถึงแบบจำลองการกลั่นด้วย
- ข้อความ_ความคล้ายคลึงกัน
- 1. ABCNN: ขั้นแรกทำการฝังคำในสองประโยค จากนั้นทำการรวมคำเพื่อให้ได้เวกเตอร์ของทั้งสองประโยค จากนั้นคำนวณความแตกต่างระหว่างเวกเตอร์ทั้งสอง และสุดท้ายทำการบิดเวกเตอร์ผลต่างในระดับที่ต่างกัน จากนั้นจึงแยกประเภท
- 2. BiMPM: โมเดลนี้แบ่งออกเป็นสี่ส่วน: การฝังคำ การเข้ารหัสบริบท (bilstm) การจับคู่สี่ประเภท และเลเยอร์การรวม
- 3. DecomposableAttention: สาระสำคัญของบทความนี้คือความสอดคล้องกันระหว่างคำต่างๆ การจัดตำแหน่งในบทความจะใช้ในสองตำแหน่ง ส่วนแรกคือส่วนเข้าร่วม ซึ่งใช้ในการคำนวณความสัมพันธ์ระหว่างสองประโยค และ อีกประการหนึ่งคือในส่วนการเปรียบเทียบ คำระหว่างสองประโยคจะถูกเปรียบเทียบ แต่ละการประมวลผลจะขึ้นอยู่กับคำ และสุดท้ายจะใช้โครงข่ายประสาทเทียมแบบฟีดฟอร์เวิร์ดเพื่อคาดการณ์ เห็นได้ชัดว่าแบบจำลองที่กล่าวถึงในบทความนี้ไม่ได้ใช้ความสัมพันธ์ชั่วคราวของคำในประโยค แต่เน้นความสอดคล้องระหว่างคำในสองประโยค (การจัดตำแหน่ง)
- 4. ESIM: เครื่องมือจับคู่ข้อความสั้น สิ่งที่ยอดเยี่ยมเกี่ยวกับ ESIM คือความสนใจระหว่างประโยค ซึ่งก็คือ soft_align_attention ในโค้ด ในขั้นตอนนี้ ทั้งสองประโยคที่จะเปรียบเทียบจะถูกโต้ตอบกัน ในโครงสร้างก่อนหน้านี้คล้ายกับเครือข่ายสยาม มักไม่มีการโต้ตอบตรงกลาง และพบเพียงระยะโคไซน์หรือระยะทางอื่นในชั้นสุดท้าย
- 5. RE2: ชื่อ RE2 มาจากการรวมกันของสามส่วนสำคัญของเครือข่าย: เวกเตอร์ที่เหลือ เวกเตอร์ที่เข้ารหัส
- 6. SiaGRU: โครงสร้างตึกแฝด ใช้ GRU เพื่อเข้ารหัสสองประโยคตามลำดับ จากนั้นคำนวณความแตกต่างระหว่างเวกเตอร์การเข้ารหัสสองประโยค และสุดท้ายใช้เวกเตอร์ความแตกต่างนี้ในการจำแนกประเภท
- 7. SimCSE: การเรียนรู้ที่ตรงกันข้าม ทักษะ: กลุ่มตัวอย่างต่างกัน การออกกลางคันต่างกัน
- 8. BM25: คำนวณค่า BM25 ของสองข้อความโดยตรง ซึ่งแสดงถึงระดับความคล้ายคลึงกัน
- 9. TF_IDF: คำนวณค่า TF_IDF ของสองข้อความโดยตรง ซึ่งแสดงถึงระดับความคล้ายคลึงกัน
- 10. NEZHA_Coattention: ใช้โครงสร้าง Twin Tower อินพุตสองประโยคในโมเดล NEZHA ตามลำดับ จากนั้นอินพุตจะแยกความแตกต่าง ประกบกับการแสดงดั้งเดิม จากนั้นจึงส่งไปยังเครือข่ายที่เชื่อมต่ออย่างสมบูรณ์เพื่อจำแนกประเภท มีอีกรูปแบบหนึ่ง นั่นคือ หลังจากได้รับการเป็นตัวแทนของทั้งสองประโยคแล้ว เราก็ใช้เลเยอร์ของตัวเข้ารหัสหม้อแปลงเพื่อหลอมรวมข้อมูลการเป็นตัวแทน และสุดท้ายก็จำแนกประเภทมัน
- 11. Bert_Whitening: วิธีการที่นำเสนอโดย Su Jianlin ไม่ต้องการการฝึกอบรม และรวมผลลัพธ์ของ Bert ของแต่ละประโยคโดยตรงให้เป็นมาตรฐานออร์โธนอร์มอล
- data_augmentation
- 1. eda: ใช้ชุดเครื่องมือ nlpcda สำหรับการเพิ่มข้อมูล เช่น: การแทนที่เอนทิตีที่เทียบเท่า, การแทนที่คำพ้องความหมายแบบสุ่ม, การลบอักขระแบบสุ่ม, การแลกเปลี่ยนตำแหน่ง, การแทนที่คำพ้องเสียง
- 2. การแปลด้านหลัง - Baidu: ใช้ Baidu Translate เพื่อแปลข้อความด้านหลัง
- 3. Back-translation-google: ใช้ Google Translate เพื่อแปลข้อความด้านหลัง
- ความสัมพันธ์_การแยก
- 1. lstm_cnn_information_extract: lstm+cnn
- 2. Relation_classification: การจำแนกความสัมพันธ์, bilstm+ความสนใจธรรมดา
NLP_pytorch_project
แชทบอท
1. Bert_chatbot: คล้ายกับ UniLM
- python train.py # รหัสการฝึกอบรม
- python infernece.py # การอนุมานแบบจำลอง
2. seq2seq_luong: ตัวเข้ารหัสเป็นเครือข่าย gru สองชั้น และตัวถอดรหัสเป็นเครือข่าย gru ชั้นเดียว ความสนใจของ Luong จะถูกเพิ่มระหว่างตัวเข้ารหัสและตัวถอดรหัส
- python train.py # รหัสการฝึกอบรม
- python inference.py # การอนุมานแบบจำลอง
3.transformer_chatbot : หม้อแปลงรุ่นมาตรฐาน
- python train.py # รหัสการฝึกอบรม
- python chat.py # ข้อมูลการฝึกอบรมที่สามารถใช้สำหรับการสนทนาคือเนื้อหาบทสนทนาของ Qingyun
การกลั่น
1. DynaBert: งานของ Huawei ใช้การตัดแต่งกิ่งเพื่อตัดโครงสร้างบางส่วนของเบิร์ตเป็นหลัก
- python train_teacher_model.py # ฝึกโมเดลครู
- python train_tailor_model.py # ตัดโมเดลครู
2. rnn_distill_bert: ใช้เลเยอร์ของเครือข่าย lstm เพื่อกลั่นแบบจำลอง bert และเพิ่มเฉพาะการสูญเสีย soft label เท่านั้น
- python train_bert.py # ฝึกครูรุ่นเบิร์ต
- python train_distill.py # การกลั่นใช้ lstm เพื่อเรียนรู้ผลลัพธ์ของเบิร์ต
3. three_layer_self-attention_to_distill_bert: คุณคงรู้ว่ามันหมายถึงอะไรโดยดูจากชื่อ มันแค่เขียนตัวเข้ารหัสของหม้อแปลงสามชั้น จากนั้นจึงกลั่นโมเดลเบิร์ต
- python train_bert.py # ฝึกครูรุ่นเบิร์ต
- python train_distill.py # การกลั่น
4. Tiny_bert: งานของ Huawei วิธีการกลั่นของ Tiny_bert คือการเพิ่มค่าเฉลี่ยการสูญเสียข้อผิดพลาดกำลังสองของชั้นกลาง นอกเหนือจากการสูญเสียฉลากแบบอ่อน
- python train.py # ฝึกครูรุ่นเบิร์ต
- หลาม train_distill_v2.py # การกลั่น
การฝัง
1.ข้ามกรัม-word2vec: ใช้ข้ามแกรมเพื่อรับเวกเตอร์คำ
- หลาม 001-skipgram-word2vec.py
2. เบิร์ต: ฝึกเบิร์ตโดยตรง ฝึกตั้งแต่ต้น หรือใช้รหัสนี้เพื่อฝึกใหม่
3. อัลเบิร์ต: ฝึกอัลเบิร์ตโดยตรงและฝึกตั้งแต่เริ่มต้น คุณยังสามารถใช้รหัสนี้เพื่อฝึกใหม่ได้
4. NPLM: แนวทางดั้งเดิม
เนอ
1. Bert_CRF_Ner: โมเดล Bert บวกฟิลด์สุ่มแบบมีเงื่อนไขสำหรับงานการติดป้ายกำกับลำดับ
- python run_ner_crf.py # การฝึกโมเดล
- python inference.py # การอนุมานแบบจำลอง
2. Bert_Softmax_Ner: ใช้โมเดล bert โดยตรงสำหรับคำอธิบายประกอบแบบลำดับ
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
3. BiLSTM_CRF_Ner: ใช้เครือข่าย lstm แบบสองทิศทางและ crf สำหรับงานการติดฉลากตามลำดับ
- python train.py # การฝึกอบรมโมเดล
นทท
1. GRU_attention: ตัวเข้ารหัสและตัวถอดรหัสเป็นทั้งเครือข่าย gru โดยมีกลไกความสนใจร่วมกัน (ผลรวมถ่วงน้ำหนักโดยตรง) ที่เพิ่มไว้ตรงกลาง
- python train.py # การฝึกอบรมโมเดล
2. Transformers_NMT: โครงสร้างหม้อแปลงมาตรฐานสำหรับการแปลด้วยเครื่อง
- python train.py # การฝึกอบรมโมเดล
Pretrain_รุ่น
1. bert-pretrain: หากต้องการฝึกโมเดล bert ใหม่ ขั้นแรกให้ดำเนินการประมวลผลข้อมูลล่วงหน้าผ่าน get_train_data.py รวมถึง 15% ของคำสำหรับมาสก์และการดำเนินการอื่นๆ จากนั้นจึงฝึก
- python get_train_data.py #การประมวลผลข้อมูลล่วงหน้า
- python run_pretrain.py # การฝึกอบรมใหม่
2. wobert-pretrain: โมเดลก่อนการฝึกของ wobert มอบให้โดย Su Shen สำหรับการฝึกใหม่ที่นี่ คุณสามารถเพิ่มรายการคำที่คุณสร้างขึ้นเอง จากนั้นแก้ไขวิธีการแบ่งส่วนคำของ bert
- python process_pretrain_data.py #การประมวลผลข้อมูลล่วงหน้า
- python run_pretrain.py # การฝึกอบรมใหม่
การอ่าน_ความเข้าใจ
1. BERT_MRC: ใช้ bert เพื่อทำงานเพื่อความเข้าใจในการอ่านของเครื่อง คาดว่าวิธีการขั้นตรงจะถูกนำมาใช้ที่นี่
- python train.py # การฝึกอบรมโมเดล
2. BiDAF: โมเดลการอ่านเพื่อความเข้าใจของเครื่องพร้อมกลไกการไหลของความสนใจแบบสองทิศทาง
- python data_process.py # ก่อนอื่นให้ประมวลผลข้อมูลล่วงหน้า
- python train_bidaf.py # การฝึกอบรมแบบจำลอง
3. DocQA: โมเดลดั้งเดิม
- python data_process.py # ก่อนอื่นให้ประมวลผลข้อมูลล่วงหน้า
- python train_DocQA.py # การฝึกอบรมแบบจำลอง
4. Match_LSTM: โมเดลดั้งเดิม โครงสร้าง rnn อย่างง่าย
- python data_process.py # ก่อนอื่นให้ประมวลผลข้อมูลล่วงหน้า
- python train_Match_Lstm.py # การฝึกอบรมโมเดล
5. QANet: มันเป็นโมเดลที่ค่อนข้างดั้งเดิม แต่โมเดลนี้เป็นโมเดล mrc แรกที่ละทิ้งโครงสร้าง rnn
- python data_process.py #การประมวลผลข้อมูลล่วงหน้า
- python train.py # การฝึกอบรมโมเดล
6. RNet: โมเดลดั้งเดิม
- python data_process.py #การประมวลผลข้อมูลล่วงหน้า
- python train_RNet.py # การฝึกอบรมโมเดล
7. การเกิดซ้ำ-hotpot-baseline: เป็นครั้งแรกที่มีการสร้างปัญหาในการใช้โครงสร้าง rnn เพื่อจัดการกับการใช้เหตุผลแบบหลายฮอป ในชุดข้อมูล hotpotqa นอกเหนือจากการคาดการณ์ที่มีคำตอบแล้ว ยังมีการคาดการณ์ข้อเท็จจริงที่สนับสนุนอีกด้วย และการทำนายย่อหน้าที่เกี่ยวข้อง
- python data_process.py #การประมวลผลข้อมูลล่วงหน้า
- python train.py # การฝึกอบรมโมเดล
8. albert_mrc: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ albert เพื่อทำงาน mrc
- python train_update.py # โมเดลการฝึกอบรม
- python inference.py #การอนุมานข้อมูลชิ้นเดียว
- python inference_all.py #การอนุมานสำหรับข้อมูลทั้งหมด
9. electra_bert: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ electra เพื่อทำงาน mrc
- python run_cail.py #โมเดลการฝึกอบรม
- หลามประเมิน.py # การประเมินแบบจำลอง
10. mrc_baseline: หากคุณกำลังทำงาน mrc ขอแนะนำให้อ่านโค้ดนี้ก่อน ซึ่งมีรายละเอียดต่างๆ ที่ mrc ให้ความสนใจ เช่น การประมวลผลข้อความแบบยาว (หน้าต่างแบบเลื่อน) การเรียงลำดับคำตอบ การฝึกอบรมฝ่ายตรงข้าม เป็นต้น
- python train.py #โมเดลรถไฟ
11. roberta_mrc: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ roberta เพื่อทำงาน mrc
- python train.py #โมเดลรถไฟ
12. Transformer+rnn+attention: โปรเจ็กต์นี้มีไว้เพื่อความเข้าใจในการอ่านแบบกำเนิด โดยใช้วิธี seq2seq โดยตรง ตัวเข้ารหัสใช้ตัวเข้ารหัสของหม้อแปลงไฟฟ้า และตัวถอดรหัสใช้โครงสร้าง gru และมีการเพิ่มเลเยอร์ของความสนใจธรรมดาไว้ตรงกลาง กลไก.
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
13. Transformer_reading: โครงการนี้ยังเกี่ยวกับความเข้าใจในการอ่านแบบกำเนิด โดยใช้โครงสร้างหม้อแปลงมาตรฐาน
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
Slot_Filling
1. JointBert: เกี่ยวข้องกับการจำแนกประเภทเจตนาและการจำแนกช่อง ใช้ bert โดยตรงเพื่อเข้ารหัสอินพุตและใช้เวกเตอร์ "CLS" สำหรับการจำแนกประเภทเจตนา เวกเตอร์การเข้ารหัสขั้นสุดท้ายของแต่ละโทเค็นจะใช้สำหรับการจำแนกสล็อต
- python train.py # การฝึกโมเดล
ข้อความ_การจัดประเภท
1. DPCNN: เครือข่าย Convolutional แบบลึก + การเชื่อมต่อที่เหลือทำให้โมเดลนี้ดีกว่าโครงสร้าง CNN ก่อนหน้า และความซับซ้อนไม่สูง
- python get_data_to_examples.py # ข้อมูลประมวลผลล่วงหน้า
- python examples_to_features.py # แปลงตัวอย่างที่เกี่ยวข้องให้เป็นคุณสมบัติ
- python train.py # การฝึกอบรมโมเดล
2. FastBert: ใช้วิธีการกลั่นตัวเองเพื่อเร่งการใช้เหตุผลของแบบจำลอง ส่วนใหญ่ใช้ในงานจำแนกประเภท
- sh train_stage0.sh # ฝึกครูโมเดล เบิร์ต
- sh train_stage1.sh # การกลั่นตัวเอง
- sh infer_sigle.sh # ตัวอย่างเดียวการอนุมานแบบปรับได้
3. FastText: เสนอโดย Facebook ซึ่งเป็นรูปแบบการจัดหมวดหมู่ข้อความที่มีประสิทธิภาพ
- หลาม step1_get_data_to_examples.py # รับข้อมูล
- python step2_examples_to_features.py # แปลงข้อมูลข้อความเป็นลำดับรหัส
- python train.py # การฝึกอบรมโมเดล
4. XLNet: 1) เรียนรู้ข้อมูลตามบริบทแบบสองทิศทางโดยเพิ่มความเป็นไปได้ในการบันทึกลำดับการแยกตัวประกอบที่เป็นไปได้ทั้งหมด 2) ใช้คุณลักษณะของการถดถอยอัตโนมัติเพื่อเอาชนะข้อบกพร่องของ BERT นอกจากนี้ XLNet ยังรวมแนวคิดของ Transformer-XL รุ่น autoregressive ที่เหมาะสมที่สุดในปัจจุบันไว้ด้วย
- python train.py # การฝึกอบรมโมเดล
5. all_layer_out_concat: อย่างที่คุณเห็นจากชื่อ โปรเจ็กต์นี้จะเข้ารหัสข้อความผ่านโมเดลสไตล์เบิร์ต จากนั้นนำเวกเตอร์ cls ของแต่ละเลเยอร์ออกมา คำนวณความสนใจ จากนั้นจึงดำเนินการจำแนกประเภท
- python train.py # การฝึกอบรมโมเดล
- Python inference.py # การอนุมานโมเดล
6. bert+bceloss+average_checkpoint: โปรเจ็กต์นี้เปลี่ยนฟังก์ชันการสูญเสียของงานการจำแนกประเภทเป็น BCELoss นอกจากนี้ ค่าเฉลี่ยน้ำหนักที่เพิ่ม (จุดตรวจเฉลี่ยหลายจุด)
- python run_classify.py # การฝึกโมเดล
- python run_average_checkpoints.py # น้ำหนักเฉลี่ย
7. Capsule_text_classification: GRU+Capsule สำหรับการจำแนกข้อความ
- python train.py # การฝึกอบรมโมเดล
8. longformer_classification: ใช้โมเดล longformer ที่ผ่านการฝึกอบรมมาแล้วสำหรับการจำแนกข้อความ สำหรับการจำแนกข้อความขนาดยาวคุณสามารถลองใช้โมเดลนี้
- python train.py # การฝึกอบรมโมเดล
9. multi_label_classify_bert: ใช้โมเดล bert สำหรับการจำแนกประเภทหลายป้ายกำกับ ประกอบด้วยสามโมเดล: bert (model.py), การรวมเลเยอร์สองชั้นสุดท้ายของ bert (model2.py) และ bert+TextCNN (model3.py)
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การทำนายโมเดล
10. roberta_classification: ใช้โมเดลที่ได้รับการฝึกอบรมล่วงหน้าของ roberta สำหรับการจัดประเภทข้อความ
- python train.py # การฝึกอบรมโมเดล
11. Transformer_xl: ใช้ Transformer_xl โดยตรงสำหรับการจัดประเภทข้อความ สำหรับการจัดประเภทข้อความแบบยาว คุณสามารถลองใช้โมเดลนี้ได้
- python train.py # การฝึกอบรมโมเดล
12. wobert+focal_loss: โมเดลก่อนการฝึกอบรมของ wobert จัดทำโดย Su Shen และการสูญเสียโฟกัสจะถูกเพิ่มในงานการจัดหมวดหมู่เพื่อแก้ปัญหาความไม่สมดุลของหมวดหมู่
- python run_classify.py # การฝึกโมเดล
13. TextCNN: รวบรวมข้อความในระดับต่างๆ แล้วต่อเข้าด้วยกันเพื่อจัดหมวดหมู่ข้อความ
- python 001-TextCNN.py # การฝึกอบรมแบบจำลอง
14. BILSTM+Attention: เครือข่าย LSTM แบบสองทิศทางบวกกับความสนใจทั่วไปสำหรับการจำแนกข้อความ
- python 002-BILSTM+Attention.py # การฝึกอบรมแบบจำลอง
Text_การจัดกลุ่ม
1. การจัดกลุ่ม LDA
- หลาม train_LDA_cluster.py # การทำคลัสเตอร์
2.ดีบีเอสสแกน
- python train_dbscan_cluster.py # การทำคลัสเตอร์
3. กมน
- python train_kmeans_cluster.py # การทำคลัสเตอร์
Text_Corrector
1. bert_for_correction: มันเป็นเพียงความพยายามง่ายๆ ฝึกใหม่ในคลังข้อมูลที่เกี่ยวข้อง ป้อนประโยคที่มีการพิมพ์ผิด จากนั้นจัดประเภทเวกเตอร์การเข้ารหัสของแต่ละโทเค็น
- python run_pretrain_bert.py #การฝึกอบรมใหม่
- bert_corrector.py # แก้ไขข้อผิดพลาด
Text_Generation
1. GPT2_SummaryGen: ใช้ GPT2 เพื่อสร้างข้อมูลสรุป
- python train.py # การฝึกอบรมโมเดล
- python inferface.py # การอนุมานแบบจำลอง
2. GPT2_TitleGen: การสร้างชื่อบทความ
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
3. Simple-GPT2: โมเดล GPT2 ที่นำไปใช้เอง
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
ข้อความ_การจัดอันดับ
1. BM25: คำนวณค่า BM25 ของแบบสอบถามและข้อความทั้งหมดที่จะเรียงลำดับ จากนั้นเรียงลำดับตามค่านี้
- หลาม main.py # เรียงลำดับ
2. DC_Bert_Ranking: ตึกแฝด + การโต้ตอบ ประการแรก การสืบค้นและบริบทจะถูกเข้ารหัสแยกกัน และน้ำหนักที่นี่จะไม่ถูกแชร์ จากนั้นการเข้ารหัสของการสืบค้นและบริบทจะถูกผสมกัน จากนั้นจึงส่งผ่านตัวเข้ารหัสหม้อแปลงแบบโต้ตอบหลายชั้น
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
3. DPR_Ranking: โมเดลการจัดอันดับข้อความของ Facebook
- python train.py # การฝึกอบรมโมเดล
4. MT_Ranking: ใช้โมเดลสไตล์เบิร์ตสำหรับการเข้ารหัส จากนั้นใช้ cls เพื่อจัดหมวดหมู่ และจัดเรียงตามคะแนนของกลุ่มตัวอย่างที่เป็นบวก
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
5. ReRank: รวมถึงแบบจำลองการกลั่นด้วย
- python train.py # การฝึกอบรมโมเดล
- python train_distill.py # การกลั่นแบบจำลอง
ข้อความ_ความคล้ายคลึงกัน
1. ABCNN: ขั้นแรกทำการฝังคำในสองประโยค จากนั้นทำการรวมคำเพื่อให้ได้เวกเตอร์ของทั้งสองประโยค จากนั้นคำนวณความแตกต่างระหว่างเวกเตอร์ทั้งสอง และสุดท้ายทำการบิดเวกเตอร์ผลต่างในระดับที่ต่างกัน จากนั้นจึงแยกประเภท
- python train.py # การฝึกอบรมโมเดล
2. BiMPM: โมเดลนี้แบ่งออกเป็นสี่ส่วน: การฝังคำ การเข้ารหัสบริบท (bilstm) การจับคู่สี่ประเภท และเลเยอร์การรวม
- python train.py # การฝึกอบรมโมเดล
3. DecomposableAttention: สาระสำคัญของบทความนี้คือความสอดคล้องกันระหว่างคำต่างๆ การจัดตำแหน่งในบทความจะใช้ในสองตำแหน่ง ส่วนแรกคือส่วนเข้าร่วม ซึ่งใช้ในการคำนวณความสัมพันธ์ระหว่างสองประโยค และ อีกประการหนึ่งคือ ในส่วนการเปรียบเทียบ คำระหว่างสองประโยคจะถูกเปรียบเทียบ แต่ละการประมวลผลจะขึ้นอยู่กับคำ และสุดท้าย โครงข่ายประสาทเทียมแบบฟีดฟอร์เวิร์ดจะถูกใช้เพื่อทำการคาดการณ์ เห็นได้ชัดว่าแบบจำลองที่กล่าวถึงในบทความนี้ไม่ได้ใช้ความสัมพันธ์ชั่วคราวของคำในประโยค แต่เน้นความสอดคล้องระหว่างคำในสองประโยค (การจัดตำแหน่ง)
- python train.py # การฝึกอบรมโมเดล
4. ESIM: เครื่องมือจับคู่ข้อความสั้น สิ่งที่ยอดเยี่ยมเกี่ยวกับ ESIM คือความสนใจระหว่างประโยค ซึ่งก็คือ soft_align_attention ในโค้ด ในขั้นตอนนี้ ทั้งสองประโยคที่จะเปรียบเทียบจะถูกโต้ตอบกัน ในโครงสร้างก่อนหน้านี้คล้ายกับเครือข่ายสยาม มักไม่มีการโต้ตอบตรงกลาง และพบเพียงระยะโคไซน์หรือระยะทางอื่นในชั้นสุดท้าย
- python train.py # การฝึกอบรมโมเดล
5. RE2: ชื่อ RE2 มาจากการรวมกันของสามส่วนสำคัญของเครือข่าย: เวกเตอร์ที่เหลือ เวกเตอร์ที่เข้ารหัส
- python train.py # การฝึกอบรมโมเดล
6. SiaGRU: โครงสร้างตึกแฝด ใช้ GRU เพื่อเข้ารหัสสองประโยคตามลำดับ จากนั้นคำนวณความแตกต่างระหว่างเวกเตอร์การเข้ารหัสสองประโยค และสุดท้ายใช้เวกเตอร์ความแตกต่างนี้ในการจำแนกประเภท
- python train.py # การฝึกอบรมโมเดล
7. SimCSE: การเรียนรู้ที่ตรงกันข้าม ทักษะ: กลุ่มตัวอย่างต่างกัน การออกกลางคันต่างกัน
- python train.py # การฝึกอบรมโมเดล
8. BM25: คำนวณค่า BM25 ของสองข้อความโดยตรง ซึ่งแสดงถึงระดับความคล้ายคลึงกัน
9. TF_IDF: คำนวณค่า TF_IDF ของสองข้อความโดยตรง ซึ่งแสดงถึงระดับความคล้ายคลึงกัน
10. NEZHA_Coattention: ใช้โครงสร้าง Twin Tower อินพุตสองประโยคในโมเดล NEZHA ตามลำดับ จากนั้นอินพุตจะแยกความแตกต่าง ประกบกับการแสดงดั้งเดิม จากนั้นจึงส่งไปยังเครือข่ายที่เชื่อมต่ออย่างสมบูรณ์เพื่อจำแนกประเภท มีอีกรูปแบบหนึ่ง นั่นคือ หลังจากได้รับการเป็นตัวแทนของทั้งสองประโยคแล้ว เราก็ใช้เลเยอร์ของตัวเข้ารหัสหม้อแปลงเพื่อหลอมรวมข้อมูลการเป็นตัวแทน และสุดท้ายก็แยกประเภทมัน
11. Bert_Whitening: วิธีการที่นำเสนอโดย Su Jianlin ไม่ต้องการการฝึกอบรม และรวมผลลัพธ์ของ Bert ของแต่ละประโยคโดยตรงให้เป็นพื้นฐานออร์โธนอร์มอลมาตรฐาน
- python run_bert_whitening.py # ตรวจสอบชุดข้อมูลโดยตรงและคำนวณค่าสัมประสิทธิ์ Spearman
data_augmentation
1. eda: ใช้ชุดเครื่องมือ nlpcda สำหรับการเพิ่มข้อมูล เช่น: การแทนที่เอนทิตีที่เทียบเท่า, การแทนที่คำพ้องความหมายแบบสุ่ม, การลบอักขระแบบสุ่ม, การแลกเปลี่ยนตำแหน่ง, การแทนที่คำพ้องเสียง
2. การแปลด้านหลัง - Baidu: ใช้ Baidu Translate เพื่อแปลข้อความด้านหลัง
- หลาม 002-run_contrslate_data_aug.py
3. Back-translation-google: ใช้ Google Translate เพื่อแปลข้อความด้านหลัง
- หลาม 003-google_trans_data_aug.py
ความสัมพันธ์_การแยก
1. lstm_cnn_information_extract: lstm+cnn
- python train.py # การฝึกอบรมโมเดล
- python inference.py # การอนุมานแบบจำลอง
2. Relation_classification: การจำแนกความสัมพันธ์, bilstm+ความสนใจธรรมดา
- python data_helper.py #การประมวลผลข้อมูลล่วงหน้า
- python train.py # การฝึกอบรมโมเดล
ประวัติดารา