يحتوي هذا المستودع على رمز للتدريب واستخدام نموذج SRL العميق الموصوف في: العلامات على الأدوار الدلالية العميقة: ما الذي ينجح وما هو التالي
إذا كنت تستخدم الكود الخاص بنا ، فيرجى الاستشهاد بالورق الخاص بنا على النحو التالي:
inproceedings {HE2017Deep ،
العنوان = {علامات الدور الدلالي العميق: ما ينجح وما هو التالي} ،
المؤلف =}
booktitle = {وقائع الاجتماع السنوي لجمعية اللغويات الحاسوبية} ،
السنة = {2017}
}
./scripts/fetch_required_data.sh فك ضغط النماذج (في الموارد) تحت دليل Neural_SRL. على سبيل المثال ، ضمن دليل قاعدة الكود:
tar -zxvf resources/conll05_model.tar.gz
فيما يلي قائمة بالنماذج المسبقة:
conll05_model.tar.gz : نموذج واحد تم تدريبه على مجموعة بيانات CONLL-2005.conll05_ensemble.tar.gz : 5 مجموعة الموديل تدرب على مجموعة بيانات Conll-2005.conll05_propid_model.tar.gz : قطار نموذج التعرف على Conll-2005.conll2012_model.tar.gz : نموذج واحد تم تدريبه على مجموعة بيانات CONLL-2012.conll2012_ensemble.tar.gz : 5 مجموعة الموديل المدربة على مجموعة بيانات CONLL-2012.conll2012_propid_model.tar.gz : قطار نموذج التعرف على CONLL-2012. python python/interactive.py --model conll05_model/ --pidmodel conll05_propid_model
يجري:
./scripts/run_end2end.sh sample_data/sentences_with_predicates.txt temp/sample.out (على وحدة المعالجة المركزية) أو:
./scripts/run_end2end.sh sample_data/sentences_with_predicates.txt temp/sample.out ${gpu_id} (على GPU)
لاحظ أن البرنامج النصي يضيف /usr/local/cuda/... إلى PATH و CUDA_LD_LIBRARY_PATH ، ويقوم بتحميل نماذج مسبقة من ./conll05_propid_model و ./conll05_ensemble ، يرجى ضبط التكوينات وفقًا لإعدادك الخاص.
يحتوي ملف الإدخال على جمل رمزية ، جملة واحدة لكل سطر.
سيحتوي ملف الإخراج على شيء مثل:
أخبر جون بات بقطع الشجرة.
مسند: أخبر (1)
A0: جون
الخامس: قال
A2: بات
A1: لقطع الشجرة
أخبر جون بات بقطع الشجرة.
المسند: قطع (4)
A0: بات
الخامس: قطع
A1: الشجرة
predict.py حاليًا بتحميل ملف الإدخال بأكمله في الذاكرة ، لذلك سيكون من الأفضل الحفاظ على عدد الجمل في كل ملف أقل من 50000. لتكرار النتائج على مجموعات بيانات CONLL-2005 و CONLL-2012 ، يرجى اتباع الخطوات أدناه.
يتم توفير البيانات من خلال: Conll-2005 Square Cassion ، ولكن الكلمات الأصلية هي من مجموعة بيانات Penn Treebank ، والتي ليست متاحة للجمهور. إذا كان لديك مجموعة PTB ، فيمكنك تشغيل:
./scripts/fetch_and_make_conll05_data.sh /path/to/ptb/
يجب عليك اتباع الإرشادات أدناه للحصول على بيانات CONLL-2012 CONLL-2012 ، وهذا سيؤدي إلى دليل يسمى /path/to/conll-formatted-ontonotes-5.0 CONLL-FORMATTED-INTONOTES-5.0. يجري:
./scripts/make_conll2012_data.sh /path/to/conll-formatted-ontonotes-5.0
شاهد استخدام python/train.py :
python python/predict.py -h
أو كبداية سريعة ، قم بتشغيل نموذج مدرب (يتطلب conll05_ensemble):
./scripts/run_predict_conll05.sh ${gpu_id} أو:
./scripts/run_predict_conll05.sh لتشغيله على وحدة المعالجة المركزية.
قم بتشغيل النموذج من طرف إلى طرف مع المتوقع (يتطلب conll05_ensemble ، و conll05_propid_model):
./scripts/run_end_to_end_conll05.sh ${gpu_id}
تشغيل نموذج CONLL-2012 يعمل بشكل مشابه.
شاهد استخدام python/train.py :
python python/train.py -h
قم بتدريب نموذج SRL (مع مستحقات الذهب) مع ملفات التكوين المحددة مسبقًا: ./scripts/run_train.sh ${gpu_id}
تدريب معرف المسند: ./scripts/run_propid_train.sh ${gpu_id}
لاحظ أنه في وقت التدريب ، يعمل train.py في نموذج FAST_RUN ، مما سيؤدي إلى زيادة كبيرة في تجميع النموذج. قد يستغرق الأمر عدة دقائق لطراز طبقة 2 ، وما يصل إلى 8 ساعات لطراز طبقة 8 مع تسرب تباين.
يرجى الرجوع إلى الملفات الموجودة في sample_data والتفسيرات أدناه لكيفية تنسيق إدخال النموذج.
يحتوي كل سطر على عينة تدريب واحدة تمامًا ، والتي تحتوي على معلومات مسند (فهرس في الجمل ، بدءًا من 0) ، والجملة الرمزية ، وتسلسل العلامات. إذا كانت العلامات الذهبية غير موجودة ، فما عليك سوى استخدام تسلسل من نظام التشغيل. يتم فصل الجملة وتسلسل العلامة مع ||| رمز. نستخدم تنسيق IOB2. يتم فصل جميع الرموز والرموز عن طريق مساحة بيضاء تعسفية.
خطوط مثال:
2 قطتي تحب القبعات. ||| B-A0 I-A0 BV B-A1 O
يشبه التنسيق المحدد أعلاه ، باستثناء أن كل سطر يتوافق مع جملة الإدخال ، ولا يتم توفير معلومات مسند. تتوافق البرامج السابقة مع علامات V وكلمات أخرى يتم تصنيفها بعلامات O.
خطوط مثال:
يقولون إن قططتي تحب القبعات. ||| Oovooovo
يحتوي config على بعض ملفات التكوين لتدريب نموذج SRL ( srl_config.json و srl_small_config.json ) وكذلك لتدريب نموذج معرف المسند ( propid_config.json )
اتصل بـ Luheng إذا كان لديك أي أسئلة!