import gradio as gr from transformers import pipeline def analyze_sentiment(text): sentiment_analyzer = pipeline( "sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment" ) result = sentiment_analyzer(text, return_all_scores=True) score = int(result[0]['score'] * 5) sentiment_stars = "⭐" * score return sentiment_stars with gr.Blocks() as demo: gr.Markdown("## Sentiment Analysis Demo") with gr.Row(): examples_dropdown = gr.Dropdown( label="Click to load example texts", choices=[ "I love this product! It's amazing!", "This was the worst experience I've ever had.", "The movie was okay, not great but not bad either.", "Absolutely fantastic! I would recommend it to everyone." ], interactive=True ) def load_example(selected_example): return selected_example with gr.Row(): input_text = gr.Textbox( label="Enter your text here", placeholder="Type or paste your text...", lines=3 ) with gr.Row(): analyze_button = gr.Button("Analyze Sentiment", variant="primary") with gr.Row(): output_text = gr.Textbox( label="Sentiment (Stars)", lines=1 ) examples_dropdown.change( fn=load_example, inputs=examples_dropdown, outputs=input_text ) analyze_button.click( fn=analyze_sentiment, inputs=input_text, outputs=output_text ) if __name__ == "__main__": demo.launch()