redrob-ranker / src /language /detector.py
MrNK2107
chore: commit remaining changes from previous sessions (PRD, plans, tests)
a3671cc
Raw
History Blame Contribute Delete
696 Bytes
from __future__ import annotations
from langdetect import DetectorFactory, LangDetectException, detect
DetectorFactory.seed = 0
class LanguageDetector:
def __init__(self, min_confidence: float = 0.5) -> None:
self.min_confidence = min_confidence
def detect(self, text: str) -> dict[str, str | bool]:
try:
lang = detect(text)
except LangDetectException:
lang = "en"
return {
"language": lang,
"is_english": lang == "en",
"needs_translation": lang != "en",
}
def detect_batch(self, texts: list[str]) -> list[dict[str, str | bool]]:
return [self.detect(t) for t in texts]