Identificação de marcos ARIA
Este projeto armazena scripts para avaliação de uma abordagem para identificação automática de ARIA-Landmarks em aplicações web. A abordagem é baseada na classificação e agrupamento de elementos DOM para identificar elementos com maior probabilidade de serem marcos ARIA.
O projeto foi implementado em Python e apresenta um Dockerfile para geração de uma imagem Docker capaz de executar os scripts.
O arquivo principal do projeto (main.py) executa diversas atividades para realização da identificação de ARIA-Landmarks. As atividades e seus recursos de entrada/saída são descritos a seguir:
- Treinamento do classificador (pipeline.cross_validation.fit_classifier) : treina um classificador (SVM, KNN, DT ou RF) usando o conjunto de dados de treinamento (./data/training.classified.csv) e salva o extrator gerado e os arquivos em conserva do classificador em ;/resultados /classificador pasta. Os scripts também executam CV 10 vezes para gerar relatórios de precisão para o classificador.
- Mesclar relatórios de CV (pipeline.merge_cv_reports.merge_reports) : mescla os relatórios de precisão de CV gerados na atividade anterior em uma única planilha para análise (./results/accuracy.xlsx). Este arquivo contém relatórios de precisão considerando F1-Score/Precisão e Recall para cada classe, macro média e valores médios ponderados. A planilha também apresenta a frequência com que cada característica dos modelos de classificação foi utilizada para compor o par extrator/classificador.
- Classificar conjunto de dados de teste (pipeline.classify_test_dataset) : usa o extrator/classificador de RF ajustado (./results/classifier) para classificar as amostras disponíveis no conjunto de dados de teste (./data/test/). O conjunto de dados de teste é composto por dados extraídos de elementos de diferentes aplicações web. Os resultados desta atividade são armazenados na pasta ./resutls/test.
- Clustering de previsões de conjuntos de dados de teste (pipeline.clustering_rows.cluster_rows) : agrupa os resultados da classificação do conjunto de dados de teste de acordo com sua denominação de classe e recursos de posição/tamanho. Para cada cluster, apenas o elemento com maior probabilidade de ser um marco ARIA é relatado. Os resultados desta atividade são armazenados na pasta ./results/clusters.
- Geração de relatórios de imagem (pipeline.image_report.generate_reports) : gera relatórios de imagem para os marcos ARIA identificados na atividade anterior (pasta ./results/clusters) e as capturas de tela das respectivas aplicações web (pasta ./data/screenshots). Relatórios de imagens são gerados para cada ponto de referência ARIA identificado nas atividades anteriores e são armazenados na pasta ./results/image-reports.