Metafora Cina
Tugas Bersama CCL 2018 - Pengenalan Metafora Tiongkok dan Analisis Sentimen
Deskripsi Tugas
- Detail misi: http://ir.dlut.edu.cn/news/detail/508
- Pembaruan: Subtugas 1 adalah tugas dua kategori. Anda hanya perlu mengidentifikasi apakah itu merupakan metafora kata kerja.
- Waktu: Batas waktu pukul 09.30. Setiap tim dapat menyerahkan hasil pada tanggal 9 September, 16 September, 23 September, dan 30 September, mulai pukul 22:00 setiap hari Minggu; setiap tim hanya dapat mengirimkan hasil tiga kali seminggu, dan sesuai dengan Hasil yang terakhir diserahkan dihitung peringkat. Ini akan diumumkan di situs web (http://ir.dlut.edu.cn/) sebelum pukul 17:00 pada tanggal 10, 17, 24 September, dan 1 Oktober.
- Data pelatihan: http://ir.dlut.edu.cn/File/Download?cid=3 "Data Evaluasi Pengakuan Metafora Tiongkok dan Analisis Sentimen CCL 2018"
- Data pengujian (tidak berlabel): http://ir.dlut.edu.cn/File/Download?cid=3 "Data Uji Pengakuan Metafora Tiongkok dan Analisis Sentimen CCL 2018"
- Pengingat: Sesuai dengan persyaratan penyelenggara, kumpulan data ini hanya dapat digunakan untuk tugas evaluasi ini.
Struktur Repo
- /Corpus: Menyimpan korpus metafora Cina Penn StateUCMC (belum digunakan)
- /data: data pelatihan dan pengujian
- /dicts: kamus relasional dari dua subtugas, serta kosakata
- /memo: notulen rapat
- /model_structure: Diagram struktur model nn
- /kertas: literatur terkait
- /pretrained_emb: Penyematan kata terlatih yang diunduh dari Internet (berdasarkan wikipedia), difilter
- /src: kode
- /results: Hasil evaluasi model dan label pengujian yang dihasilkan
- /models: Anda perlu membuat jalur ini sendiri. Di bawah ini ada dua sub-jalur: /verb dan /emo, yang digunakan untuk menyimpan model yang dilatih.
- /submission: File hasil yang dikirimkan, disimpan berdasarkan tanggal
Struktur Kode
- Kode inti:
- conf.py: Mengatur berbagai parameter
- multi_cgru_keras.py: struktur model
- train.py: melatih model pada 90% data pelatihan
- eva_model.py: Evaluasi performa model pada 10% data pelatihan
- generate_test_labels.py: memprediksi label pada set pengujian
- Kode tambahan:
- split_data.py: Membagi set pelatihan menjadi 90% (untuk pelatihan) dan 10% (untuk mengevaluasi kinerja model)
- back_translate.py: Gunakan Google Translate API untuk menambahkan data pelatihan
- convert_data.py: Mengonversi data dari xml ke txt, dan mengubah label numerik menjadi label teks yang mudah dipahami
- data_provider.py: Membaca data dan mempersiapkan pelatihan
- filter_wordemb.py: Memfilter vektor kata yang telah dilatih sebelumnya berdasarkan data pelatihan dan pengujian, hanya mempertahankan kata-kata yang muncul di data (vektor kata wiki saat ini telah difilter)
Cara menjalankan kode
- Tetapkan parameter yang relevan di conf.py
- Jalankan train.py untuk melatih model
- Jalankan eva_model.py untuk mengevaluasi kinerja model
- Berdasarkan hasil evaluasi pada langkah ketiga, pilih model dengan performa lebih baik dan gunakan generate_test_labels untuk menghasilkan label data pengujian.
Selesai
- NN Baseline: Berdasarkan CGRU, performa (akurasi) terbaik adalah sekitar 70% untuk tugas1 dan sekitar 39% untuk tugas2.
- Perbandingan: Baseline Mayoritas, tugas2 37%
- Perbandingan: Dasar naif berdasarkan leksikon emosional, tanpa pembelajaran mesin, tugas2 51%
- Berdasarkan NN Bseline, coba fitur berikut:
- Optimalkan lapisan Penyematan
- Gunakan penyematan terlatih untuk menggantikan penyematan yang dipelajari oleh model itu sendiri. Performa tugas2 terbaik adalah sekitar 50%.
- Penyambungan vektor kata: dikombinasikan dengan pengurangan parameter kelancaran, makro task2 f - 39,6%
- Terjemahan Kembali
- Google Translate 6 bahasa, diuji beberapa metode pemfilteran, task2 memiliki performa terbaik sekitar acc 53%
- Struktur model lainnya
- Langsung gunakan Penyematan sebagai fitur klasifikasi
- LSTM+terhubung sepenuhnya:task2 makro f - 40%
- Sedikit analisis Kesalahan:
- Terlihat bahwa overfitting itu serius, jadi saya mencoba menyesuaikan l2(↑), dropout(↑), smooth(↓), tetapi tidak ada perubahan besar yang ditemukan tidak stabil (perbedaan antara beberapa kali menjalankan tugas2 bisa mencapai 10%)
- Beberapa kasus buruk adalah kalimat dengan transisi (misalnya mengandung kata-kata seperti "bagaimana tidak", "tidak bisa", "karena", dll.)
- Ditemukan bahwa beberapa anotasi dalam data dipertanyakan
- Dapatkan korpus metafora Penn State Chinese, yang dapat digunakan untuk penyematan kata pelatihan mandiri
- Korpus pelatihan tambahan: Gunakan korpus bahasa Inggris lainnya untuk menerjemahkannya kembali guna melengkapi korpus pelatihan
- Sesuaikan parameter
Daftar Todo
- Coba lebih banyak fitur berdasarkan dasar NN:
- Lanjutkan untuk mengoptimalkan lapisan Embedding
- Gunakan penyematan terlatih lainnya: misalnya penyematan yang dilatih pada korpus metafora Penn State, Penyematan ELMo, dll.
- Tambahkan kosakata emosional ke nn:
- Menyematkan label: Metode yang ada hanya digunakan untuk label dengan hubungan progresif (sangat neg, neg, netral, pos, sangat pos)
- subkategori kata kerja dan kata benda
- Hubungan ketergantungan
- Dengan mengamati data, memeriksa peran kata-kata fungsi dalam dua subtugas, dan kemudian memutuskan informasi apa tentang kata-kata fungsi yang akan ditambahkan ke model. Kata fungsi: Informasi apa yang berguna?
- Coba struktur model lainnya:
- (Lihat artikel 'Dasar Membutuhkan Lebih Banyak Cinta: Pada Model Sederhana Berbasis Penyematan Kata dan Mekanisme Penggabungan Terkait')
- Gunakan Transformer sebagai pembuat enkode kalimat (lihat artikel 'Yang Anda Butuhkan Hanya Perhatian')
Sumber daya
- Korpus Metafora Cina Penn State (http://www.personal.psu.edu/xxl13/download.html)
- Perpustakaan Ontologi Kosakata Emosi Universitas Teknologi Dalian (http://ir.dlut.edu.cn/EmotionOntologyDownload)
Penyelenggara
Laboratorium Penelitian Pengambilan Informasi Universitas Teknologi Dalian