techprotrade's picture
Add src directory
734b5b4 verified
Raw
History Blame Contribute Delete
1.27 kB
from typing import Dict, List, Any
class LanguageDetectionAgent:
"""Detects language for OCR optimization."""
LANGUAGES = {
"est": ["on", "ja", "et", "ei", "oli", "mis", "kuidas"],
"eng": ["the", "is", "and", "of", "to", "a", "in"],
"rus": ["è", "è", "è", "è", "è", "è", "è"],
}
def process(self, extracted_text: str) -> Dict[str, Any]:
"""Detect language."""
language = self._detect(extracted_text)
confidence = self._confidence_score(extracted_text, language)
return {
"detected_language": language,
"confidence": confidence,
"supported_languages": list(self.LANGUAGES.keys()),
}
def _detect(self, text: str) -> str:
"""Detect language from text."""
text_lower = text.lower()
scores = {}
for lang, keywords in self.LANGUAGES.items():
scores[lang] = sum(1 for kw in keywords if kw in text_lower)
if max(scores.values()) > 0:
return max(scores, key=scores.get)
return "unknown"
def _confidence_score(self, text: str, language: str) -> float:
"""Calculate confidence."""
if language == "unknown":
return 0.0
return 0.8