import gradio as gr from textblob import TextBlob # Sentiment Analysis Function def sentiment_analysis(text: str) -> dict: """ Analyze the sentiment of the given text. Args: text (str): The text to analyze Returns: dict: A dictionary containing polarity, subjectivity and assessment """ # Create a TextBlob object blob = TextBlob(text) # Get the sentiment sentiment = blob.sentiment # Return the sentiment as a dictionary # Polarity ranges from -1 (very negative sentiment ) to 1 (very positive sentiment) # Subjectivity ranges from 0 (completely factual/objective) to 1 (completely opinionated/subjective) return { "polarity": sentiment.polarity, "subjectivity": sentiment.subjectivity, "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral" } demo = gr.Interface( fn=sentiment_analysis, inputs=gr.Textbox(placeholder="Enter text to analyze..."), outputs=gr.JSON(), title="Text Sentiment Analysis", description="Analyze the sentiment of the input text using TextBlob.", examples=[ ["I love programming!"], ["This is the worst day ever."], ["It's okay, nothing special."] ] ) if __name__ == "__main__": demo.launch(mcp_server=True)