File size: 1,669 Bytes
19cef65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6d33199
19cef65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from dataclasses import dataclass
import pandas as pd


@dataclass
class ColumnContent:
    name: str
    type: str
    displayed_by_default: bool
    hidden: bool = False


def fields(raw_class):
    return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"]


@dataclass(frozen=True)
class AutoEvalColumn:  # Auto evals column
    model = ColumnContent("Models", "markdown", True)
    re2text_easy = ColumnContent("Re2Text-Easy", "number", True)
    text2re_easy = ColumnContent("Text2Re-Easy", "number", True)
    re2text_hard = ColumnContent("Re2Text-Hard", "number", True)
    text2re_hard = ColumnContent("Text2Re-Hard", "number", True)
    avg = ColumnContent("Avg", "number", True)
    model_size = ColumnContent("Model Size", "markdown", True)

    link = ColumnContent("Links", "str", False)


def model_hyperlink(link, model_name):
    return f'<a target="_blank" href="{link}" style="color: var(--link-text-color); text-decoration: underline;text-decoration-style: dotted;">{model_name}</a>'


def make_clickable_names(df):
    df["Models"] = df.apply(
        lambda row: model_hyperlink(row["Links"], row["Models"]), axis=1
    )
    return df


def make_plot_data(df, task):
    c = []
    x = []
    y = []

    for i in df.index:
        c.append(df.loc[i, "pure_name"])
        x.append(f"{task}-Easy")
        y.append(df.loc[i, f"{task}-Easy"])

        c.append(df.loc[i, "pure_name"])
        x.append(f"{task}-Hard")
        y.append(df.loc[i, f"{task}-Hard"])

    data = pd.DataFrame(
        {
            "Symbol": c,
            "Setting": x,
            "Accuracy": y,
        }
    )

    return data