ARIA-地标识别
该项目存储用于评估在 Web 应用程序中自动识别 ARIA-Landmarks 的方法的脚本。该方法基于 DOM 元素分类和聚类,用于识别成为 ARIA 地标的概率最高的元素。
该项目是用 Python 实现的,并提供了一个 Dockerfile,用于生成能够运行脚本的 Docker 映像。
该项目的主文件 (main.py) 执行多个活动来识别 ARIA-Landmarks。接下来描述这些活动及其输入/输出资源:
- 分类器训练 (pipeline.cross_validation.fit_classifier) :使用训练数据集 (./data/training.classified.csv) 训练分类器(SVM、KNN、DT 或 RF),并将生成的提取器和分类器 pickled 文件保存在 ;/results 中/分类器文件夹。该脚本还运行 10 倍 CV,为分类器生成准确性报告。
- 合并 CV 报告 (pipeline.merge_cv_reports.merge_reports) :将先前活动中生成的 CV 准确性报告合并到单个电子表格中以进行分析 (./results/accuracy.xlsx)。该文件包含考虑每个类别的 F1-Score/Precision 和 Recall、平均宏和加权平均值的准确性报告。该电子表格还显示了分类模型的每个特征用于组成提取器/分类器对的频率。
- 对测试数据集进行分类 (pipeline.classify_test_dataset) :使用拟合的 RF 提取器/分类器 (./results/classifier) 对测试数据集 (./data/test/) 中的可用样本进行分类。测试数据集由从不同 Web 应用程序的元素中提取的数据组成。此活动的结果存储在 ./resutls/test 文件夹中。
- 聚类测试数据集预测 (pipeline.clustering_rows.cluster_rows) :根据类名和位置/大小特征对测试数据集分类的结果进行聚类。对于每个簇,仅报告成为 ARIA 地标的概率最高的元素。此活动的结果存储在 ./results/clusters 文件夹中。
- 生成图像报告 (pipeline.image_report.generate_reports) :为上一个活动中识别的 ARIA 地标(./results/clusters 文件夹)和相应 Web 应用程序的屏幕截图(./data/screenshots 文件夹)生成图像报告。为之前活动中识别的每个 ARIA 地标生成图像报告,并将其存储在 ./results/image-reports 文件夹中。