import streamlit as st from .services import SentimentAnalyzer from functools import lru_cache # @st.cache(allow_output_mutation=False, hash_funcs={Tokenizer: str}) @lru_cache(maxsize=1) 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)