Estrutura da Biblioteca - aiboxlab/nlp GitHub Wiki
Essa página provê uma visão geral da arquitetura e organização da biblioteca.
Entidades
A biblioteca é construído com base nas seguintes entidades:
Estimator
: representa um algoritmo de ML que pode ser treinado em um conjunto de dados para geração de um modelo.FeatureExtractor
: extrator de características, recebe um texto como entrada e produz como saída o valor para as características calculadas.Vectorizer
: representa uma abordagem de vetorização, recebendo como entrada um texto (String) e produzindo como saída um vetor (NumPy, Tensorflow, PyTorch).Pipeline
: representa todas as etapas sequenciais para o treinamento e execução de um algoritmo de ML para resolução de um problema. Toda pipeline é composta por 3 partes:- Abordagem de Vetorização: define como o texto digital (String) é convertido para uma representação numérica (e.g., vetor de características, Embeddings, TF-IDF, etc).
- Algoritmo de ML: algoritmo propriamente utilizado para treinamento e obtenção do modelo (e.g., SVM, SVR, Redes Neurais, etc).
- Pós-processamento: pós-processamento necessários para resolver o problema em questão (e.g., restrição de valores, discretização, conversão de classes, etc).
Dataset
: representa um conjunto de textos e rótulos para atividades de classificação ou regressão.Metric
: representa uma métrica de avaliação que pode ser calculada recebendo como entrada os valores reais e os valores preditos por algum modelo.Experiment
: representa o processo de obtenção de um modelo que resolva classificação ou regressão. Um experimento é composto por uma ou mais pipelines que são treinadas e avaliadas (utilizando métricas) no conjunto de dados passado.- É possível definir manualmente as pipelines que serão testadas, bem como definir o dataset e conjunto de métricas de avaliação.
- Também é possível utilizar AutoML para obter o melhor modelo passando como entrada um dataset e um conjunto de métricas de avaliação.
Estrutura de Pacotes
aibox.nlp
: namespace da biblioteca. O prefixoaibox.
é utilizado como namespace package .core
: pacote com interfaces e classes abstratas das entidades.data
: pacote de dados.datasets
: sub-pacote com classes para manipulação de datasets para classificação ou regressão em Português.corpora
: sub-pacote com classes para manipulação de corpora em Português.
experiments
: pacote com implementação de classes de experimento e seus componentes.estimators
: pacote com implementação de estimadores para classificação e regressão.factory
: pacote com utilidades para construção de objetos da biblioteca através do padrão factory/builder.models
: pacote com implementação de pipelines, estimadores e vetorizadores pré-treinados para PLN em Português.estimators
: estimadores standalone; por exemplo um modelo de Coesão (SVR) que recebe como entrada features.pipelines
: pipelines completas para resolver uma tarefa; por exemplo o vetorizador (features seguido por scaler) + modelo de coesão (SVR) + pós-processamento (regressão -> classificação), que recebe como entrada o texto e produz como saída uma classe.vectorizer
: vetorizadores que precisam de algum treinamento; por exemplo, um BERT fine-tuned para textos educacionais em Português.
pipelines
: pacote que contém implementações de pipelines.features
: pacote que contém os extratores de características.lazy_loading
: pacote com utilidades para lazy loading de classes, módulos e afins.vectorizers
: pacote que contém os vetorizadores.metrics
: pacote com implementação de métricas.resources
: pacote com utilidades para recuperação de artefatos e modelos necessários para a biblioteca.