ai_summary = "各个模型的表现"

reference_summary = "OpenAI发布GPT-4o多模态AI模型，音频响应时间大幅提升，非英语处理能力增强，API成本降低50%。"

metrics = {}
# 1. 长度比例（AI摘要与参考答案的长度比）
ai_length = len(ai_summary)
ref_length = len(reference_summary)
metrics['length_ratio'] = ai_length / ref_length if ref_length > 0 else 0


# 2. 关键词覆盖率
def extract_keywords(text: str, keyword_dict: set = None) -> set:
    """提取文本中的关键词"""
    # 预设的关键词字典
    default_keywords = {'openai', 'gpt-4o', '多模态', '模型', '响应速度', '音频', '非英语', 'API'}

    # 使用传入的关键词字典或默认字典
    target_keywords = keyword_dict if keyword_dict is not None else default_keywords
    try:
        import jieba
        # 使用jieba进行中文分词
        words = jieba.lcut(text)
        # 过滤停用词和单字符，只保留在关键词字典中的词
        keywords = {word for word in words if
                    len(word) > 1 and not word.isspace() and word.lower() in target_keywords}
        return keywords
    except ImportError:
        print("警告：未安装jieba，使用基础分词方法")
        return set()


ref_keywords = extract_keywords(reference_summary)
ai_keywords = extract_keywords(ai_summary)

if ref_keywords:
    metrics['keyword_coverage'] = len(ai_keywords & ref_keywords) / len(ref_keywords)
else:
    metrics['keyword_coverage'] = 0

# 3. 信息密度（字符数/句子数）
ai_sentences = ai_summary.split('。')
metrics['info_density'] = len(ai_summary) / len(ai_sentences) if ai_sentences else 0

print("评测结果:")
for metric, value in metrics.items():
    print(f"{metric}: {value:.3f}")
