Este pacote suporta uma arquitetura generalizada para identificação de idiomas ( tampa ) e identificação de dialetas ( DID ) usando um perceptron de várias camadas construído usando Keras. Também suporta um classificador SVM linear usando o Scikit-Learn.
Para carregar um modelo:
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 pega um STR contendo um balde S3 opcional para carregar o modelo. O nome do arquivo do modelo deve conter os prefixos necessários.
Depois que um modelo de tampa é carregado, ele possui as seguintes propriedades:
| Método | Descrição |
|---|---|
| Lid.N_Features | Número de recursos no modelo (ou seja, caixas de hash) |
| lid.n_classes | Número de idiomas no modelo |
| lid.lang_mappings | Dicionário de {"ISO_CODE": "Idioma_Name"} mapeamentos para todos os códigos ISO 639-3 |
| Lid.Langs | Lista de códigos ISO 639-3 para idiomas presentes no modelo atual |
Depois que um modelo DID é carregado, ele possui as seguintes propriedades:
| Método | Descrição |
|---|---|
| DID.N_FEATURES | Número de recursos na gramática usada para aprender o modelo |
| DId.n_classes | Número de países do modelo |
| DId.country_mappings | Dicionário de {"iso_code": "country_name"} mapeamentos para todos os códigos de país usados |
| DId.Countries | Lista de códigos de país para dialetos regionais (nível de país) presentes no modelo atual |
Os modelos carregados executam as seguintes tarefas:
| Método | Descrição |
|---|---|
| Lid.Predict (dados) | Leva uma variedade de cordas ou cordas individuais; Retorna a matriz de códigos de linguagem previstos |
| DId.Predict (dados) | Leva uma variedade de cordas ou cordas individuais; Retorna a variedade de códigos de país previstos |
Nota: Os nomes de arquivos do modelo precisam incluir ".did"/". Tampa" e ".mlp"/"svm" porque essas informações são usadas para determinar o tipo de modelo!
Para treinar novos modelos, os dados de treinamento precisam ser preparados. Este processo é automatizado; Consulte os diretórios Data_DID e Data_LID para obter instruções e scripts.
from idNet import idNet_Train
id = idNet_train()
| Argumento | Tipo | Descrição |
|---|---|---|
| tipo | (STR) | Se deve trabalhar com a identificação de idioma ou dialeta |
| entrada | (STR) | Caminho para a pasta de entrada |
| saída | (STR) | Pasta de caminho para saída |
| s3 = false | (booleano) | Se verdadeiro, use o BOTO3 para interagir com o balde S3 |
| s3_bucket = "" | (STR) | Nome do balde S3 como string |
| apelido = "idioma" | (STR) | O apelido para salvar / carregar modelos |
| divide_data = true | (booleano) | Se for verdade, rasteje para o conjunto de dados; Se false, basta carregar |
| test_samples = 20 | (int) | O número de arquivos para cada classe usar para testar |
| limiar = 100 | (int) | Número de arquivos necessários antes que o idioma/país seja incluído no modelo |
| amostras_per_epoch = 5 | (int) | Número de amostras a serem usadas por época de treinamento |
| idioma = "" | (STR) | Para DID, especifica o idioma do modelo atual |
| lid_sample_size = 200 | (int) | Para a tampa, o número de caracteres a permitir por amostra |
| did_sample_size = 1 | (int) | Para o DID, o número de 100 amostras de palavras para combinar |
| Preannotate_cxg = false | (booleano) | Pois, se o verdadeiro enriquecer e salve todos os vetores CXG |
| pré -notated_cxg = false | (booleano) | Pois, se True basta carregar vetores CXG pré-enriquecidos |
| cxg_workers = 1 | (int) | Pois, se o conjunto de dados pré-enriquecendo, número de trabalhadores para usar |
| Class_Constraints = [] | (Lista de STRs) | Opção para restringir o número de classes |
| merge_dict = {} | (dicto) | ORIGINAL: Novas teclas de nome |
id.train()
| Argumento | Tipo | Descrição |
|---|---|---|
| Model_type = "MLP" | (STR) | MLP ou SVM |
| Lid_Features = 524288 | (int) | Número de recursos de N-Gram de caracteres a serem permitidos, apenas hash |
| lid_ngrams = (1,3) | (tupla de ints) | Faixa de n-gramas ao hash |
| DID_GRAMmar = ".grammar.p" | (STR) | Nome da gramática C2XG para usar para anotação |
| c2xg_workers = 1 | (int) | Para DID, número de trabalhadores para enriquecimentos de C2XG |
| mlp_sizes = (300, 300, 300) | (tupla de ints) | Tamanho e número de camadas; por exemplo, 3 camadas em 300 neurônios cada |
| cruz_val = false | (booleano) | Se deve usar validação cruzada em vez de um conjunto de testes de manutenção |
| abandono = 0,25 | (flutuador) | A quantidade de abandono para se aplicar a cada camada |
| ativação = "relu" | (STR) | O tipo de ativação; Apenas passa o nome para Keras |
| otimizer = "sgd" | (STR) | O tipo de algoritmo de otimização; Apenas passa o nome para Keras |