传统自然语言处理(NLP)指标
非LLM字符串相似性
NonLLMStringSimilarity
指标使用传统的字符串距离度量方法(如 Levenshtein, Hamming, 和 Jaro)来衡量参考文本和响应之间的相似性。此指标无需依赖大型语言模型(LLMs),即可用于评估 response
与 reference
文本的相似性。该指标返回一个介于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
分数是一种通过将 response
与 reference
进行比较来评估其质量的指标。它基于 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)
ROUGE分数
RougeScore
分数是一组用于评估自然语言生成质量的指标。它基于 n-gram 召回率、精确率和 F1 分数来衡量生成的 response
与 reference
文本之间的重叠程度。ROUGE 分数范围从0到1,其中1表示响应和参考文本完全匹配。这是一个非LLM指标。
from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import RougeScore
sample = SingleTurnSample(
response="The Eiffel Tower is located in India.",
reference="The Eiffel Tower is located in Paris."
)
scorer = RougeScore()
await scorer.single_turn_ascore(sample)
可以将 rouge_type
设置为 rouge1
或 rougeL
,分别基于 unigrams 或最长公共子序列计算 ROUGE 分数。
可以将 mode
设置为 precision
、recall
或 fmeasure
,分别基于精确率、召回率或 F1 分数计算 ROUGE 分数。
精确匹配
ExactMatch
指标检查响应是否与参考文本完全相同。这在需要确保生成的响应与预期输出逐字匹配的场景中非常有用,例如工具调用中的参数等。如果响应与参考文本完全匹配,该指标返回1;否则返回0。
from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import ExactMatch
sample = SingleTurnSample(
response="India",
reference="Paris"
)
scorer = ExactMatch()
await scorer.single_turn_ascore(sample)
字符串存在性
StringPresence
指标检查响应是否包含参考文本。这在需要确保生成的响应包含特定关键词或短语的场景中非常有用。如果响应包含参考文本,该指标返回1;否则返回0。