commit c82e284c00e85275181f14259dda076fd844b902
parent 6dfb0f1474a4e155093ea374865e5005c3e22bfe
Author: Sondre Wold <sondrewold1@gmail.com>
Date: Wed, 24 Sep 2025 16:43:04 +0200
add class to results
Diffstat:
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/experiment.py b/experiment.py
@@ -52,6 +52,7 @@ class Point(NamedTuple):
phrase_b_embedded: torch.Tensor
context_ac_embedded: torch.Tensor
context_bc_embedded: torch.Tensor
+ comp_class: str
class ResultObject(NamedTuple):
@@ -63,6 +64,7 @@ class ResultObject(NamedTuple):
class SentencePairs(NamedTuple):
sentence_A: list[str]
sentence_B: list[str]
+ classes: list[str]
def normalize_v2():
@@ -543,7 +545,7 @@ class Experiment:
self.phrase_b_length: list[int] = []
def run_experiment(self) -> None:
- for i, (sentence_a, sentence_b) in enumerate(tqdm.tqdm(zip(*self.sentence_pairs))):
+ for i, (sentence_a, sentence_b, cls) in enumerate(tqdm.tqdm(zip(*self.sentence_pairs))):
diffs: list[str] | None = find_diff(sentence_a, sentence_b)
if not diffs:
self.diff_errors += 1
@@ -611,6 +613,7 @@ class Experiment:
phrase_b_embedded=phrase_b_embedded,
context_ac_embedded=a_in_context_embedded,
context_bc_embedded=b_in_context_embedded,
+ comp_class=cls
)
)
@@ -647,7 +650,7 @@ def main() -> None:
synonym_sentence: list[str] = df[
"synonym both"
].values.tolist() # Both the modifier and the noun are swapped with synonyms from word net.
-
+
sentence_A: list[str] = original_sentence
sentence_B: list[str] = synonym_sentence
@@ -675,7 +678,11 @@ def main() -> None:
else:
raise ValueError("Undefined dataset type...")
- sentence_pairs = SentencePairs(sentence_A=sentence_A, sentence_B=sentence_B)
+ clss: list[str] = df[
+ "class"
+ ].values.tolist() # The comp. classes
+
+ sentence_pairs = SentencePairs(sentence_A=sentence_A, sentence_B=sentence_B, classes=clss)
models = (
[args.model] if args.model is not None else list(ModelFactory._factory.keys())
diff --git a/get_epsilon.py b/get_epsilon.py
@@ -91,6 +91,7 @@ def main() -> None:
"divisive": [],
"additive": [],
"simscores": [],
+ "classes": [],
}
for raw_file in raw_files:
with open(raw_file, "rb") as file:
@@ -104,6 +105,7 @@ def main() -> None:
context_sims: numpy.ndarray = numpy.array(
[point.contextualized_similarity for point in points]
)
+ classes = [point.comp_class for point in points]
ac_embedded: list[torch.Tensor] = [torch.Tensor(point.context_ac_embedded) for point in points]
bc_embedded: list[torch.Tensor] = [torch.Tensor(point.context_bc_embedded) for point in points]
tmp_result: dict[str, list[float]] = get_epsilons(word_sims, context_sims)
@@ -131,6 +133,7 @@ def main() -> None:
final_result["original"].append(final_original)
final_result["divisive"].append(final_division)
final_result["additive"].append(final_additive)
+ final_result["classes"] = classes
# df: pandas.DataFrame = pandas.DataFrame.from_dict(final_result)
# df.to_csv(args.result_path, sep=",", index=False)