การจำแนกข้อความภาษาจีนขึ้นอยู่กับ Pytorch และมีให้บริการนอกกรอบ
โมเดลเครือข่ายประสาท: Textcnn, Textrnn, Fasttext, Textrcnn, Bilstm_attention, DPCNN, หม้อแปลงหม้อแปลง
โมเดลที่ผ่านการฝึกอบรมมาก่อน: เบิร์ต, เออร์นี่
การแนะนำแบบจำลองกระบวนการไหลของข้อมูล: การอ้างอิง
ข้อมูลถูกป้อนเข้าสู่โมเดลในหน่วยของคำและเวกเตอร์คำที่ผ่านการฝึกอบรมมาก่อนใช้คำข่าว SOGOU+อักขระ 300D คลิกที่นี่เพื่อดาวน์โหลด
| แบบอย่าง | แนะนำ |
|---|---|
| ข้อความ | การจำแนกข้อความ CNN คลาสสิก 2014 คลาสสิก |
| textrnn | bilstm |
| textrnn_att | bilstm+ความสนใจ |
| textrcnn | bilstm+การรวม |
| Fastext | Bow+Bigram+Trigram เอฟเฟกต์นั้นดีอย่างน่าประหลาดใจ |
| DPCNN | พีระมิดลึก CNN |
| หม้อแปลงไฟฟ้า | ผลลัพธ์ที่ไม่ดี |
| แบบอย่าง | แนะนำ | คำพูด |
|---|---|---|
| เบิร์ต | เบิร์ตดั้งเดิม | |
| เออร์นี่ | เออร์นี่ | |
| bert_cnn | ในฐานะที่เป็นเลเยอร์การฝังเบิร์ตเชื่อมต่อกับซีเอ็นเอ็นของเมล็ดพันธุ์สามตัว | bert + cnn |
| bert_rnn | เบิร์ตเป็นเลเยอร์การฝังการเข้าถึง LSTM | bert + rnn |
| bert_rcnn | ในฐานะที่เป็นเลเยอร์ฝังตัวเบิร์ตจะถูกประกบกับเอาต์พุต Bert ผ่าน LSTM และผ่านเลเยอร์การรวมตัวสูงสุด | bert + rcnn |
| bert_dpcnn | ในขณะที่เลเยอร์ฝังตัวเบิร์ตจะผ่านชั้นการฝังชั้นที่มีตัวแยกฟีเจอร์ที่แตกต่างกันสามตัวซึ่งถือได้ว่าเป็นการฝังเอาท์พุทและจากนั้นผ่านการโน้มน้าวความยาวเท่ากันของสองชั้นเพื่อให้ดวงตาประสาทสัมผัสที่กว้างขึ้น การรวม 1/2 จะช่วยปรับปรุงความหมายของตำแหน่งคำอย่างต่อเนื่องและการแก้ไข feature_maps ได้รับการแก้ไข การแนะนำเครือข่ายที่เหลือคือการแก้ปัญหาการหายตัวไปของการไล่ระดับสีและการระเบิดในระหว่างกระบวนการฝึกอบรม | bert + dpcnn |
อ้างถึง:
Python 3.7
Pytorch 1.1
TQDM
Sklearn
tensorboardx pytorch_pretrained_bert (รหัสการฝึกอบรมก่อนได้รับการอัปโหลดและไม่จำเป็นต้องใช้ไลบรารีนี้)
ฉันวาดชื่อข่าว 200,000 รายการจาก Thucnews อัปโหลดไปยัง GitHub โดยมีความยาวข้อความระหว่าง 20 และ 30 มี 10 หมวดหมู่ทั้งหมดโดยมี 20,000 รายการในแต่ละหมวดหมู่ ข้อมูลถูกป้อนลงในโมเดลเป็นคำ
หมวดหมู่: การเงิน, อสังหาริมทรัพย์, หุ้น, การศึกษา, วิทยาศาสตร์และเทคโนโลยี, สังคม, สถานการณ์ปัจจุบัน, กีฬา, เกม, ความบันเทิง
แผนกชุดข้อมูล:
| ชุดข้อมูล | ปริมาณข้อมูล |
|---|---|
| ชุดฝึกอบรม | 180,000 |
| ชุดตรวจสอบ | 10,000 |
| ชุดทดสอบ | 10,000 |
python run.py --model TextCNN --word Trueเครื่องจักร: หนึ่งชิ้นของ 2080Ti เวลาฝึกอบรม: 30 นาที
| แบบอย่าง | ACC | คำพูด |
|---|---|---|
| ข้อความ | 91.22% | การจำแนกข้อความ CNN คลาสสิก 2014 คลาสสิก |
| textrnn | 91.12% | bilstm |
| textrnn_att | 90.90% | bilstm+ความสนใจ |
| textrcnn | 91.54% | bilstm+การรวม |
| Fastext | 92.23% | Bow+Bigram+Trigram เอฟเฟกต์นั้นดีอย่างน่าประหลาดใจ |
| DPCNN | 91.25% | พีระมิดลึก CNN |
| หม้อแปลงไฟฟ้า | 89.91% | ผลลัพธ์ที่ไม่ดี |
| เบิร์ต | 94.83% | เบิร์ตง่ายๆ |
| เออร์นี่ | 94.61% | เบิร์ตบดขยี้จีนสัญญาคืออะไร |
| bert_cnn | 94.44% | bert + cnn |
| bert_rnn | 94.57% | bert + rnn |
| bert_rcnn | 94.51% | bert + rcnn |
| bert_dpcnn | 94.47% | bert + dpcnn |
เอฟเฟกต์เบิร์ตดั้งเดิมดีมาก หากคุณใช้เบิร์ตเป็นเลเยอร์การฝังและส่งไปยังรุ่นอื่น ๆ เอฟเฟกต์จะลดลง ในภายหลังคุณจะพยายามเปรียบเทียบเอฟเฟกต์ของข้อความยาว
แบบจำลอง Bert ถูกวางไว้ในไดเรกทอรี bert_pretain และแบบจำลอง Ernie ถูกวางไว้ในไดเรกทอรี Ernie_Pretrain แต่ละไดเรกทอรีมีสามไฟล์:
ที่อยู่ดาวน์โหลดรุ่นที่ผ่านการฝึกอบรมมาก่อน:
bert_chinese: รุ่น https://s3.amazonaws.com/models.huggingface.co/bert/bert/Bert-Base-chinese.tar.gz
คำศัพท์ https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-chinese-vocab.txt
จากที่นี่
ทางเลือก: ที่อยู่ดิสก์เครือข่ายของรุ่น: https://pan.baidu.com/s/1qsad5gwclq7xlgzl_4w3pw
ernie_chinese: https://pan.baidu.com/s/1lepddn1-yqjmked_g9rlgw
จากที่นี่
หลังจากการบีบอัดให้ใส่ไว้ในไดเรกทอรีที่เกี่ยวข้องตามที่กล่าวไว้ข้างต้นและยืนยันว่าชื่อไฟล์นั้นถูกต้อง
# 训练并测试:
# TextCNN
python run.py --model TextCNN
# TextRNN
python run.py --model TextRNN
# TextRNN_Att
python run.py --model TextRNN_Att
# TextRCNN
python run.py --model TextRCNN
# FastText, embedding层是随机初始化的
python run.py --model FastText --embedding random
# DPCNN
python run.py --model DPCNN
# Transformer
python run.py --model Transformer
ดาวน์โหลดโมเดลที่ผ่านการฝึกอบรมมาก่อนและเรียกใช้:
# 预训练模型训练并测试:
# bert
python pretrain_run.py --model bert
# bert + 其它
python pretrain_run.py --model bert_CNN
# ERNIE
python pretrain_run.py --model ERNIE
รุ่นที่ผ่านการฝึกอบรมมาก่อน:
python pretrain_predict.py
โมเดลเครือข่ายประสาท:
python predict.py
แบบจำลองทั้งหมดอยู่ในไดเรกทอรีโมเดลและคำจำกัดความของไฮเปอร์พารามิเตอร์และคำจำกัดความของโมเดลอยู่ในไฟล์เดียวกัน
[1] เครือข่ายประสาท Convolutional สำหรับการจำแนกประโยค
[2] เครือข่ายประสาทที่เกิดขึ้นซ้ำสำหรับการจำแนกข้อความด้วยการเรียนรู้แบบหลายงาน
[3] เครือข่ายหน่วยความจำระยะสั้นระยะยาวแบบสองทิศทางสำหรับการจำแนกประเภทความสัมพันธ์
[4] เครือข่ายประสาทเทียมที่เกิดขึ้นอีกสำหรับการจำแนกประเภทข้อความ
[5] กระเป๋าของเทคนิคสำหรับการจำแนกข้อความที่มีประสิทธิภาพ
[6] เครือข่ายประสาทพีระมิดลึกสำหรับการจัดหมวดหมู่ข้อความ
[7] ความสนใจคือสิ่งที่คุณต้องการ
[8] เบิร์ต: การฝึกอบรมหม้อแปลงสองทิศทางลึกเพื่อทำความเข้าใจภาษา
[9] Ernie: การเป็นตัวแทนที่ได้รับการปรับปรุงผ่านการบูรณาการความรู้
โครงการนี้ยังคงพัฒนาและเพิ่มประสิทธิภาพตามคลังสินค้าต่อไปนี้: