iwonachristop's picture
Update descriptions
8b5f20b
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()