Определение языка¶
LanguageDetectionMetric определяет язык фактического вывода и проверяет его соответствие ожидаемому коду языка.
Как это работает¶
- Выполняет определение языка фактического вывода с помощью библиотеки
langdetect - Сравнивает определенный код языка с ожидаемым
- Возвращает
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:
Использование¶
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 языков.