import gradio as gr from transformers import pipeline import os HF_TOKEN = os.getenv('HF_TOKEN') hf_writer = gr.HuggingFaceDatasetSaver(HF_TOKEN, "crowdsourced-sentiment") def sentiment_analysis_generate_text(text): # Define the model model_name = "gsar78/HellenicSentimentAI" # Create the pipeline nlp = pipeline("sentiment-analysis", model=model_name) # Split the input text into individual sentences sentences = text.split('|') # Run the pipeline on each sentence and collect the results results = nlp(sentences) output = [] for sentence, result in zip(sentences, results): output.append(f"Text: {sentence.strip()}\nSentiment: {result['label']}, Score: {result['score']:.4f}\n") # Join the results into a single string to return return "\n".join(output) def sentiment_analysis_generate_table(text): # Define the model model_name = "gsar78/HellenicSentimentAI" # Create the pipeline nlp = pipeline("sentiment-analysis", model=model_name) # Split the input text into individual sentences sentences = text.split('|') # Generate the HTML table with enhanced colors and bold headers html = """ """ for sentence in sentences: result = nlp(sentence.strip())[0] text = sentence.strip() score = f"{result['score']:.4f}" sentiment = result['label'] # Determine the sentiment class if sentiment.lower() == "positive": sentiment_class = "positive" elif sentiment.lower() == "negative": sentiment_class = "negative" else: sentiment_class = "neutral" # Generate table rows html += f'' html += """
Text Score Sentiment
{text}{score}{sentiment}
""" return html if __name__ == "__main__": iface = gr.Interface( fn=sentiment_analysis_generate_table, inputs=gr.Textbox(placeholder="Enter sentence here..."), outputs=gr.HTML(), title="Hellenic Sentiment AI", description="A sentiment analysis model, primarily for the Greek language.
" "Type in some text to see its sentiment classification: positive, neutral, or negative.
" "Multiple sentences can be classified when separated by the | character.
" "For Emotion & Sentiment Classification visit Version 2.0: Hellenic Sentiment AI v2
" "Version 1.1 - Developed by GeoSar", examples=[ ["Η πικάντικη γεύση αυτής της σούπας λαχανικών ήταν ακριβώς αυτό που χρειαζόμουν σήμερα. Είχε μια ωραία γαργαλιστική αίσθηση χωρίς να είναι πολύ καυτερή."], ["Η πίτσα ήταν καμένη και τα υλικά φθηνής ποιότητας. Σίγουρα δεν θα ξαναπαραγγείλω από εκεί."] ], allow_flagging="manual", flagging_options=["Incorrect", "Ambiguous"], flagging_callback=hf_writer, examples_per_page=2, allow_duplication=False, concurrency_limit="default" ) iface.launch(share=True)