from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer


def analyze_sentiment(text: str) -> dict:
    """
    对输入文本进行情感分析，返回情感分数字典
    :param text: 待分析的文本字符串
    :return: 包含4个维度的情感分数：
             - neg: 负面情感分数（0-1）
             - neu: 中性情感分数（0-1）
             - pos: 正面情感分数（0-1）
             - compound: 综合情感分数（-1到1，越接近1越正面）
    """
    # 处理空文本异常
    if not isinstance(text, str) or len(text.strip()) == 0:
        raise ValueError("输入文本不能为空，且必须是字符串类型！")

    # 初始化情感分析器
    analyzer = SentimentIntensityAnalyzer()
    # 获取情感分数
    sentiment_scores = analyzer.polarity_scores(text)
    return sentiment_scores