Objetivos e Funcionalidades - aiboxlab/nlp GitHub Wiki
Essa página contém os objetivos e funcionalidades da biblioteca.
Stack de Desenvolvimento
Define quais tecnologias vamos utilizar para a criação da biblioteca.
Python 3.8+-> Python 3.10+;spaCy
(https://spacy.io/): implementação de características e modelos;PyTorch
(https://pytorch.org/): algoritmos envolvendo ANNs;tqdm
(https://github.com/tqdm/tqdm): logs de execução;apart: armazenamento de artefatos manipulados pela biblioteca-> versão simplificada doapart
emaibox.nlp.resources
;scikit-learn
: implementação de algoritmos de ML clássicos;transformers
: implementação de algoritmos DL;
Objetivos
Essa seção resume os principais objetivos da biblioteca.
Gerais
- Treinamento de modelos com interface simples (fit/train + predict);
- Criação de pipelines para o treinamento e avaliação de modelos;
- Pipelines pré-definidas/automáticas (AutoML) para determinadas tarefas de PLN;
- Permitir o cálculo de métricas de avaliação como parte da pipeline;
- Serialização de modelos treinados junto com suas especificações;
- Abrange problemas de classificação e regressão;
Específicos
Os objetivos abaixo especializam a biblioteca para o Português Brasileiro.
- Disponibilizar características para PLN considerando o Português Brasileiro;
- Disponibilizar modelos pré-treinados para PLN em Português;
- Disponibilizar corpus em Português para tarefas de PLN;
Desejáveis
Os objetivos abaixam são desejáveis para a biblioteca, todavia são secundários.
- Paralelismo e distribuição para execução da biblioteca;
- Reutilização de etapas da pipeline;
Funcionalidades
- Construir modelos clássicos para classificação/regressão através de uma interface unificada de treinamento e predição;
- Deve ser possível treinar o modelo através de um método (e.g.,
fit(...)
); - Deve ser possível realizar predições através de um método (e.g.,
predict(...)
); - Deve ser possível recuperar os hiper-parâmetros do modelo através de um método ou propriedade (e.g.,
get_params(...)
); - Deve ser possível salvar o modelo através de um método (e.g.,
save(...)
); - Deve ser possível carregar o modelo através de um método (e.g.,
load(...)
);
- Deve ser possível treinar o modelo através de um método (e.g.,
- Construir pipelines para classificação/regressão com as seguintes etapas: (i) pré-processamento; (ii) extração de características; (iii) execução do modelo; (iv) pós-processamento.
- Deve ser possível treinar a pipeline usando um método (e.g.,
fit(...)
); - Deve ser possível realizar predições usando um método (e.g.,
predict(...)
); - Deve ser possível salvar a pipeline através de um método (e.g.,
save(...)
); - Deve ser possível carregar uma pipeline através de um método (e.g.,
load(...)
); - Deve ser possível obter as configurações da pipeline através de um método (e.g,
get_params(...)
);
- Deve ser possível treinar a pipeline usando um método (e.g.,
- Extrair características através da biblioteca e agregar os resultados em um vetor de característica;
- Deve existir uma interface para extração de características;
- Deve existir uma funcionalidade para converter um conjunto de características em um vetor/dicionário;
- Utilizar modelos pré-treinados de PLN para português;
- Deve ser possível carregar esses modelos através de um método (e.g.,
load(...)
); - A interface deve ser a mesma para pipelines (e.g,
fit(...)
+predict(...)
);
- Deve ser possível carregar esses modelos através de um método (e.g.,
- Carregar corpus/datasets de PLN para o Português;
- Deve ser possível carregar os corpus/datasets através de um método (e.g.,
load(...)
); - Deve ser possível obter as colunas target e a coluna dos textos para datasets através de um método;
- Para datasets, deve ser possível realizar a conversão para um DataFrame;
- Para datasets, deve ser possível obter splits de treino e teste;
- Deve ser possível carregar os corpus/datasets através de um método (e.g.,
- Treinar modelos baseline para classificação/regressão passando como entrada um conjunto de dados (textos + target);
- Deve ser possível determinar as métricas de avaliação para os baselines;
- Deve ser possível escolher quais modelos serão treinados;
- Deve ser possível obter os resultados da execução, com um comparativo dos modelos e métricas obtidas;
- Deve ser possível acessar os modelos treinados;