| 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) | |