Этот пакет поддерживает обобщенную архитектуру для идентификации языка ( LID ) и идентификации диалекта ( DID ) с использованием многослойного Perceptron, созданного с использованием Keras. Также поддерживает линейный классификатор SVM с использованием Scikit-Learn.
Чтобы загрузить модель:
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 принимает STR, содержащий дополнительное ведро S3 для загрузки модели. Модельное имя файла должно содержать необходимые префиксы.
Как только модель крышки загружена, она обладает следующими свойствами:
| Метод | Описание |
|---|---|
| LID.N_FEATURES | Количество функций в модели (т.е. хэширующие мусорные баки) |
| Lid.n_classes | Количество языков в модели |
| LID.LANG_MAPPINGS | Словарь {"iso_code": "ranguage_name"} отображения для всех кодов ISO 639-3 |
| Lid.langs | Список кодов ISO 639-3 для языков, присутствующих в текущей модели |
Как только модель DID загружена, она обладает следующими свойствами:
| Метод | Описание |
|---|---|
| did.n_features | Количество функций в грамматике, используемых для изучения модели |
| did.n_classes | Количество стран в модели |
| did.country_mappings | Словарь {"iso_code": "country_name"} отображения для всех используемых кодов страны |
| did.countries | Список кодов страны для региональных диалектов (на уровне страны) присутствует в текущей модели |
Загруженные модели выполняют следующие задачи:
| Метод | Описание |
|---|---|
| Lid.predict (данные) | Берет множество струн или отдельных струн; Возвращает массив прогнозируемых языковых кодов |
| did.predict (данные) | Берет множество струн или отдельных струн; Возврат массивы прогнозируемых кодов страны |
ПРИМЕЧАНИЕ. Имена файлов модели должны включать «.did»/«. LID» и «.mlp»/«. SVM», потому что эта информация используется для определения типа модели!
Для обучения новых моделей необходимо подготовить данные обучения. Этот процесс автоматизирован; Смотрите каталоги DATA_DID и DATA_LID для указаний и сценариев.
from idNet import idNet_Train
id = idNet_train()
| Аргумент | Тип | Описание |
|---|---|---|
| тип | (Str) | Работать с языком или идентификацией диалекта |
| вход | (Str) | Путь к входной папке |
| выход | (Str) | Путь к выходной папке |
| S3 = false | (логическое) | Если это правда, используйте Boto3, чтобы взаимодействовать с ковшом S3 |
| s3_bucket = "" | (Str) | S3 Bucket Name как строка |
| прозвище = "Язык" | (Str) | Прозвище для моделей сохранения / загрузки |
| divide_data = true | (логическое) | Если это правда, ползайте для набора данных; Если ложь, просто загрузите это |
| test_samples = 20 | (int) | Количество файлов для каждого класса для тестирования |
| Порог = 100 | (int) | Количество файлов, необходимых до того, как язык/страна включено в модель |
| Samples_per_epoch = 5 | (int) | Количество образцов для использования в течение тренировочной эпохи |
| язык = "" | (Str) | Для DID указывает язык текущей модели |
| lid_sample_size = 200 | (int) | Для крышки количество символов, разрешающих для одного образца |
| did_sample_size = 1 | (int) | Для DID, количество образцов 100 слов для объединения |
| preannotate_cxg = false | (логическое) | Для DID, если True Enrich и сохранить все векторы CXG |
| preAnnotated_cxg = false | (логическое) | Для DID, если True просто загрузите предварительно обогащенные векторы CXG |
| cxg_workers = 1 | (int) | Для DID, если предварительно обогащенный набор данных, количество работников для использования |
| class_constraints = [] | (Список Strs) | Возможность ограничить количество классов |
| merge_dict = {} | (DICT) | Оригинал: Новые ключи от имени |
id.train()
| Аргумент | Тип | Описание |
|---|---|---|
| model_type = "mlp" | (Str) | MLP или SVM |
| LID_FEATURES = 524288 | (int) | Количество характерных n-граммовых функций, только хэширование |
| lid_ngrams = (1,3) | (кортеж из INT) | Диапазон N-граммов в хэш |
| did_grammar = ".grammar.p" | (Str) | Название грамматики C2XG для использования для аннотации |
| c2xg_workers = 1 | (int) | Для DID, количество работников для обогащения C2XG |
| MLP_SIZES = (300, 300, 300) | (кортеж из INT) | Размер и количество слоев; например, 3 слоя в 300 нейронах каждый |
| cross_val = false | (логическое) | Использовать ли перекрестная проверка, а не набор тестовых испытаний |
| отсечение = 0,25 | (плавать) | Сумма отсева, чтобы применить к каждому слою |
| Activation = "Relu" | (Str) | Тип активации; Просто передает имя керу |
| Optimizer = "sgd" | (Str) | Тип алгоритма оптимизации; Просто передает имя керу |