Ini adalah toolkit Networl Language Models (NNLMS) saraf yang mendukung jaringan saraf feed-forward (FNN), jaringan saraf berulang (RNN), memori jangka pendek (LSTM) RNN, RNN dua arah dan LSTM dua arah. Model bahasa jaringan saraf dengan lapisan tersembunyi yang multible juga dapat dibangun dengan toolkit ini, dan arsitektur lapisan tersembunyi bisa berbeda. Metode berbasis kelas diadopsi dalam toolkit ini untuk mempercepat trainin dan menjalankan model bahasa jaringan saraf. Toolkit ini telah ditulis ulang menggunakan C ++ yang dapat ditemukan di sini.
Parameter konfigurasi untuk NNLM adalah sebagai berikut:
| Nama | Keterangan | Jenis | Diperlukan | Bawaan |
|---|---|---|---|---|
| Ac_fun 1 | Fungsi aktivasi untuk lapisan tersembunyi | Str | Tanh | |
| ALFA | Tingkat pembelajaran | Mengambang | 0,01 | |
| Alpha_cut | Tingkat pembelajaran cutoff dengan rasio ini ketika perbaikan kurang dari minimun | Mengambang | 0,75 | |
| Beta | Paramter regularisasi | Mengambang | 1E-6 | |
| En_bias | Aktifkan istilah bias | Bool | PALSU | |
| En_direct | Aktifkan koneksi langsung | Bool | PALSU | |
| File_type | Jenis file input, mendukung biner dan teks, 'b' untuk biner dan 't' untuk teks | Str | T | |
| GATE_FUN | Fungsi aktivasi untuk gerbang di LSTM RNN | Str | Sigmoid | |
| Gram_order | Urutan N-Gram untuk FNN | Int | 5 | |
| Hidden_layers 2 | Nama dan ukuran lapisan tersembunyi | Daftar | √ | |
| Input_unit 3 | Unit input, dukungan kata atau karakter, 'w' untuk kata dan 'c' untuk karakter | Str | W | |
| Iterasi 4 | Jumlah iterasi maksimum | Int | 50 | |
| Min_improve 4 | Minimun Laju Peningkatan Entropi pada Data Validasi | Mengambang | 1.003 | |
| Model_name | Tentukan nama untuk model bahasa | Str | - | |
| Output_path | Jalur di mana file output akan disimpan | Str | √ | - |
| Acak_seed | Benih untuk generator acak | Int | 1 | |
| Kalimat_end | Tandai akhir kalimat | Str | < s> | |
| Kalimat_start | Tandai untuk memulai kalimat | Str | ||
| Test_files | Jalur di mana file uji disimpan | Str | √ | - |
| Train_files | Jalur di mana file pelatihan disimpan | Str | √ | - |
| Unknown_word | Tandai kata yang tidak diketahui | Str | Oov | |
| Valid_files | Jalur di mana file validasi disimpan | Str | √ | - |
| Vector_dim | Dimensi vektor fitur untuk kata atau karakter | Int | 30 | |
| Vocab_Size 5 | Ukuran kosakata yang dipelajari dari data pelatihan | Int | 10000 |
Catatan: 1. Fungsi aktivasi lapisan tersembunyi bisa menjadi salah satu dari tanh , sigmoid , hard_sigmoid , relu dan gaussian .
2. Lapisan tersembunyi dapat berupa satu atau beberapa dari FNN , RNN , LSTM , BiRNN dan BiLSTM , dan mereka harus diberikan sebagai daftar tupel yang berisi nama masing -masing lapisan dan ukurannya, seperti [('rnn', 30), ('fnn', 20)]. Hanya tuple yang baik -baik saja ketika hanya ada satu lapisan tersembunyi. Ukuran lapisan tersembunyi harus bertepatan satu sama lain.
3. Untuk bahasa, seperti bahasa Inggris, Prancis, yang kata -katanya dipisahkan oleh karakter kosong, seperti ruang putih, INPUT_UNITE dapat diatur ke 'w' atau 'c'. Bahasa lain, seperti bahasa Cina, hanya INPUT_UNITE = 'C' yang berfungsi.
4. Pelatihan akan berakhir ketika mencapai jumlah maksimum iterasi atau bahwa peningkatan entropi pada data validasi kurang dari tingkat minimum yang terjadi dua kali.
5. Jika jumlah kata atau karakter yang dipelajari dari data pelatihan melebihi ukuran kosa kata yang ditentukan, kata atau karakter dengan frekuensi rendah tidak akan ditambahkan ke dalam kosa kata. Sebaliknya, ukuran kosa kata akan diatur ulang dengan jumlah kata yang dipelajari.
Contoh -contoh diberikan dalam toolkit ini. Rincian lebih lanjut tentang model bahasa yang dibangun di toolkit ini, silakan merujuk ke posting saya.
Modul ini tersedia sebagai open source di bawah ketentuan lisensi MIT.