Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| # Load pretrained sentiment analysis pipeline | |
| sentiment_pipeline = pipeline("sentiment-analysis") | |
| def sentiment_analysis(text: str) -> dict: | |
| """ | |
| Analyze sentiment using a transformer model, without lexicon. | |
| Args: | |
| text (str): The input text. | |
| Returns: | |
| dict: Polarity (mapped from model confidence), assessment, and subjectivity (heuristic). | |
| """ | |
| result = sentiment_pipeline(text)[0] | |
| label = result['label'] | |
| score = result['score'] | |
| polarity = score if label == "POSITIVE" else -score | |
| assessment = "positive" if polarity > 0.2 else "negative" if polarity < -0.2 else "neutral" | |
| # Heuristic for subjectivity: high confidence implies more subjective | |
| subjectivity = round(score, 2) | |
| return { | |
| "polarity": round(polarity, 2), | |
| "subjectivity": subjectivity, | |
| "assessment": assessment | |
| } | |
| # Gradio Interface | |
| demo = gr.Interface( | |
| fn=sentiment_analysis, | |
| inputs=gr.Textbox(placeholder="Enter text to analyze...", lines=4), | |
| outputs=gr.JSON(), | |
| title="Transformer-Based Sentiment Analysis", | |
| description="Analyze sentiment using a pre-trained BERT model (no lexicons or rule-based logic)." | |
| ) | |
| # Run on Gradio MCP | |
| if __name__ == "__main__": | |
| demo.launch(mcp_server=True, share=True) | |