跳过内容

语义相似度

回答语义相似度的概念是指评估生成的回答与真实答案之间的语义相似性。此评估基于 ground truth (真实答案) 和 answer (回答),取值范围在 0 到 1 之间。得分越高,表示生成的回答与真实答案之间的对齐度越好。

测量回答之间的语义相似度可以为评估生成的回复质量提供有价值的见解。此评估利用双编码器模型计算语义相似度得分。

示例

from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import SemanticSimilarity
from ragas.embeddings import LangchainEmbeddingsWrapper

sample = SingleTurnSample(
    response="The Eiffel Tower is located in Paris.",
    reference="The Eiffel Tower is located in Paris. It has a height of 1000ft."
)

scorer = SemanticSimilarity(embeddings=LangchainEmbeddingsWrapper(evaluator_embedding))
await scorer.single_turn_ascore(sample)
输出
0.8151371879226978

计算方法

示例

参考: 阿尔伯特·爱因斯坦的相对论革命性地改变了我们对宇宙的理解。"

高相似度回答: 爱因斯坦的划时代相对论改变了我们对宇宙的认知。

低相似度回答: 艾萨克·牛顿的运动定律极大地影响了经典物理学。

让我们看看如何计算第一个回答的相似度

  • 步骤 1: 使用指定的嵌入模型向量化真实答案。
  • 步骤 2: 使用相同的嵌入模型向量化生成的回答。
  • 步骤 3: 计算两个向量之间的余弦相似度。