-
Notifications
You must be signed in to change notification settings - Fork 0
/
group_stats.py
44 lines (37 loc) · 1.28 KB
/
group_stats.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Copyright (c) 2022, Yamagishi Laboratory, National Institute of Informatics
# Author: Canasai Kruengkrai (canasai@nii.ac.jp)
# All rights reserved.
import numpy as np
import pandas as pd
import sys
from processors import (
FactVerificationProcessor,
load_gold_labels_with_neg,
)
def main():
gold_labels, claim_has_negation = load_gold_labels_with_neg(sys.argv[1])
df = pd.DataFrame(
{
"y_true": gold_labels,
"claim_has_negation": claim_has_negation,
}
)
n_all = len(df)
no_neg = np.sum(df["claim_has_negation"] == 0)
neg = np.sum(df["claim_has_negation"] == 1)
assert n_all == no_neg + neg
for label in FactVerificationProcessor().get_labels():
no_neg_given_cls = len(
df[(df["claim_has_negation"] == 0) & (df["y_true"] == label)]
)
neg_given_cls = len(
df[(df["claim_has_negation"] == 1) & (df["y_true"] == label)]
)
n_cls = np.sum(df["y_true"] == label)
assert n_cls == no_neg_given_cls + neg_given_cls
print(
f"{label} & {no_neg_given_cls} ({no_neg_given_cls/no_neg*100:.1f}) "
+ f"& {neg_given_cls} ({neg_given_cls/neg*100:.1f}) & {n_cls} ({n_cls/n_all*100:.1f})"
)
if __name__ == "__main__":
main()