พื้นที่เก็บข้อมูลนี้มีรหัสสำหรับการฝึกอบรมและการใช้แบบจำลอง SRL ลึกที่อธิบายไว้ใน: การติดฉลากบทบาทความหมายลึก: สิ่งที่ได้ผลและสิ่งต่อไป
หากคุณใช้รหัสของเราโปรดอ้างอิงกระดาษของเราดังนี้:
@inproceedings {he2017deep,
title = {การติดฉลากบทบาทความหมายลึก: สิ่งที่ใช้งานได้และอะไรต่อไป}
ผู้แต่ง = {เขา, Luheng และ Lee, Kenton และ Lewis, Mike และ Zettlemoyer, Luke},
booktitle = {การดำเนินการประชุมประจำปีของสมาคมเพื่อการคำนวณภาษาศาสตร์}
ปี = {2017}
-
./scripts/fetch_required_data.sh บีบอัดแบบจำลอง (ในทรัพยากร) ภายใต้ไดเรกทอรี Neural_SRL ตัวอย่างเช่นภายใต้ไดเรกทอรี codebase:
tar -zxvf resources/conll05_model.tar.gz
นี่คือรายการของแบบจำลองที่ผ่านการฝึกอบรม:
conll05_model.tar.gz : รุ่นเดียวที่ผ่านการฝึกอบรมเกี่ยวกับชุดข้อมูล Conll-2005conll05_ensemble.tar.gz : 5 ชุดรุ่นที่ผ่านการฝึกอบรมเกี่ยวกับชุดข้อมูล Conll-2005conll05_propid_model.tar.gz : แบบจำลองการระบุตัวตนของ Predicate บน CONLL-2005conll2012_model.tar.gz : รุ่นเดียวที่ผ่านการฝึกอบรมเกี่ยวกับชุดข้อมูล Conll-2012conll2012_ensemble.tar.gz : 5 ชุดรุ่นที่ผ่านการฝึกอบรมเกี่ยวกับชุดข้อมูล Conll-2012conll2012_propid_model.tar.gz : แบบจำลองการระบุตัวตนของ Predicate บน 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 (บน CPU) หรือ:
./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_PROPID_MODEL และ ./conll05_ensemble CONLL05_ENSEMBLE โปรดปรับการกำหนดค่าตามการตั้งค่าของคุณเอง
ไฟล์อินพุตมีประโยคโทเค็นหนึ่งประโยคต่อบรรทัด
ไฟล์เอาต์พุตจะมีสิ่งที่ชอบ:
จอห์นบอกแพทให้ตัดต้นไม้
ภาคแสดง: บอก (1)
A0: จอห์น
V: บอก
A2: Pat
A1: ตัดต้นไม้
จอห์นบอกแพทให้ตัดต้นไม้
ภาคแสดง: ตัด (4)
A0: Pat
V: ตัดออก
A1: ต้นไม้
predict.py โหลดไฟล์อินพุตทั้งหมดลงในหน่วยความจำดังนั้นจึงเป็นการดีกว่าที่จะรักษาจำนวนประโยคในแต่ละไฟล์ที่มีอายุต่ำกว่า 50,000 สำหรับการจำลองผลลัพธ์ในชุดข้อมูล Conll-2005 และ Conll-2012 โปรดทำตามขั้นตอนด้านล่าง
ข้อมูลมีให้โดย: งานที่ใช้ร่วมกันของ Conll-2005 แต่คำดั้งเดิมมาจากชุดข้อมูล Penn TreeBank ซึ่งไม่เปิดเผยต่อสาธารณะ หากคุณมีคลังข้อมูล PTB คุณสามารถเรียกใช้:
./scripts/fetch_and_make_conll05_data.sh /path/to/ptb/
คุณต้องทำตามคำแนะนำด้านล่างเพื่อรับข้อมูล Conll-2012 CONLL-2012 ซึ่งจะส่งผลให้ไดเรกทอรีที่เรียกว่า /path/to/conll-formatted-ontonotes-5.0 path/to/conll- formatted-ontonotes-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 สำหรับการทำงานบน CPU
เรียกใช้แบบจำลองแบบ end-to-end ด้วยการคาดการณ์ (ต้องการ 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) ประโยคโทเค็นและลำดับของแท็ก หากไม่มีแท็กทองคำเพียงแค่ใช้ลำดับของระบบปฏิบัติการ ประโยคและลำดับแท็กแยกออกจากกันด้วย A ||| เครื่องหมาย. เราใช้รูปแบบ IOB2 โทเค็นและสัญลักษณ์ทั้งหมดถูกแยกออกจากช่องว่างโดยพลการ
ตัวอย่างบรรทัด:
2 แมวของฉันรักหมวก - B-A0 I-A0 BV B-A1 O
รูปแบบนั้นคล้ายกับที่กำหนดไว้ข้างต้นยกเว้นว่าแต่ละบรรทัดจะสอดคล้องกับประโยคอินพุตและไม่มีข้อมูลภาคแสดง prediates สอดคล้องกับแท็ก V และคำอื่น ๆ ทั้งหมดจะมีป้ายกำกับด้วยแท็ก O
ตัวอย่างบรรทัด:
แมวของฉันรักหมวกพวกเขาพูด - Oovooovo
config มีไฟล์การกำหนดค่าบางอย่างสำหรับการฝึกอบรมโมเดล SRL ( srl_config.json และ srl_small_config.json ) เช่นเดียวกับการฝึกอบรมโมเดล predicate-id ( propid_config.json )
ติดต่อ Luheng เขาถ้าคุณมีคำถามใด ๆ !