## Dataset

You have access to two files:
- **train.csv**: Contains labeled examples with complete sentence mappings
- **test.csv**: Contains unlabeled examples where you must predict the correct option

`train.csv`:
- `sampleID`: Unique identifier for each essay
- `before`: Text preceding the gap (lorem ipsum in previews)
- `after`: Text following the gap (lorem ipsum in previews)
- `opt_0`, `opt_1`, `opt_2`, `opt_3`: Four candidate sentences to fill the gap
- `label`: Correct option index (0, 1, 2, or 3)

`test.csv`:
- `sampleID`: Unique identifier for each essay
- `before`: Text preceding the gap
- `after`: Text following the gap
- `opt_0`, `opt_1`, `opt_2`, `opt_3`: Four candidate sentences to choose from

## Evaluation
Submissions are evaluated using **F1 Score** (macro-averaged across all four classes):

$$F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$

Macro-averaging ensures each option class (0, 1, 2, 3) is weighted equally regardless of frequency in the test set.

## Submission
Submit a CSV file:

```
sampleID,answer
100,0
101,1
102,2
103,3
```

- `sampleID`: ID from test.csv
- `answer`: Predicted option index (0, 1, 2, or 3)

All test samples must be included with valid indices.