import streamlit as st | |
from .services import SentimentAnalyzer | |
from functools import lru_cache | |
# @st.cache(allow_output_mutation=False, hash_funcs={Tokenizer: str}) | |
def load_text_generator(): | |
predictor = SentimentAnalyzer() | |
return predictor | |
predictor = load_text_generator() | |
def write(): | |
st.markdown( | |
""" | |
# Arabic Sentiment Analysis | |
""" | |
) | |
input_text = st.text_input( | |
"Enter your text here:", | |
) | |
if st.button("Predict"): | |
with st.spinner("Predicting..."): | |
prediction, score, all_score = predictor.predict([input_text]) | |
st.write(f"Result: {prediction[0]}") | |
detailed_score = { | |
"Positive": all_score[0][0], | |
"Neutral": all_score[0][1], | |
"Negative": all_score[0][2], | |
} | |
st.write("All scores:") | |
st.write(detailed_score) | |