import gradio as gr from textblob import TextBlob def sentiment_analysis(text: str) -> dict: """ 对输入文本进行情感分析 参数: text (str): 需要分析的文本内容 返回: dict: 包含以下键值对的字典: - polarity: 情感极性值 (-1到1之间,负值表示消极,正值表示积极) - subjectivity: 主观性值 (0到1之间,0表示客观,1表示主观) - assessment: 情感评估结果 ('positive', 'negative' 或 'neutral') """ 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 a given text.", ) if __name__ == "__main__": demo.launch(mcp_server=True)