epsilon-compositionality

Code for our paper Measuring Idiomaticity in Text Embedding Models with 𝜀-compositionality
git clone https://esimon.eu/repos/epsilon-compositionality.git
Log | Files | Refs | Submodules | README

commit 5593640d6ab0e33f157352ad6fd72e1a99bc3fe4
parent fb0d5df815b6bf7e18d882800a63e92f6811495b
Author: Étienne Simon <esimon@esimon.eu>
Date:   Mon,  6 Oct 2025 15:23:25 +0200

add extended head-modifier table

Diffstat:
Mepsilon_compositionality/compute_statistics.py | 15+++++++++++++++
1 file changed, 15 insertions(+), 0 deletions(-)

diff --git a/epsilon_compositionality/compute_statistics.py b/epsilon_compositionality/compute_statistics.py @@ -142,11 +142,26 @@ def write_violins(output_path: pathlib.Path) -> None: print("", file=output) +def latex_extended_statistics_table(output_path: pathlib.Path, models: dict[str, Any]) -> None: + with output_path.open("w") as output: + for model_name in MODELS_ORDER: + for isubmodel, submodel in enumerate(MODELS_SUB_ORDER if model_name in MODELS_HAS_SUB else [""]): + print(f"{model_name if isubmodel==0 else '':<10}", end=" & ", file=output) + print(f"{submodel:<6}", end=" & ", file=output) + model_key: str = f"{model_name}-{submodel}" if submodel else model_name + for isubset, subset in enumerate(CLASSES_ORDER): + for iside, side in enumerate(["modifier", "head"]): + positives = models[model_key][subset][side]["positives"] + negatives = models[model_key][subset][side]["negatives"] + print(table_cell(positives, negatives, "rank biserial"), end=" & " if isubset<len(CLASSES_ORDER)-1 or iside==0 else " \\\\\n", file=output) + + def main() -> None: models = read_similarities("multiplicative") RESULTS_PATH.mkdir(exist_ok=True) latex_data_statistics(RESULTS_PATH / "data statistics.tex") latex_main_statistics_table(RESULTS_PATH / "main statistics.tex", models) + latex_extended_statistics_table(RESULTS_PATH / "extended statistics.tex", models) latex_distances_statistics(RESULTS_PATH / "distances statistics.tex") write_violins(RESULTS_PATH / "violins.dat")