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 資料夾中。