Meningkatkan Kinerja Model Bahasa melalui Kosakata Cerdas
Proyek ini dirancang untuk mengeksplorasi penggunaan preprocessing Billion Word Corpus dengan label Part-Of-Speech dan Named-Entities untuk menciptakan kosakata yang "lebih cerdas". Dengan menggunakan teknik ini, skor kebingungan yang lebih baik dapat diperoleh dibandingkan menggunakan N kata teratas dalam korpus saja.
Untuk penjelasan lengkap mengenai pemrosesan dan dampaknya terhadap skor kebingungan yang dapat diperoleh, lihat Meningkatkan Kinerja Model Bahasa dengan Kosakata yang Lebih Cerdas.
Proyek ini mencakup skrip untuk
Proyek ini dirancang untuk digunakan di tempat dan tidak ada instalasi pip untuk itu. Cukup unduh sumbernya dari GitHub, atur opsi konfigurasi, dan jalankan skrip bernomor secara berurutan. Perhatikan bahwa kode ini dirancang untuk peneliti sehingga diperkirakan perlu meninjau kode dalam skrip yang sedang dijalankan dan memodifikasi opsi sesuai kebutuhan untuk mendapatkan hasil yang spesifik.
Skrip direktori utama diawali dengan angka untuk menunjukkan urutan menjalankannya. Kebanyakan skrip di direktori utama adalah rangkaian panggilan yang relatif singkat ke fungsi perpustakaan terkait. Sebelum menjalankan setiap skrip, pastikan untuk membukanya dan mengatur parameter konfigurasi apa pun untuk mendapatkan hasil yang Anda inginkan.
Opsi konfigurasi global yang digunakan oleh beberapa skrip diatur di ./configs/config.py. Pastikan untuk masuk ke file ini dan ubah jalur ke data Anda sebelum menjalankan skrip apa pun di bawah.
00_StanfordCoreNLPServer.py : Memulai parser Stanford Core NLP menggunakan file konfigurasi ./configs/snlp_server.py. Skrip memblokir saat server sedang berjalan. Jika Anda mau, server dapat dimulai secara manual. Skrip ini hanya untuk kenyamanan.
10_ExtractUniqueSents.py : Mengekstrak kalimat unik dari Billion Word Corpus sebelum diurai. Di dekat bagian atas file terdapat beberapa petunjuk tentang cara mengunduh dan mengatur korpus mentah.
12_STParseBWCorpus.py : Menjalankan semua kalimat unik melalui Stanford Parser. Perhatikan bahwa langkah ini memerlukan banyak waktu (mungkin sehari penuh) dan memberikan banyak manfaat dari prosesor multi-core. Lihat catatan di file tentang run-time.
14_RemoveDuplications.py : Melakukan sedetik melewati data untuk menghapus kalimat duplikat yang terjadi setelah penguraian/normalisasi.
20_CreateEnglishDictionary.py : Diperlukan untuk pembuatan kosakata yang cerdas.
22_CreateVocab.py : Skrip ini membuat berbagai jenis kosakata. Blok if/elif yang besar dalam file tersedia agar pengguna dapat memilih jenis kosakata yang akan dibuat.
24_IndexVocab.py : Membuat data korpus terindeks yang digunakan untuk melatih model bahasa. Sekali lagi ada blok if/elif besar di sini yang perlu diatur oleh pengguna untuk memilih jenis kosakata yang akan digunakan.
30_TrainBasicLM.py : Menyiapkan dan menjalankan pelatihan model. Sekali lagi ada blok pernyataan di sini yang memungkinkan pengguna memilih kosakata untuk dilatih. Selain itu pengguna perlu memilih file dengan parameter konfigurasi model. Parameter konfigurasi model disimpan di direktori konfigurasi dengan nama file seperti L1_2048_512.py.
32_TestPerplexity : Menjalankan uji kebingungan terhadap model yang dilatih. Pilih model yang akan diuji di bagian bawah skrip.
34_NextWordPrediction.py : Memungkinkan pengguna memasukkan bagian pertama kalimat dan memanggil model untuk memprediksi kata berikutnya. Konfigurasikan model mana yang akan digunakan di bagian utama skrip.
Sebagian kode diadaptasi dari perangkat model bahasa Universitas Saarland. Lihat TF-NNLM-TK .
Kode tersebut sebagian didasarkan pada model contoh TensorflowPTB-LM.