Paket ini mendukung arsitektur umum untuk identifikasi bahasa ( LID ) dan identifikasi dialek ( DIM ) menggunakan perceptron multi-lapisan yang dibangun menggunakan keras. Memang juga mendukung classifier SVM linier menggunakan scikit-learn.
Untuk memuat model:
from idNet import idNet_Enrich
lid = idNet_Enrich("Path to model file", s3_bucket)
did = idNet_Enrich("Path to model file", s3_bucket)
S3_Bucket mengambil str Strue yang berisi ember S3 opsional untuk memuat model dari. Nama file model harus berisi awalan yang diperlukan.
Setelah model tutup dimuat, ia memiliki sifat -sifat berikut:
| Metode | Keterangan |
|---|---|
| lid.n_features | Jumlah fitur dalam model (yaitu, tempat sampah) |
| lid.n_classes | Jumlah bahasa dalam model |
| lid.lang_mappings | Kamus {"iso_code": "language_name"} pemetaan untuk semua kode ISO 639-3 |
| tutup | Daftar Kode ISO 639-3 untuk bahasa yang ada dalam model saat ini |
Setelah model DID dimuat, ia memiliki sifat -sifat berikut:
| Metode | Keterangan |
|---|---|
| do.n_features | Jumlah fitur dalam tata bahasa yang digunakan untuk mempelajari model |
| do.n_classes | Jumlah negara dalam model |
| do.country_mappings | Kamus {"iso_code": "country_name"} pemetaan untuk semua kode negara yang digunakan |
| do.countries | Daftar kode negara untuk dialek regional (tingkat negara) yang ada dalam model saat ini |
Model yang dimuat melakukan tugas -tugas berikut:
| Metode | Keterangan |
|---|---|
| lid.predict (data) | Mengambil serangkaian string atau string individu; mengembalikan array kode bahasa yang diprediksi |
| Did.Predict (data) | Mengambil serangkaian string atau string individu; Mengembalikan serangkaian kode negara yang diprediksi |
CATATAN: Nama file model yang perlu disertakan ".did"/". Tutup" dan ".mlp"/". SVM" karena informasi ini digunakan untuk menentukan jenis model!
Untuk melatih model baru, data pelatihan perlu disiapkan. Proses ini otomatis; Lihat Data_DID dan Data_LID Directory untuk arah dan skrip.
from idNet import idNet_Train
id = idNet_train()
| Argumen | Jenis | Keterangan |
|---|---|---|
| jenis | (str) | Apakah akan bekerja dengan identifikasi bahasa atau dialek |
| masukan | (str) | Path to Input Folder |
| keluaran | (str) | Path to output folder |
| s3 = false | (Boolean) | Jika benar, gunakan Boto3 untuk berinteraksi dengan S3 Bucket |
| s3_bucket = "" | (str) | Nama S3 Bucket Sebagai String |
| julukan = "bahasa" | (str) | Nama panggilan untuk menabung / memuat model |
| divide_data = true | (Boolean) | Jika benar, merangkak untuk dataset; Jika salah, muat saja |
| test_samples = 20 | (int) | Jumlah file untuk setiap kelas untuk digunakan untuk pengujian |
| ambang = 100 | (int) | Jumlah file yang diperlukan sebelum bahasa/negara termasuk dalam model |
| SAMPLES_PER_EPOCH = 5 | (int) | Jumlah sampel untuk digunakan per pelatihan zaman |
| bahasa = "" | (str) | Untuk melakukannya, tentukan bahasa model saat ini |
| lid_sample_size = 200 | (int) | Untuk tutupnya, jumlah karakter untuk memungkinkan per sampel |
| Did_sample_size = 1 | (int) | Untuk melakukannya, jumlah 100 sampel kata untuk digabungkan |
| preannotate_cxg = false | (Boolean) | Karena melakukannya, jika benar memperkaya dan simpan semua vektor cxg |
| preannotated_cxg = false | (Boolean) | Untuk melakukannya, jika benar cukup muat vektor CXG yang diperkaya sebelumnya |
| cxg_workers = 1 | (int) | Untuk melakukan, jika dataset pra-penonton, jumlah pekerja untuk digunakan |
| class_constraints = [] | (Daftar STR) | Opsi untuk membatasi jumlah kelas |
| merge_dict = {} | (Dikt) | Asli: Kunci Nama Baru |
id.train()
| Argumen | Jenis | Keterangan |
|---|---|---|
| model_type = "MLP" | (str) | MLP atau SVM |
| lid_features = 524288 | (int) | Jumlah fitur n-gram karakter untuk diizinkan, hashing saja |
| lid_ngrams = (1,3) | (tuple of ints) | Kisaran n-gram hingga hash |
| DID_GRAMMAR = ".grammar.p" | (str) | Nama tata bahasa C2XG untuk digunakan untuk anotasi |
| c2xg_workers = 1 | (int) | Untuk melakukannya, jumlah pekerja untuk pengayaan C2XG |
| MLP_SIZES = (300, 300, 300) | (tuple of ints) | Ukuran dan jumlah lapisan; misalnya, 3 lapisan pada 300 neuron masing -masing |
| cross_val = false | (Boolean) | Apakah akan menggunakan validasi silang daripada set tes yang ditahan |
| Dropout = 0,25 | (mengambang) | Jumlah putus sekolah untuk diterapkan ke setiap lapisan |
| aktivasi = "relu" | (str) | Jenis aktivasi; hanya meneruskan nama ke keras |
| optimizer = "sgd" | (str) | Jenis algoritma optimasi; hanya meneruskan nama ke keras |