| import gradio as gr |
| from textblob import TextBlob |
|
|
|
|
| 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 |
| """ |
| blob = TextBlob(text) |
| sentiment = blob.sentiment |
|
|
| return { |
| "polarity": round(sentiment.polarity, 2), |
| "subjectivity": round(sentiment.subjectivity, 2), |
| "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 text using TextBlob" |
| ) |
|
|
| |
| if __name__ == "__main__": |
| demo.launch(mcp_server=True) |