import streamlit as st from streamlit import session_state from random import choice from annotated_text import annotated_text from resources import * from helpers import * if "counter" not in session_state: session_state.counter = 0 if "augment" not in session_state: session_state.augment = False base_model = "xlnet-base-cased" sentences = load_sentences() baseline_classifier = load_model(f"Dagobert42/{base_model}-biored-finetuned") augmented_classifier = load_model(f"Dagobert42/{base_model}-biored-augmented-super") st.title("Semantic Frame Augmentation") st.subheader("Analysing challenging domains with only a handful of examples") st.write(f"""This space uses models based on [XLNet](https://huggingface.co/xlnet-base-cased) to identify medical entities in a text. The following is a random sentence from [bigbio/biored](https://huggingface.co/datasets/bigbio/biored). It was tagged by a model which was trained on just 200 examples from the original dataset. It is very possible that there are some mistakes. """) txt = sentences[session_state.counter] st.write("Example with data augmentation:" if session_state.augment else "Example without data augmentation:") tokens = augmented_classifier(txt) if session_state.augment else baseline_classifier(txt) annotated_text(annotate_sentence(txt, tokens)) st.write(annotate_sentence(txt, tokens)) st.write("Now try the augmented model. Hopefully it's a bit better :)") def refresh_model(): session_state.augment = not session_state.augment st.toggle("augmentations on" if session_state.augment else "augmentations off", session_state.augment, on_change=refresh_model) st.write("Or load another sentence") def refresh_example(): session_state.counter += 1 st.button( ":twisted_rightwards_arrows:", on_click=refresh_example)