Spaces:
Sleeping
Sleeping
File size: 6,208 Bytes
17b190b 9cd3569 17b190b 3de0d0d 7887230 17b190b 79051ee 17b190b 8b5f20b 4f08cdd 3de0d0d 8b5f20b 3de0d0d 8b5f20b c6f0f77 7887230 8b5f20b 3de0d0d 8b5f20b c6f0f77 7887230 8b5f20b 3de0d0d 8b5f20b c6f0f77 8b5f20b 3de0d0d c6f0f77 3de0d0d 9cd3569 3de0d0d 04191fb 9cd3569 8b5f20b 3de0d0d 9cd3569 3de0d0d 9cd3569 3de0d0d 9cd3569 17b190b |
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
import gradio as gr
import pandas as pd
from src.process_data import *
CITATION_TEXT = open(f"pages/citation.bib", "r").read()
languages = ["All", "Bengali", "English", "French", "German", "Italian", "Polish", "Russian", "Spanish"]
datasets = ["All", "CaFE", "CREMA-D", "EMNS", "Emozionalmente", "eNTERFACE", "JL-Corpus", "MESD", "nEMO", "Oreau", "PAVOQUE", "RAVDESS", "RESD", "SUBESCO"]
emotions = [
"All", "anger", "anxiety", "apology", "assertiveness",
"calm", "concern", "disgust", "encouragement", "enthusiasm",
"excitement", "fear", "happiness", "neutral", "poker",
"sadness", "sarcasm", "surprise",
]
metric = ["f1_macro", "accuracy", "weighted_f1"]
def app():
with gr.Blocks(theme=gr.themes.Soft(primary_hue="pink", secondary_hue="purple")) as demo:
gr.Markdown(open("pages/header.md", "r").read(), container=True)
with gr.Tabs():
with gr.Tab("π Leaderboard", elem_classes='tab-item'):
with gr.Tab("Overall Results", elem_classes='tab-item'):
gr.Markdown(open("pages/overall-results.md", "r").read(), elem_classes='tab-item', container=True)
overall_table = gr.Dataframe(show_row_numbers=True, pinned_columns=2)
with gr.Tab("Results per Language", elem_classes='tab-item'):
gr.Markdown(open("pages/results-per-language.md", "r").read(), elem_classes='tab-item', container=True)
languages_filter = gr.CheckboxGroup(choices=languages, label="Select columns", value=languages)
select_lang_metric = gr.Radio(metric, value='f1_macro', label="Select metric")
lang_table = gr.Dataframe(show_row_numbers=True, pinned_columns=2)
with gr.Tab("Results per Dataset", elem_classes='tab-item'):
gr.Markdown(open("pages/results-per-dataset.md", "r").read(), elem_classes='tab-item', container=True)
dataset_filter = gr.CheckboxGroup(choices=datasets, label="Select columns", value=datasets)
select_ds_metric = gr.Radio(metric, value='f1_macro', label="Select metric")
dataset_table = gr.Dataframe(show_row_numbers=True, pinned_columns=2)
with gr.Tab("Results per Emotion", elem_classes='tab-item'):
gr.Markdown(open("pages/results-per-emotion.md", "r").read(), elem_classes='tab-item', container=True)
emo_filter = gr.CheckboxGroup(choices=emotions, label="Select columns", value=emotions)
emotion_table = gr.Dataframe(show_row_numbers=True, pinned_columns=2)
df_state = gr.State()
def update_leaderboards(languages=[], datasets=[], emotions=[], select_lang_metric="f1_macro", select_ds_metric="f1_macro"):
df = pd.read_json("results.jsonl", lines=True)
lang_dict = build_lang_dict(df)
ds_dict = build_ds_dict(df)
emo_dict = build_emo_dict(df)
overall = overall_leaderboard(df)
by_lang = leaderboard_per_group(lang_dict, languages, metric=select_lang_metric)
by_dataset = leaderboard_per_group(ds_dict, datasets, metric=select_ds_metric)
by_emotion = leaderboard_per_group(emo_dict, emotions)
return overall, by_lang, by_dataset, by_emotion, "Loaded successfully."
demo.load(
update_leaderboards,
inputs=[languages_filter, dataset_filter, emo_filter],
outputs=[overall_table, lang_table, dataset_table, emotion_table, df_state]
)
def on_change(selected_languages, selected_lang_metric, selected_datasets, selected_ds_metric, selected_emotions):
return update_leaderboards(languages=selected_languages, select_lang_metric=selected_lang_metric, datasets=selected_datasets, select_ds_metric=selected_ds_metric, emotions=selected_emotions)
languages_filter.change(on_change, [languages_filter, select_lang_metric, dataset_filter, select_ds_metric, emo_filter],
[overall_table, lang_table, dataset_table, emotion_table])
select_lang_metric.change(on_change, [languages_filter, select_lang_metric, dataset_filter, select_ds_metric, emo_filter],
[overall_table, lang_table, dataset_table, emotion_table])
dataset_filter.change(on_change, [languages_filter, select_lang_metric, dataset_filter, select_ds_metric, emo_filter],
[overall_table, lang_table, dataset_table, emotion_table])
select_ds_metric.change(on_change, [languages_filter, select_lang_metric, dataset_filter, select_ds_metric, emo_filter],
[overall_table, lang_table, dataset_table, emotion_table])
emo_filter.change(on_change, [languages_filter, select_lang_metric, dataset_filter, select_ds_metric, emo_filter],
[overall_table, lang_table, dataset_table, emotion_table])
with gr.Tab("π About", elem_classes='tab-item'):
gr.Markdown(open("pages/about.md", "r").read(), elem_classes='tab-item')
with gr.Tab("π’ Evaluate your model", elem_classes='tab-item'):
gr.Markdown(open("pages/evaluate.md", "r").read(), elem_classes='tab-item')
with gr.Tab("π¬ Submit here!", elem_classes='tab-item'):
gr.Markdown(open("pages/submit.md", "r").read(), elem_classes='tab-item')
with gr.Column():
with gr.Accordion("π Citation", open=False, elem_classes='tab-item'):
citation_button = gr.Textbox(
label="",
value=CITATION_TEXT,
lines=20,
elem_id="citation-button",
show_copy_button=True,
)
return demo
if __name__ == "__main__":
demo = app()
demo.launch() |