Skip to content

传统NLP指标

非LLM字符串相似度

NonLLMStringSimilarity 指标使用传统的字符串距离度量(如Levenshtein、Hamming和Jaro)来衡量参考文本和响应之间的相似度。该指标在不依赖大型语言模型(LLM)的情况下,用于评估响应与参考文本的相似度。该指标返回一个介于0和1之间的分数,其中1表示响应与参考文本完全匹配。这是一个非LLM的指标。

示例

from ragas.dataset_schema import SingleTurnSample
from ragas.metrics._string import NonLLMStringSimilarity

sample = SingleTurnSample(
    response="The Eiffel Tower is located in India.",
    reference="The Eiffel Tower is located in Paris."
)

scorer = NonLLMStringSimilarity()
await scorer.single_turn_ascore(sample)

可以从 DistanceMeasure 中选择可用的字符串距离度量。以下是使用Hamming距离的示例。

from ragas.metrics._string import NonLLMStringSimilarity, DistanceMeasure

scorer = NonLLMStringSimilarity(distance_measure=DistanceMeasure.HAMMING)

BLEU分数

BleuScore 分数是一种用于通过与参考文本进行比较来评估响应质量的指标。它基于n-gram精度和简洁惩罚来衡量响应与参考文本之间的相似度。BLEU分数最初设计用于评估机器翻译系统,但也用于其他自然语言处理任务。由于它设计用于评估机器翻译系统,因此期望响应和参考文本包含相同数量的句子。比较是在句子级别进行的。BLEU分数范围从0到1,其中1表示响应与参考文本完全匹配。这是一个非LLM的指标。

示例

from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import BleuScore

sample = SingleTurnSample(
    response="The Eiffel Tower is located in India.",
    reference="The Eiffel Tower is located in Paris."
)

scorer = BleuScore()
await scorer.single_turn_ascore(sample)
可以提供自定义权重以进一步微调BLEU分数。可以通过以下方式提供一元组、二元组、三元组等的浮点权重:

scorer = BleuScore(weights=(0.25, 0.25, 0.25, 0.25))