
تحظى نماذج وضع العلامات التسلسل بشعبية كبيرة في العديد من مهام NLP ، مثل التعرف على الكيان المسماة (NER) ، وعلامات جزء من الكلام (POS) وتجزئة الكلمات. تستخدم نماذج وضع العلامات المتسلسلة الحديثة في الغالب بنية CRF مع ميزات كلمة الإدخال. LSTM (أو LSTM ثنائية الاتجاه) هو مستخرج ميزة تعليمي عميق شهير في مهمة وضع العلامات التسلسل. ويمكن أيضا أن تستخدم CNN بسبب الحساب الأسرع. علاوة على ذلك ، تعد الميزات داخل Word مفيدة أيضًا لتمثيل Word ، والتي يمكن التقاطها بواسطة LSTM للحرف أو هيكل CNN الحرف أو الميزات العصبية المعرفة من قبل الإنسان.
NCRF ++ هو إطار قائم على Pytorch مع خيارات مرنة من ميزات الإدخال وهياكل الإخراج. إن تصميم نماذج وضع العلامات التسلسلية العصبية مع NCRF ++ قابلة للتكوين بالكامل من خلال ملف التكوين ، والذي لا يتطلب أي عمل رمز. يمكن اعتبار NCRF ++ إصدار شبكة عصبية من CRF ++ ، وهو إطار CRF إحصائي مشهور.
تم قبول هذا الإطار من قبل ACL 2018 كورقة مظاهرة. وقد تم قبول تقرير التجربة التفصيلي وتحليله باستخدام NCRF ++ في Coling 2018 كأفضل ورقة.
يدعم NCRF ++ مجموعات بنية مختلفة من على ثلاثة مستويات: تمثيل تسلسل الأحرف ، تمثيل تسلسل الكلمات وطبقة الاستدلال.
مرحبا بكم في ستار هذا المستودع!
Python: 2 or 3
PyTorch: 1.0
Pytorch 0.3 نسخة متوافقة هنا.
nbest (مع احتمالاتها). يدعم NCRF ++ تصميم بنية الشبكة العصبية من خلال ملف التكوين. يمكن أن يعمل البرنامج في وضعين ؛ التدريب وفك التشفير . (تم تضمين تكوين العينة والبيانات في هذا المستودع)
في حالة التدريب : python main.py --config demo.train.config
في حالة فك التشفير : python main.py --config demo.decode.config
يتحكم ملف التكوين في بنية الشبكة وإدخال/إخراج وإعداد التدريب ومقاطعات Hyperparameters.
يتم سرد التكوينات والتفسيرات التفصيلية هنا.
تم تصميم NCRF ++ في ثلاث طبقات (كما هو موضح أدناه): طبقة تسلسل الأحرف ؛ طبقة تسلسل الكلمات وطبقة الاستدلال. باستخدام ملف التكوين ، يمكن تكرار معظم النماذج الحديثة بسهولة دون الترميز . من ناحية أخرى ، يمكن للمستخدمين تمديد كل طبقة من خلال تصميم وحداتهم الخاصة (على سبيل المثال ، قد يرغبون في تصميم الهياكل العصبية الخاصة بهم بخلاف CNN/LSTM/GRU). يجعل تصميم الطبقة لدينا امتداد الوحدة مريحة ، ويمكن العثور على تعليمات تمديد الوحدة النمطية هنا.

النتائج على Conll 2003 English NER مهمة أفضل أو قابلة للمقارنة مع نتائج SOTA مع نفس الهياكل.
charlstm+wordlstm+crf: 91.20 vs 90.94 of lample .etc ، naacl16 ؛
charcnn+wordlstm+CRF: 91.35 مقابل 91.21 من Ma .etc ، ACL16.
بشكل افتراضي ، LSTM هو ثنائي الاتجاه LSTM.
| بطاقة تعريف | نموذج | لا تشارو | charlstm | charcnn |
|---|---|---|---|---|
| 1 | Wordlstm | 88.57 | 90.84 | 90.73 |
| 2 | Wordlstm+CRF | 89.45 | 91.20 | 91.35 |
| 3 | WordCnn | 88.56 | 90.46 | 90.30 |
| 4 | WordCnn+CRF | 88.90 | 90.70 | 90.43 |
قمنا بمقارنة اثني عشر نماذج وضع العلامات التسلسلية العصبية ( {charLSTM, charCNN, None} x {wordLSTM, wordCNN} x {softmax, CRF} ) على ثلاثة معايير (pos ، stunking ، ner) تحت تجارب إحصائية ، ونتائج التفاصيل والتقارنات التي يمكن العثور عليها في coling 2018.
قامت NCRF ++ بدمج العديد من مستخلصات ميزة تسلسل SOTA العصبية: CNN (MA .TC ، ACL16) ، LSTM (LAMPLE .TC ، NAACL16) و GRU (Yang .etc ، ICLR17). بالإضافة إلى ذلك ، أثبتت الميزات المصنوعة يدويًا أنها مهمة في مهام وضع العلامات التسلسلية. يسمح NCRF ++ للمستخدمين بتصميم ميزاتهم الخاصة مثل الرسملة أو علامة POS أو أي ميزات أخرى (دوائر رمادية في الشكل أعلاه). يمكن للمستخدمين تكوين الميزات المحددة ذاتيا من خلال ملف التكوين (حجم تضمين الميزة ، تضمينات الميزة المسبقة. ETC). يتم إعطاء تنسيق بيانات إدخال العينة في Train.cappos.bmes ، والذي يتضمن ميزتين محددان من الإنسان [POS] و [Cap] . ( [POS] و [Cap] مثالان ، يمكنك إعطاء الميزة الخاصة بك أي اسم تريده ، فقط اتبع التنسيق [xx] وتكوين الميزة بنفس الاسم في ملف التكوين.) يمكن للمستخدم تكوين كل ميزة في ملف التكوين باستخدام
feature = [ POS ] emb_size = 20 emb_dir = % your_pretrained_POS_embedding
feature = [ Cap ] emb_size = 20 emb_dir = % your_pretrained_Cap_embeddingسيتم تهيئة ميزة دون التضمين المسبق بشكل عشوائي.
يتم تنفيذ NCRF ++ باستخدام حساب مكثف بالكامل ، مما يجعله فعالًا تمامًا على كل من التدريب النموذجي وفك تشفيره. بمساعدة GPU (NVIDIA GTX 1080) وحجم الدُفعة الكبيرة ، يمكن أن يصل نموذج LSTMCRF المصمم باستخدام NCRF ++ إلى 1000 Sents/S و 2000sents/S على حالة التدريب وفك التشفير ، على التوالي.

تفكك بنية CRF التقليدية تسلسل تسمية واحد فقط مع أكبر احتمالات (أي 1 أفضل ناتج). على الرغم من أن NCRF ++ يمكن أن يعطي خيارًا كبيرًا ، إلا أنه يمكن أن فك تشفير تسلسلات n مع احتمالات n العليا (أي أفضل ناتج). وقد تم دعم Decodeing NBEST من قبل العديد من إطار عمل CRF الإحصائي الشهير. ومع ذلك ، على حد علمنا ، فإن NCRF ++ هي مجموعة الأدوات الوحيدة والأول التي تدعم فك التشفير في نماذج CRF العصبية .
في تنفيذنا ، عندما يمكن أن يعطي نموذج NBEST = 10 ، charcnn+wordlstm+CRF المدمج في NCRF ++ 97.47 ٪ من قيمة Oracle F1 (F1 = 91.35 ٪ عند NBEST = 1) على مهمة CONLL 2003 NER.

لإعادة إنتاج النتائج في ورقة Coling 2018 الخاصة بنا ، تحتاج فقط إلى تعيين iteration=1 كـ iteration=100 في ملف التكوين demo.train.config وتكوين دليل الملفات في ملف التكوين هذا. يصف ملف التكوين الافتراضي طراز Char CNN + Word LSTM + CRF ، يمكنك إنشاء نموذجك الخاص عن طريق تعديل التكوين وفقًا لذلك. المعلمات في ملف التكوين التجريبي هذا هي نفسها في ورقتنا. (لاحظ أن النماذج ذات الصلة بـ Word CNN تحتاج إلى معلمات مختلفة قليلاً ، يمكن العثور على التفاصيل في ورقة القولان.)
إذا كنت ترغب في استخدام هذا الإطار في مهام أو مجموعات بيانات جديدة ، فإليك بعض نصائح التوليف بواسطة @Victor0118.
إذا كنت ترغب في الإبلاغ عن مشكلة أو طرح مشكلة ، فيرجى إرفاق المواد التالية إذا لزم الأمر. مع هذه المعلومات ، يمكنني تقديم مناقشة واقتراح سريع ودقيق.
log fileconfig filesample data إذا كنت تستخدم NCRF ++ في ورقتك ، فيرجى الاستشهاد بالورق التجريبي ACL:
@inproceedings{yang2018ncrf,
title={NCRF++: An Open-source Neural Sequence Labeling Toolkit},
author={Yang, Jie and Zhang, Yue},
booktitle={Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics},
Url = {http://aclweb.org/anthology/P18-4013},
year={2018}
}
إذا كنت تستخدم نتائج التجارب وتحليل NCRF ++ ، فيرجى الاستشهاد بورقة القولان:
@inproceedings{yang2018design,
title={Design Challenges and Misconceptions in Neural Sequence Labeling},
author={Yang, Jie and Liang, Shuailong and Zhang, Yue},
booktitle={Proceedings of the 27th International Conference on Computational Linguistics (COLING)},
Url = {http://aclweb.org/anthology/C18-1327},
year={2018}
}