تصنيف النص الصيني ، استنادًا إلى Pytorch ، وهو متاح خارج الصندوق.
نماذج الشبكة العصبية: TextCnn ، Textrnn ، FastText ، Textrcnn ، Bilstm_attention ، DPCNN ، Transformer
نموذج تدريب مسبقًا: بيرت ، إرني
مقدمة النموذج ، عملية تدفق البيانات: المرجع
يتم إدخال البيانات في النموذج في وحدات الكلمات ، ويستخدم ناقل الكلمات المدربين مسبقًا Sogou News Word+حرف 300D ، انقر هنا للتنزيل
| نموذج | يقدم |
|---|---|
| TextCnn | كيم 2014 تصنيف النص CNN الكلاسيكي |
| Textrnn | bilstm |
| Textrnn_att | BILSTM+الانتباه |
| Textrcnn | BILSTM+تجميع |
| fasttext | Bow+Bigram+Trigram ، التأثير جيد بشكل مدهش |
| DPCNN | الهرم العميق CNN |
| محول | نتائج سيئة |
| نموذج | يقدم | ملاحظة |
|---|---|---|
| بيرت | بيرت الأصلي | |
| إرني | إرني | |
| BERT_CNN | كطبقة التضمين ، يتصل Bert بـ CNN من ثلاث نواة في الالتواء. | بيرت + سي إن إن |
| BERT_RNN | بيرت كطبقة التضمين ، والوصول إلى LSTM | بيرت + rnn |
| Bert_rcnn | نظرًا لأن طبقة التضمين ، يتم تقسيم Bert بإخراج BERT من خلال LSTM ويمر عبر طبقة تجميع أقصى. | بيرت + rcnn |
| BERT_DPCNN | نظرًا لأن طبقة التضمين ، تمر Bert عبر منطقة تضمين طبقة تحتوي على ثلاثة مستخلصات مختلفة لخصائص الالتفاف ، والتي يمكن اعتبارها تضمين الإخراج ، ثم من خلال الالتفاف المتساوي لطبقتين لتوفير عين حسية أوسع لاستخراج الميزة اللاحقة (تحسين ثراء التواء) بشكل متكرر. يعمل تجميع 1/2 على تحسين دلالات وضع الكلمة بشكل مستمر ، ويتم إصلاح deftern_maps. يتمثل إدخال الشبكة المتبقية في حل مشاكل اختفاء التدرج وانفجار التدرج أثناء عملية التدريب. | Bert + DPCNN |
الرجوع إلى:
بيثون 3.7
Pytorch 1.1
TQDM
Sklearn
Tensorboardx pytorch_pretrained_bert (تم تحميل رمز ما قبل التدريب أيضًا ، ولم تكن هناك حاجة إلى هذه المكتبة)
لقد رسمت 200000 عنوان أخبار من Thucnews ، تم تحميلها على Github ، مع أطوال نص تتراوح بين 20 و 30. هناك 10 فئات في المجموع ، مع 20.000 عنصر في كل فئة. يتم إدخال البيانات في النموذج بالكلمات.
الفئة: التمويل ، العقارات ، الأسهم ، التعليم ، العلوم والتكنولوجيا ، المجتمع ، الشؤون الحالية ، الرياضة ، الألعاب ، الترفيه.
قسم مجموعة البيانات:
| مجموعة البيانات | حجم البيانات |
|---|---|
| مجموعة التدريب | 180،000 |
| مجموعة التحقق | 10000 |
| مجموعة الاختبار | 10000 |
python run.py --model TextCNN --word Trueالآلة: قطعة واحدة من 2080TI ، وقت التدريب: 30 دقيقة.
| نموذج | ACC | ملاحظة |
|---|---|---|
| TextCnn | 91.22 ٪ | كيم 2014 تصنيف النص CNN الكلاسيكي |
| Textrnn | 91.12 ٪ | bilstm |
| Textrnn_att | 90.90 ٪ | BILSTM+الانتباه |
| Textrcnn | 91.54 ٪ | BILSTM+تجميع |
| fasttext | 92.23 ٪ | Bow+Bigram+Trigram ، التأثير جيد بشكل مدهش |
| DPCNN | 91.25 ٪ | الهرم العميق CNN |
| محول | 89.91 ٪ | نتائج سيئة |
| بيرت | 94.83 ٪ | بيرت بسيط |
| إرني | 94.61 ٪ | ما هو بيرت الصيني الموعود |
| BERT_CNN | 94.44 ٪ | بيرت + سي إن إن |
| BERT_RNN | 94.57 ٪ | بيرت + rnn |
| Bert_rcnn | 94.51 ٪ | بيرت + rcnn |
| BERT_DPCNN | 94.47 ٪ | Bert + DPCNN |
تأثير بيرت الأصلي جيد جدًا. إذا كنت تستخدم BERT كطبقة تضمين وأرسلتها إلى نماذج أخرى ، فسيتم تقليل التأثير. في وقت لاحق ، ستحاول مقارنة تأثير النص الطويل.
يتم وضع نموذج BERT في دليل BERT_PRETAIN ، ويتم وضع نموذج ERNIE في دليل ERNIE_PREREAR. يحتوي كل دليل على ثلاثة ملفات:
عنوان تنزيل النموذج الذي تم تدريبه مسبقًا:
Bert_Chinese: Model https://s3.amazonaws.com/models.huggingface.co/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
جميع النماذج موجودة في دليل النماذج ، وتعريف Hyperparameter وتعريف النموذج في نفس الملف.
[1] الشبكات العصبية التلافيفية لتصنيف الجملة
[2] شبكة عصبية متكررة لتصنيف النص مع التعلم متعدد المهام
[3] شبكات الذاكرة طويلة المدى الطويلة على المدى الطويل القائم على الانتباه لتصنيف العلاقة
[4] شبكات عصبية تلافيفية متكررة لتصنيف النص
[5] حقيبة من الحيل لتصنيف النص الفعال
[6] الشبكات العصبية العميقة الهرمية لتصنيف النص
[7] الاهتمام هو كل ما تحتاجه
[8] بيرت: ما قبل التدريب من محولات ثنائية الاتجاه العميقة لفهم اللغة
[9] إرني: التمثيل المحسن من خلال تكامل المعرفة
يستمر هذا المشروع في التطور والتحسين بناءً على المستودعات التالية: