134 lines
2.5 KiB
Markdown
134 lines
2.5 KiB
Markdown
# PPT → HTML Evaluation Benchmark
|
|
|
|
이 프로젝트는 **input PPTX**와 **변환된 HTML(Output)** 간의
|
|
텍스트 / 레이아웃 / 시각적 유사도를 평가하는 로컬 평가 도구입니다.
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- Python 3.10+
|
|
- pip (Windows 환경 기준)
|
|
- 필요한 패키지는 requirements.txt로 설치
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
pip install beautifulsoup4
|
|
```
|
|
|
|
---
|
|
|
|
## How to Run
|
|
|
|
### 1) Set PYTHONPATH
|
|
|
|
```bash
|
|
set PYTHONPATH=src
|
|
```
|
|
|
|
---
|
|
|
|
### 2) Prepare Sample List
|
|
|
|
`data/raw/samples.csv` 파일 예:
|
|
|
|
```
|
|
id,pptx_path,html_path
|
|
input_vs_v1,data/raw/pptx/input.pptx,data/raw/html/output_001.html
|
|
input_vs_v2,data/raw/pptx/input.pptx,data/raw/html/output_002.html
|
|
```
|
|
|
|
---
|
|
|
|
### 3) Preprocess
|
|
|
|
```bash
|
|
python -m eval_ppt2html.cli preprocess data/raw/samples.csv --work-dir data
|
|
```
|
|
|
|
---
|
|
|
|
### 4) Compute Metrics
|
|
|
|
```bash
|
|
python -m eval_ppt2html.cli metrics data/processed/json --output-csv data/reports/metrics.csv
|
|
```
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
ppt2html-eval-benchmark/
|
|
src/eval_ppt2html/
|
|
cli.py
|
|
models.py
|
|
preprocess/
|
|
metrics/
|
|
captions/
|
|
utils/
|
|
data/
|
|
raw/
|
|
processed/
|
|
reports/
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Metrics
|
|
|
|
- Text BLEU-like
|
|
- Text Length Ratio
|
|
- Layout IoU
|
|
- Final Score (0~100)
|
|
|
|
------
|
|
|
|
## Expected Evaluation Output (예상 평가 결과)
|
|
|
|
아래는 본 평가 도구를 실행했을 때 생성되는
|
|
`data/reports/metrics.csv`의 **예상 출력 예시**입니다.
|
|
|
|
### 평가 결과 예시
|
|
| sample_id | text_bleu | text_length_ratio | layout_iou | ssim | final_score |
|
|
|---------------|-----------|-------------------|-------------|------|--------------|
|
|
| input_vs_v1 | 82.3 | 0.97 | 0.71 | 0.00 | 78.1 |
|
|
| input_vs_v2 | 76.4 | 1.05 | 0.62 | 0.00 | 72.0 |
|
|
|
|
---
|
|
|
|
### 컬럼 설명
|
|
|
|
| 컬럼명 | 설명 |
|
|
|--------|------|
|
|
| **sample_id** | 비교한 샘플 이름 (input vs output) |
|
|
| **text_bleu** | 텍스트 유사도 (BLEU-like, 0~100) |
|
|
| **text_length_ratio** | 텍스트 길이 비율 (1.0에 가까울수록 유사) |
|
|
| **layout_iou** | 레이아웃 IoU 평균값 (0~1) |
|
|
| **ssim** | 이미지 SSIM (현재 0으로 표시됨 — 동적 분석 미사용) |
|
|
| **final_score** | 가중치 기반 종합 점수 (0~100) |
|
|
|
|
---
|
|
|
|
### Final Score 계산식
|
|
|
|
```(yaml)
|
|
final_score = (
|
|
0.4 * (text_bleu / 100)
|
|
|
|
0.3 * layout_iou
|
|
|
|
0.3 * ssim
|
|
) * 100
|
|
```
|
|
|
|
|
|
### 해석 예시
|
|
|
|
- `input_vs_v1` 의 종합 점수 78.1
|
|
- `input_vs_v2` 의 종합 점수 72.0
|
|
|
|
→ *input_vs_v1(output_001.html)이 원본 PPT와 더 유사함을 의미.*
|
|
|
|
|