จีน-อุปมา
งานที่ใช้ร่วมกันของ CCL 2018 - การรับรู้อุปมาอุปมัยและการวิเคราะห์ความรู้สึกของจีน
คำอธิบายงาน
- รายละเอียดภารกิจ: http://ir.dlut.edu.cn/news/detail/508
- อัปเดต: งานย่อย 1 เป็นงานสองหมวดหมู่ คุณจะต้องระบุว่าเป็นคำอุปมาอุปไมยหรือไม่
- เวลา: หมดเขตเวลา 9.30 น. แต่ละทีมสามารถส่งผลการแข่งขันได้ในวันที่ 9 กันยายน, 16 กันยายน, 23 กันยายน และ 30 กันยายน เวลา 22.00 น. ทุกวันอาทิตย์ แต่ละทีมสามารถส่งผลได้เพียงสามครั้งต่อสัปดาห์ และตามผลที่ส่งล่าสุดจะคำนวณ การจัดอันดับ โดยจะประกาศบนเว็บไซต์ (http://ir.dlut.edu.cn/) ก่อนเวลา 17.00 น. วันที่ 10, 17, 24 กันยายน และ 1 ตุลาคม
- ข้อมูลการฝึกอบรม: http://ir.dlut.edu.cn/File/Download?cid=3 "ข้อมูลการประเมินการรับรู้และการวิเคราะห์อุปมาอุปไมยของจีนประจำปี 2018"
- ข้อมูลการทดสอบ (ไม่มีป้ายกำกับ): http://ir.dlut.edu.cn/File/Download?cid=3 "ข้อมูลการทดสอบการวิเคราะห์การรับรู้และการวิเคราะห์ความรู้สึกเชิงเปรียบเทียบของจีน CCL 2018"
- คำเตือน: ตามข้อกำหนดของผู้จัดงาน ชุดข้อมูลนี้สามารถใช้เพื่อการประเมินนี้เท่านั้น สำหรับการใช้งานอื่น ๆ โปรดติดต่อผู้จัดงาน
โครงสร้างการซื้อคืน
- /Corpus: เก็บคลังข้อมูลอุปมาอุปมัยของจีนของ Penn StateUCMC (ยังไม่ได้ใช้)
- /data: ข้อมูลการฝึกอบรมและการทดสอบ
- /dicts: พจนานุกรมเชิงสัมพันธ์ของทั้งสองงานย่อย รวมถึงคำศัพท์
- /memo: รายงานการประชุม
- /model_struction: แผนภาพโครงสร้างของโมเดล nn
- /กระดาษ: วรรณกรรมที่เกี่ยวข้อง
- /pretrained_emb: การฝังคำที่ฝึกไว้ล่วงหน้าที่ดาวน์โหลดจากอินเทอร์เน็ต (อิงตามวิกิพีเดีย) กรองแล้ว
- /src: รหัส
- /results: สร้างแบบจำลองผลการประเมินและสร้างฉลากทดสอบ
- /models: คุณต้องสร้างพาธนี้ด้วยตัวเอง ด้านล่างนี้คือพาธย่อยสองพาธ: /verb และ /emo ซึ่งใช้ในการจัดเก็บโมเดลที่ได้รับการฝึก
- /submission: ไฟล์ผลลัพธ์ที่ส่ง จัดเก็บตามวันที่
โครงสร้างรหัส
- รหัสหลัก:
- conf.py: ตั้งค่าพารามิเตอร์ต่างๆ
- multi_cgru_keras.py: โครงสร้างโมเดล
- train.py: ฝึกโมเดลด้วย 90% ของข้อมูลการฝึก
- eva_model.py: ประเมินประสิทธิภาพของโมเดลจาก 10% ของข้อมูลการฝึก
- Generate_test_labels.py: ทำนายป้ายกำกับบนชุดทดสอบ
- รหัสเสริม:
- split_data.py: แบ่งชุดการฝึกออกเป็น 90% (สำหรับการฝึก) และ 10% (สำหรับการประเมินประสิทธิภาพของโมเดล)
- back_translate.py: ใช้ Google Translate API เพื่อเพิ่มข้อมูลการฝึกอบรม
- Convert_data.py: แปลงข้อมูลจาก xml เป็น txt และแปลงป้ายตัวเลขให้เป็นป้ายข้อความที่เข้าใจง่าย
- data_provider.py: อ่านข้อมูลและเตรียมพร้อมสำหรับการฝึกอบรม
- filter_wordemb.py: กรองเวกเตอร์คำที่ได้รับการฝึกอบรมล่วงหน้าตามข้อมูลการฝึกอบรมและการทดสอบ โดยคงไว้เฉพาะคำที่ปรากฏในข้อมูล (เวกเตอร์คำวิกิปัจจุบันถูกกรองแล้ว)
วิธีการรันโค้ด
- ตั้งค่าพารามิเตอร์ที่เกี่ยวข้องใน conf.py
- เรียกใช้ train.py เพื่อฝึกโมเดล
- เรียกใช้ eva_model.py เพื่อประเมินประสิทธิภาพของโมเดล
- ตามผลการประเมินในขั้นตอนที่สาม ให้เลือกโมเดลที่มีประสิทธิภาพดีกว่า และใช้ Generate_test_labels เพื่อสร้างป้ายกำกับข้อมูลการทดสอบ
เสร็จแล้ว
- NN Baseline: จาก CGRU ประสิทธิภาพที่ดีที่สุด (ความแม่นยำ) คือประมาณ 70% สำหรับงาน 1 และประมาณ 39% สำหรับงาน 2
- การเปรียบเทียบ: พื้นฐานส่วนใหญ่ งาน 2 37%
- การเปรียบเทียบ: พื้นฐานที่ไร้เดียงสาตามพจนานุกรมทางอารมณ์ โดยไม่มีการเรียนรู้ของเครื่อง ภารกิจ 2 51%
- อิงตาม NN Bseline ลองใช้คุณสมบัติต่อไปนี้:
- เพิ่มประสิทธิภาพการฝังเลเยอร์
- ใช้การฝังที่ได้รับการฝึกอบรมล่วงหน้าเพื่อแทนที่การฝังที่เรียนรู้จากตัวโมเดลเอง ประสิทธิภาพที่ดีที่สุดของงาน 2 คือประมาณ 50%
- การต่อเวกเตอร์คำ: รวมกับการลดพารามิเตอร์ที่ราบรื่น, มาโครงาน 2 f - 39.6%
- แปลกลับ
- Google Translate 6 ภาษา ทดสอบวิธีการกรองหลายวิธี Task2 มีประสิทธิภาพดีที่สุดประมาณ 53%
- โครงสร้างโมเดลอื่นๆ
- ใช้การฝังเป็นคุณลักษณะการจัดหมวดหมู่โดยตรง
- LSTM+เชื่อมต่อเต็มที่:มาโครงาน 2 f - 40%
- การวิเคราะห์ข้อผิดพลาดเล็กน้อย:
- พบว่าการโอเวอร์ฟิตเป็นเรื่องร้ายแรง เลยลองปรับ l2(↑), dropout(↑), Smooth(↓) แต่กลับไม่พบการเปลี่ยนแปลงใหญ่ๆ เลย ขณะเดียวกันก็พบว่าประสิทธิภาพของรุ่นเดียวกัน ไม่เสถียร (ความแตกต่างระหว่างการรัน Task2 หลายครั้งอาจสูงถึง 10%)
- กรณีที่ไม่ดีบางกรณีคือประโยคที่มีการเปลี่ยนผ่าน (เช่น มีคำต่างๆ เช่น "how can not be", "can not", "since" เป็นต้น)
- พบว่าคำอธิบายประกอบบางส่วนในข้อมูลยังเป็นที่น่าสงสัย
- รับคลังคำเปรียบเทียบภาษาจีนของ Penn State ซึ่งสามารถนำไปใช้สำหรับการฝังคำฝึกฝนตนเองได้
- คลังข้อมูลการฝึกอบรมเสริม: ใช้คลังข้อมูลภาษาอังกฤษอื่นเพื่อแปลกลับเพื่อเสริมคลังข้อมูลการฝึกอบรม
- ปรับพารามิเตอร์
รายการสิ่งที่ต้องทำ
- ลองใช้คุณสมบัติเพิ่มเติมตามพื้นฐานของ NN:
- เพิ่มประสิทธิภาพเลเยอร์การฝังต่อไป
- ใช้การฝังที่ได้รับการฝึกอบรมล่วงหน้าอื่นๆ: เช่น การฝังที่ได้รับการฝึกในคลังคำอุปมาของ Penn State, การฝัง ELMo เป็นต้น
- เพิ่มคำศัพท์เกี่ยวกับอารมณ์ให้กับ nn:
- การฝังป้ายกำกับ: วิธีการที่มีอยู่จะใช้กับป้ายกำกับที่มีความสัมพันธ์แบบก้าวหน้าเท่านั้น (very neg, neg, neutral, pos, very pos)
- หมวดหมู่ย่อยของคำกริยาและคำนาม
- ความสัมพันธ์แบบพึ่งพา
- โดยการสังเกตข้อมูล ตรวจสอบบทบาทของคำฟังก์ชั่นในงานย่อยทั้งสอง จากนั้นตัดสินใจว่าจะเพิ่มข้อมูลอะไรเกี่ยวกับคำฟังก์ชั่นลงในแบบจำลอง คำประกอบ: ข้อมูลประเภทใดที่เป็นประโยชน์?
- ลองใช้โครงสร้างโมเดลอื่นๆ:
- (อ้างถึงบทความ 'พื้นฐานต้องการความรักมากขึ้น: บนแบบจำลองที่ฝังคำอย่างง่ายและกลไกการรวมกลุ่มที่เกี่ยวข้อง')
- ใช้ Transformer เป็นตัวเข้ารหัสประโยค (ดูบทความ 'Attention Is All You Need')
ทรัพยากร
- คลังข้อมูลอุปมาอุปมัยของจีนแห่งรัฐเพนน์ (http://www.personal.psu.edu/xxl13/download.html)
- ห้องสมุดอภิปรัชญาอารมณ์ของมหาวิทยาลัยเทคโนโลยีต้าเหลียน (http://ir.dlut.edu.cn/EmotionOntologyDownload)
ออแกไนเซอร์
ห้องปฏิบัติการวิจัยการสืบค้นข้อมูลมหาวิทยาลัยเทคโนโลยีต้าเหลียน