Mask / app.py
Simon Salmon
Update app.py
ea909ce
import streamlit as st
from huggingface_hub import InferenceApi
import pandas as pd
from transformers import pipeline
STYLE = """
<style>
img {
max-width: 100%;
}
th {
text-align: left!important
}
td {
font-size:
}
</style>
"""
MASK_TOKEN = "<mask>"
EMOJI_MAP = {
"anger": "๐Ÿ˜ก",
"fear": "๐Ÿ˜ฑ",
"happy": "๐Ÿ˜„",
"love": "๐Ÿ˜",
"sadness": "๐Ÿ˜ญ",
"positive": "๐Ÿค—",
"negative": "๐Ÿ˜ค",
"neutral": "๐Ÿ˜",
}
def display_table(df: pd.DataFrame, subheader: str):
st.subheader(subheader)
st.table(df)
def setup():
st.markdown(STYLE, unsafe_allow_html=True)
st.markdown(
"""
# ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian RoBERTa Base
Demo Powered by [Indonesian RoBERTa Base](https://huggingface.co/flax-community/indonesian-roberta-base).
"""
)
st.sidebar.subheader("Settings")
def main():
setup()
analyze = st.sidebar.selectbox(
"What should we analyze?",
("Emotion", "Sentiment"),
help="Classifier model to choose for text analysis",
)
user_input = st.text_input(
f"Insert a sentence to predict with a {MASK_TOKEN} token // Masukkan kalimat untuk diisi dengan token {MASK_TOKEN}",
value=f"Gila! Hari ini aku {MASK_TOKEN} banget..",
)
mlm_model = "BigSalmon/BestMask2"
mask_api = InferenceApi(mlm_model)
if len(user_input) > 0:
try:
user_input.index(MASK_TOKEN)
except ValueError:
st.error(
f"Please enter a sentence with the correct {MASK_TOKEN} token // Harap masukkan kalimat dengan token {MASK_TOKEN} yang benar"
)
else:
# render masked language modeling table
mlm_result = mask_api(inputs=user_input)
if mlm_result == None:
st.write("Model is loading. Please try again later...")
return
mlm_df = pd.DataFrame(mlm_result)
mlm_df.drop(columns=["token", "token_str"], inplace=True)
mlm_df_styled = mlm_df.copy(deep=False)
mlm_df_styled = mlm_df_styled.style.set_properties(
subset=["sequence", "score"], **{"text-align": "left"}
)
display_table(mlm_df_styled, "๐ŸŽˆ Top 5 Predictions")
if __name__ == "__main__":
main()