"""OCR chiqishini tozalash: kirill so'z ichidagi lotin harflari (gomogliflar va aralash qismlar) -> kirill.""" import re HG = str.maketrans({"a": "а", "o": "о", "e": "е", "c": "с", "p": "р", "x": "х", "y": "у", "k": "к", "d": "д", "m": "м", "t": "т", "i": "и", "n": "н", "r": "р", "b": "б", "l": "л", "s": "с", "u": "у", "h": "ҳ", "g": "г", "z": "з", "A": "А", "O": "О", "E": "Е", "C": "С", "P": "Р", "X": "Х", "H": "Н", "K": "К", "M": "М", "T": "Т", "B": "В", "Y": "У"}) CW = re.compile(r"\w+") CYR = re.compile(r"[а-яёўқғҳ]", re.I); LAT = re.compile(r"[a-z]", re.I) def fix_mixed(t): return CW.sub(lambda m: m.group().translate(HG) if CYR.search(m.group()) and LAT.search(m.group()) else m.group(), t)