import json import gradio as gr from textblob import TextBlob def sentiment_analysis(text : str ) -> str: """ Analyze the sentiment of the given text. Args: text (str): The text to analyze Returns: str: A JSON string containing polarity, subjectivity, and assessment """ blob = TextBlob(text) sentiment = blob.sentiment result = { "polarity": round(sentiment.polarity, 2), # Polarity ranges from -1 (negative) to 1 (positive), "subjectivity": round(sentiment.subjectivity, 2) , "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral" } return json.dumps(result) demo = gr.Interface( fn = sentiment_analysis, inputs = gr.Textbox(label="Enter text for sentiment analysis", placeholder="Type here..."), outputs = gr.Textbox(), title = "Sentiment Analysis with TextBlob", description = "This app uses TextBlob to perform sentiment analysis on the input text. It returns the polarity, subjectivity, and overall assessment of the sentiment.", ) if __name__ == "__main__": demo.launch(mcp_server= True )