Перейти к содержанию

Определение языка

LanguageDetectionMetric определяет язык фактического вывода и проверяет его соответствие ожидаемому коду языка.

Как это работает

  1. Выполняет определение языка фактического вывода с помощью библиотеки langdetect
  2. Сравнивает определенный код языка с ожидаемым
  3. Возвращает 1.0 при совпадении языка, 0.0 в противном случае

Параметры

Параметр Тип По умолчанию Описание
threshold float 1.0 Минимальный балл для прохождения
expected_language str обязательный Код языка ISO 639-1 (например, "en", "fr", "de", "es", "ru", "zh-cn")

Обязательные поля

Поле Обязательно
input Нет
actual_output Да
expected_output Нет

Зависимости

Эта метрика требует библиотеку langdetect:

pip install langdetect

Использование

from eval_lib.metrics import LanguageDetectionMetric
from eval_lib.test_case import EvalTestCase
import asyncio

test_case = EvalTestCase(
    input="Ответьте на французском",
    actual_output="Bonjour, comment puis-je vous aider aujourd'hui?"
)

metric = LanguageDetectionMetric(threshold=1.0, expected_language="fr")
result = asyncio.run(metric.evaluate(test_case))
print(result.score)  # 1.0

Примеры сценариев

Прошел (1.0)

metric = LanguageDetectionMetric(expected_language="ru")
EvalTestCase(
    input="Напишите на русском",
    actual_output="Сегодня прекрасная погода, и солнце ярко светит."
)
# Определенный язык — русский

Не прошел (0.0)

metric = LanguageDetectionMetric(expected_language="en")
EvalTestCase(
    input="Ответьте на английском",
    actual_output="El clima es hermoso hoy y el sol brilla intensamente."
)
# Определенный язык — испанский, а не английский

Примечания

  • Короткие выводы (несколько слов) могут давать ненадежные результаты определения. Для лучшей точности убедитесь, что вывод содержит хотя бы одно полное предложение.
  • Библиотека langdetect поддерживает более 50 языков.