# tada-entity
[![Build Status](https://semaphoreci.com/api/v1/ahmad88me/tada-entity/branches/master/badge.svg)](https://semaphoreci.com/ahmad88me/tada-entity)
[![codecov](https://codecov.io/gh/oeg-upm/tada-entity/branch/master/graph/badge.svg)](https://codecov.io/gh/oeg-upm/tada-entity)
[![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/)
## Results
[results](docs/evaluation.md)
## Alpha analysis
To run alpha analysis
### T2Dv1
1. Generate the alpha ranges.
Original case
```
python -m experiments.wcv1_experiment experiments/wcv1_meta.csv ~/workspaces/Datasets/T2Dv1/tables_complete original alpha
```
Title case
```
python -m experiments.wcv1_experiment experiments/wcv1_meta.csv ~/workspaces/Datasets/T2Dv1/tables_complete title alpha
```
2. Generate mid alpha diagrams.
Title case
```
python -m experiments.alpha_analysis wc1_alpha_title_case.csv experiments/wcv1_meta.csv wcv1 --draw wcv1_alpha_mid_title --midalpha
```
Original case
```
python -m experiments.alpha_analysis wc1_alpha_original_case.csv experiments/wcv1_meta.csv wcv1 --draw wcv1_alpha_mid_original --midalpha
```
3. Generate from-to alpha diagrams.
Title case
```
python -m experiments.alpha_analysis wc1_alpha_title_case.csv experiments/wcv1_meta.csv wcv1 --draw wcv1_alpha_from_to_title
```
Original case.
```
python -m experiments.alpha_analysis wc1_alpha_original_case.csv experiments/wcv1_meta.csv wcv1 --draw wcv1_alpha_from_to_original
```
### T2Dv2
1. Generate alpha ranges
Original
```
python -m experiments.wcv2_experiment experiments/wcv2_meta.csv experiments/wcv2_subject_columns_gs.csv ~/workspaces/Datasets/T2Dv2/csv original alpha
```
Title
```
python -m experiments.wcv2_experiment experiments/wcv2_meta.csv experiments/wcv2_subject_columns_gs.csv ~/workspaces/Datasets/T2Dv2/csv title alpha
```
1. Generate mid alpha diagrams
Title case.
```
python -m experiments.alpha_analysis wc2_alpha_title_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_mid_title --midalpha
```
Original case.
```
python -m experiments.alpha_analysis wc2_alpha_original_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_mid_original --midalpha
```
3. Generate from-to alpha diagrams
Title case.
```
python -m experiments.alpha_analysis wc2_alpha_title_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_from_to_title
```
Original case.
```
python -m experiments.alpha_analysis wc2_alpha_original_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_from_to_original
```
### ST19R1
1. Generate alpha ranges
Original
```
python -m experiments.st19_r1_experiment ~/workspaces/Datasets/semtab2019/Round\ 1/gt/CTA_Round1_gt.csv ~/workspaces/Datasets/semtab2019/Round\ 1/tables original alpha
```
Title
```
python -m experiments.st19_r1_experiment ~/workspaces/Datasets/semtab2019/Round\ 1/gt/CTA_Round1_gt.csv ~/workspaces/Datasets/semtab2019/Round\ 1/tables title alpha
```
1. Generate mid alpha diagrams
Title case.
```
python -m experiments.alpha_analysis wc2_alpha_title_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_mid_title --midalpha
```
Original case.
```
python -m experiments.alpha_analysis wc2_alpha_original_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_mid_original --midalpha
```
3. Generate from-to alpha diagrams
Title case.
```
python -m experiments.alpha_analysis wc2_alpha_title_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_from_to_title
```
Original case.
```
python -m experiments.alpha_analysis wc2_alpha_original_case.csv experiments/wcv2_meta.csv wcv2 --draw wcv2_alpha_from_to_original
```
## Alpha k-fold evaluation
### T2Dv1
To run alpha evaluation
1. Generate scores file
Title case
```
python -m experiments.alpha_eval_k_fold --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --data_dir ~/workspaces/Datasets/T2Dv1/tables_complete --title true --dataset wcv1
```
Original case
```
python -m experiments.alpha_eval_k_fold --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --data_dir ~/workspaces/Datasets/T2Dv1/tables_complete --title false --dataset wcv1
```
2. Generate the diagrams
Title case
```
python -m experiments.alpha_eval_k_fold --draw wcv1_alpha_k_fold_scores --fscores wcv1_k_fold_alpha_title.csv --title true --dataset wcv1
```
Original case
```
python -m experiments.alpha_eval_k_fold --draw wcv1_alpha_k_fold_scores --fscores wcv1_k_fold_alpha_original.csv --title false --dataset wcv1
```
### T2Dv2
To run alpha evaluation
1. Generate scores file
Title case
```
python -m experiments.alpha_eval_k_fold --falpha wc2_alpha_title_case.csv --fmeta experiments/wcv2_meta.csv --data_dir ~/workspaces/Datasets/T2Dv2/csv --title true --dataset wcv2
```
Original case
```
python -m experiments.alpha_eval_k_fold --falpha wc2_alpha_original_case.csv --fmeta experiments/wcv2_meta.csv --data_dir ~/workspaces/Datasets/T2Dv2/csv --title false --dataset wcv2
```
2. Generate the diagrams
Title case
```
python -m experiments.alpha_eval_k_fold --draw wcv2_alpha_k_fold_scores --fscores wcv2_k_fold_alpha_title.csv --title true --dataset wcv2
```
Original case
```
python -m experiments.alpha_eval_k_fold --draw wcv2_alpha_k_fold_scores --fscores wcv2_k_fold_alpha_original.csv --title false --dataset wcv2
```
## One alpha for all
### T2Dv1
Title case
```
python -m experiments.alpha_eval_one --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_alpha_one_title
```
Original case
```
python -m experiments.alpha_eval_one --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_alpha_one_original
```
### T2Dv2
Title case
```
python -m experiments.alpha_eval_one --falpha wc2_alpha_title_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --draw wcv2_alpha_one_title
```
Original case
```
python -m experiments.alpha_eval_one --falpha wc2_alpha_original_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --draw wcv2_alpha_one_original
```
## Conditional (Input-Output) Pair of Parameters and Outcome
### T2Dv1
#### Max alpha voting method
Title case
```
python -m experiments.alpha_cond_pair --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_alpha_cond_pair_title --title_case title --data-path ~/workspaces/Datasets/T2Dv1/tables_complete
```
Original case
```
python -m experiments.alpha_cond_pair --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_alpha_cond_pair_original --title_case original --data-path ~/workspaces/Datasets/T2Dv1/tables_complete
```
#### Min alpha voting method
Title case
```
python -m experiments.alpha_cond_pair --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_alpha_cond_pair_title_min_vote --title_case title --data-path ~/workspaces/Datasets/T2Dv1/tables_complete --alpha-voting min
```
DEBUG
```
python -m experiments.alpha_cond_pair --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw test --title_case title --data-path ~/workspaces/Datasets/T2Dv1/tables_complete --alpha-voting min
--debug-class Journal
```
Original case
```
python -m experiments.alpha_cond_pair --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_alpha_cond_pair_original_min_vote --title_case original --data-path ~/workspaces/Datasets/T2Dv1/tables_complete --alpha-voting min
```
### T2Dv2
Title case
```
python -m experiments.alpha_cond_pair --falpha wc2_alpha_title_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --draw wcv2_alpha_cond_pair_title --title_case title --data-path ~/workspaces/Datasets/T2Dv2/csv --subject-col experiments/wcv2_subject_columns_gs.csv
```
Original case
```
python -m experiments.alpha_cond_pair --falpha wc2_alpha_original_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --draw wcv2_alpha_cond_pair_original --title_case original --data-path ~/workspaces/Datasets/T2Dv2/csv --subject-col experiments/wcv2_subject_columns_gs.csv
```
## Class k-fold error analysis
### Ranges
Check the mean and the median for the (mid) alpha ranges per fsid
#### T2Dv1
Title case
```
python -m experiments.analyse_errors_k_fold range --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1
```
Original case
```
python -m experiments.analyse_errors_k_fold range --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1
```
#### T2Dv2
Title case
```
python -m experiments.analyse_errors_k_fold range --falpha wc2_alpha_title_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --subject-col experiments/wcv2_subject_columns_gs.csv
```
Original case
```
python -m experiments.analyse_errors_k_fold range --falpha wc2_alpha_original_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --subject-col experiments/wcv2_subject_columns_gs.csv
```
### Diffs
Check the mean and the median for differences between the mean/median of the (mid) alphas for each
class and aggregated them per each fsid
#### T2Dv1
Title case
```
python -m experiments.analyse_errors_k_fold sd --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1
```
Original case
```
python -m experiments.analyse_errors_k_fold sd --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1
```
#### T2Dv2
Title case
```
python -m experiments.analyse_errors_k_fold sd --falpha wc2_alpha_title_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --subject-col experiments/wcv2_subject_columns_gs.csv
```
Original case
```
python -m experiments.analyse_errors_k_fold sd --falpha wc2_alpha_original_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --subject-col experiments/wcv2_subject_columns_gs.csv
```
### Compare One alpha
Compare the one computed alpha with the alpha of the files of that class
#### T2Dv1
Title case
```
python -m experiments.analyse_errors_k_fold one --falpha wc1_alpha_title_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_compare_one_alpha_title
```
Generate diagram
1. Manually copy the numbers to `wcv1_one_vs_cppo_title.csv`
2. Run the following command
```
python docs/generate_one_cppo_diagrams.py wcv1_one_vs_cppo_title.csv wcv1_one_vs_cppo_title
```
Original case
```
python -m experiments.analyse_errors_k_fold one --falpha wc1_alpha_original_case.csv --fmeta experiments/wcv1_meta.csv --dataset wcv1 --draw wcv1_compare_one_alpha_original
```
#### T2Dv2
Title case
```
python -m experiments.analyse_errors_k_fold one --falpha wc2_alpha_title_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --draw wcv2_compare_one_alpha_title
```
Original case
```
python -m experiments.analyse_errors_k_fold one --falpha wc2_alpha_original_case.csv --fmeta experiments/wcv2_meta.csv --dataset wcv2 --draw wcv2_compare_one_alpha_original
```
## Experiments
* alpha inc `0.001`
### WCv2
meta_fdir, sc_dir, data_dir
To run the experiment
`python -m experiments.wcv2_experiment `
meta dir: the path to the file which contains the file names and their classes
subject column dir: the path to the file which contains the subject column ids
data dir: the path to the folder which contain the csv files
```
python -m experiments.wcv2_experiment
```
### SemTab
#### Invalid
```
Round 1/tables/8286121_0_8471791395229161598.csv
Round 1/tables/71137051_0_8039724067857124984.csv
Round 1/tables/55004961_0_2904467548072189860.csv
Round 1/tables/8286121_0_8471791395229161598.csv
Round 1/tables/61121469_0_6337620713408906340.csv
Round 1/tables/55004961_0_2904467548072189860.csv
Round 1/tables/61121469_0_6337620713408906340.csv
Round 1/tables/55238374_0_3379409961751009152.csv
Round 1/tables/57943722_0_8666078014685775876.csv
Round 1/tables/55238374_0_3379409961751009152.csv
Round 1/tables/57943722_0_8666078014685775876.csv
```