语义相似度
答案语义相似度的概念涉及对生成的答案与标准答案之间语义相似性的评估。此评估基于 标准答案
和 答案
,其值范围在 0 到 1 之间。分数越高,表示生成的答案与标准答案之间的匹配度越好。
衡量答案之间的语义相似度可以为生成的回答质量提供有价值的见解。此评估使用交叉编码器模型来计算语义相似度分数。
示例
from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import SemanticSimilarity
sample = SingleTurnSample(
response="埃菲尔铁塔位于巴黎。",
reference="埃菲尔铁塔位于巴黎。它的高度为1000英尺。"
)
scorer = SemanticSimilarity()
scorer.embeddings = embedding_model
await scorer.single_turn_ascore(sample)
计算方法
示例
标准答案: 阿尔伯特·爱因斯坦的相对论理论彻底改变了我们对宇宙的理解。
高相似度答案: 爱因斯坦的开创性相对论理论改变了我们对宇宙的理解。
低相似度答案: 艾萨克·牛顿的运动定律对经典物理学产生了重大影响。
让我们看看如何为第一个答案计算相似度:
- 步骤1: 使用指定的嵌入模型将标准答案向量化。
- 步骤2: 使用相同的嵌入模型将生成的答案向量化。
- 步骤3: 计算两个向量之间的余弦相似度。