Дополнительные вариации текста

This commit is contained in:
2026-02-23 14:19:41 +07:00
parent eb270fd618
commit 04a4045a0d

163
configs/mapping.py Normal file
View File

@@ -0,0 +1,163 @@
"""
Словари для нормализации текста и замены символов
"""
from typing import Dict
# Словарь замены латинских букв на кириллические (для обхода фильтров)
LATIN_TO_CYRILLIC: Dict[str, str] = {
'a': 'а', 'A': 'А',
'b': 'б', 'B': 'В',
'c': 'с', 'C': 'С',
'e': 'е', 'E': 'Е',
'h': 'н', 'H': 'Н',
'k': 'к', 'K': 'К',
'm': 'м', 'M': 'М',
'o': 'о', 'O': 'О',
'p': 'р', 'P': 'Р',
't': 'т', 'T': 'Т',
'x': 'х', 'X': 'Х',
'y': 'у', 'Y': 'У'
}
# Словарь замены похожих кириллических букв (украинские, белорусские и т.д.)
CYRILLIC_NORMALIZE: Dict[str, str] = {
'ґ': 'г', 'Ґ': 'Г', # украинское Ґ
'є': 'е', 'Є': 'Е', # украинское Є
'і': 'и', 'І': 'И', # украинское І
'ї': 'и', 'Ї': 'И', # украинское Ї
'ў': 'у', 'Ў': 'У', # белорусское Ў
'ѐ': 'е', 'Ѐ': 'Е', # кириллица с грависом
'ё': 'е', 'Ё': 'Е', # ё -> е для упрощения
}
# Большой словарь Unicode-символов -> кириллица/латиница
UNICODE_MAP: Dict[str, str] = {
# === ЛАТИНСКИЕ БУКВЫ -> КИРИЛЛИЦА ===
'a': 'а', 'A': 'А', 'b': 'б', 'B': 'В', 'c': 'с', 'C': 'С',
'd': 'д', 'D': 'Д', 'e': 'е', 'E': 'Е', 'f': 'ф', 'F': 'Ф',
'g': 'г', 'G': 'Г', 'h': 'н', 'H': 'Н', 'i': 'и', 'I': 'И',
'j': 'ж', 'J': 'Ж', 'k': 'к', 'K': 'К', 'l': 'л', 'L': 'Л',
'm': 'м', 'M': 'М', 'n': 'н', 'N': 'Н', 'o': 'о', 'O': 'О',
'p': 'р', 'P': 'Р', 'q': 'к', 'Q': 'К', 'r': 'р', 'R': 'Р',
's': 'с', 'S': 'С', 't': 'т', 'T': 'Т', 'u': 'у', 'U': 'У',
'v': 'в', 'V': 'В', 'w': 'ш', 'W': 'Ш', 'x': 'х', 'X': 'Х',
'y': 'у', 'Y': 'У', 'z': 'з', 'Z': 'З',
# === SMALL CAPS ===
'': 'а', 'ʙ': 'б', '': 'с', '': 'д', '': 'е', '': 'ф',
'ɢ': 'г', 'ʜ': 'н', 'ɪ': 'и', '': 'ж', '': 'к', 'ʟ': 'л',
'': 'м', 'ɴ': 'н', '': 'о', '': 'р', '': 'к', 'ʀ': 'р',
'': 's', '': 'т', '': 'у', '': 'в', '': 'ш', 'ʏ': 'у', '': 'з',
'': 'г', '': 'л', 'ʍ': 'м', '': 'п', '': 'р', 'ɸ': 'ф', 'ɯ': 'ш',
# === ГРЕЧЕСКИЕ ===
'α': 'а', 'Α': 'А', 'β': 'б', 'Β': 'В', 'γ': 'г', 'Γ': 'Г',
'δ': 'д', 'Δ': 'Д', 'ε': 'е', 'Ε': 'Е', 'ζ': 'з', 'Ζ': 'З',
'η': 'н', 'Η': 'Н', 'θ': 'т', 'Θ': 'Т', 'ι': 'и', 'Ι': 'И',
'κ': 'к', 'Κ': 'К', 'λ': 'л', 'Λ': 'Л', 'μ': 'м', 'Μ': 'М',
'ν': 'н', 'Ν': 'Н', 'ξ': 'кс', 'Ξ': 'КС', 'ο': 'о', 'Ο': 'О',
'π': 'п', 'Π': 'П', 'ρ': 'р', 'Ρ': 'Р', 'σ': 'с', 'Σ': 'С',
'τ': 'т', 'Τ': 'Т', 'υ': 'у', 'Υ': 'У', 'φ': 'ф', 'Φ': 'Ф',
'χ': 'х', 'Χ': 'Х', 'ψ': 'пс', 'Ψ': 'ПС', 'ω': 'о', 'Ω': 'О',
'ύ': 'у', 'ϱ': 'р', 'ς': 'с', 'ϲ': 'с', 'ϕ': 'ф', 'ϰ': 'к',
'ϻ': 'м', 'ϸ': 'ш', 'ϙ': 'к', 'ϝ': 'в', '϶': 'э', 'ʐ': 'з',
'ʒ': 'ж', 'ʂ': 'ш', 'ʈ': 'т', 'ɳ': 'н', 'ɭ': 'л', 'ƙ': 'к',
'ɼ': 'р', 'ʠ': 'к', 'ɩ': 'и', 'ʝ': 'ж', 'ɦ': 'х', 'ɠ': 'г',
'ɗ': 'д', 'ɓ': 'б', 'ɞ': 'е', 'ƒ': 'ф', 'ɧ': 'х', 'ʑ': 'з',
'ɱ': 'м', 'ƴ': 'у', 'ʌ': 'л', 'ƿ': 'р', 'ɾ': 'р', 'ɟ': 'ж',
'ɥ': 'х', 'ɰ': 'м', 'ѕ': 'с', 'ѡ': 'ш',
# === КОПТСКИЕ ===
'': 'а', '': 'А', '': 'б', '': 'Б', '': 'в', '': 'В',
'': 'г', '': 'Г', '': 'д', '': 'Д', '': 'е', '': 'Е',
'': 'ж', '': 'Ж', '': 'з', '': 'З', '': 'к', '': 'К',
'': 'л', '': 'Л', '': 'м', '': 'М', '': 'н', '': 'Н',
'': 'о', '': 'О', '': 'п', '': 'П', '': 'р', '': 'Р',
'': 'с', '': 'С', '': 'т', '': 'Т', '': 'у', '': 'У',
'': 'ф', '': 'Ф', '': 'х', '': 'Х', '': 'ч', '': 'Ч',
'': 'ш', '': 'Ш', '': 'щ', '': 'Щ', '': 'ж', '': 'Ж',
'': 'г', '': 'Г', '': 'л', '': 'Л', '': 'с', '': 'С',
'': 'в', '': 'В', '': 'з', '': 'З', '': 'и', '': 'И',
'': 'н', '': 'Н', '': 'у', '': 'у',
# === КИРИЛЛИЧЕСКИЕ СТИЛИЗОВАННЫЕ ===
'ѧ': 'а', 'ѣ': 'е', 'ґ': 'г', 'Ґ': 'Г', 'є': 'е', 'Є': 'Е',
'ѫ': 'о', 'Ѫ': 'О', 'ӡ': 'з', 'Ӡ': 'З', 'џ': 'дж', 'Џ': 'ДЖ',
'ӣ': 'и', 'Ӣ': 'И', 'ѳ': 'ф', 'Ѳ': 'Ф', '': 'н', 'ҁ': 'ч',
'ѻ': 'о', 'Ѻ': 'О', 'ҵ': 'ц', 'Ҵ': 'Ц', 'ӌ': 'ч', 'Ӌ': 'Ч',
'ѱ': 'пс', 'Ѱ': 'ПС', 'ƀ': 'б', 'ѥ': 'е', 'Ѥ': 'Е',
'': 'я', 'і': 'и', 'І': 'И', 'ї': 'и', 'Ї': 'И',
'ў': 'у', 'Ў': 'У', 'ӷ': 'г', 'Ӷ': 'Г', 'ӄ': 'к', 'Ӄ': 'К',
'ҁ': 'ч', 'Ҁ': 'Ч', 'ӽ': 'х', 'Ӽ': 'Х', 'ҕ': 'г', 'Ҕ': 'Г',
'ѵ': 'в', 'Ѵ': 'В', 'ʯ': 'ч', 'ɜ': 'з',
# === TAI THAM ===
'': 'а', '': 'е', '': 'и', '': 'й', '': 'л', '': 'н',
'': 'о', '': 'п', '': 'с', '': 'х', '': 'в', '': 'ш',
'': 'з', '': 'з', '': 'л', '': 'а', '': 'б', '': 'в',
'': 'д', '': 'е', '': 'и', '': 'й', '': 'о', '': 'п',
'': 'с', '': 'ч', '': 'л', '': 'д', '': 'х', '': 'ж',
'': 'х', '': 'в', '': 'з', '': 'я', '': 'м',
# === СТАРЫЕ ИТАЛИЙСКИЕ ===
'𐌀': 'А', '𐌁': 'В', '𐌂': 'С', '𐌄': 'Е', '𐌅': 'Ф', '𐌉': 'И',
'𐌊': 'К', '𐌋': 'Ж', '𐌑': 'М', '𐌏': 'О', '𐌐': 'Г', '𐌛': 'Р',
'𐌕': 'Т', '𐌖': 'В', '𐌗': 'Х', '𐌟': 'Ж', '𐌍': 'Й', '𐍔': 'У',
'𐌔': 'З', '𐌒': 'К', '𐌓': 'Я', '𐍃': 'С', '𐌴': 'Э', '𐍂': 'Р',
'𐌜': 'Ь', '𐌆': 'Ж', '𐍆': 'Ф', '𐌺': 'К', '𐌡': 'Л', '𐌌': 'М',
'𐌻': 'л', '𐌼': 'м', '𐌽': 'н', '𐌸': 'щ', '𐍅': 'у', '𐍉': 'я',
'𐌵': 'у', '𐋏': 'н', '𐠨': 'в',
# === ДЕВАНАГАРИ И ПРОЧИЕ ===
'𑀐': 'г', '𑀥': 'д', '𑀝': 'с', '𑀡': 'ж', '𑀗': 'с', '𑀱': 'т',
'𑀉': 'л', '𑀌': 'х', '𑀨': 'ь', '': 'б', '': 'з', '': 'щ',
'': 'р', '': 'т', '': 'ж', '': 'о', 'ʆ': 'ж', 'ʠ': 'к',
'': 'к', '': 'е', '': 'е', '': 'ж', '': 'з', '': 'и',
'': 'х', '': 'к', '': 'м', '': 'м', '': 'н', '': 'о',
'': 'к', '': 'р', '': 'с', '': 'т', '': 'у', '': 'ф',
'': 'х', '': 'ч', '': 'ш', '': 'щ', '': 'ы', '': 'ь',
'': 'э', '': 'ю', '': 'я', '': 'а', '': 'б', '': 'в',
'': 'г', '': 'ф', '': 'г', '': 'ж', '': 'ж', '': 'л',
'': 'к', '': 'р', '': 'с', '': 'д', '': 'м', '': 'ж',
'': 'к', '': 'ш', '': 'у', 'ս': 'у', 'Ա': 'ч', 'Կ': 'ч',
'': 'Г', '': 'Б', '': 'К', '': 'Л', '': 'М', '': 'Н',
'': 'О', '': 'Р', '': 'С', '': 'Т', '': 'У', '': 'Ф',
'': 'Ч', '': 'Ш', '': 'Щ', '': 'А', '': 'Д', '': 'Е',
'': 'Ф', '': 'Г', '': 'И', '': 'Ж', '': 'Л', '': 'Р',
'': 'С', '': 'У', '': 'В', '': 'Ш', '': 'З', '': 'Г',
'': 'К', '': 'Х', '': 'В', '': 'Г', 'ᏏᏓ': 'Ы', '': 'Ь',
'ᎰᏫ': 'Ю', '': 'З', '': 'Р', '': 'Б', '': 'Д', '': 'Ж',
# === FULLWIDTH ===
'': 'а', '': 'б', '': 'с', '': 'д', '': 'е', '': 'ф',
'': 'г', '': 'н', '': 'и', '': 'ж', '': 'к', '': 'л',
'': 'м', '': 'н', '': 'о', '': 'р', '': 'к', '': 'р',
'': 'с', '': 'т', '': 'у', '': 'в', '': 'ш', '': 'х',
'': 'у', '': 'з',
# === МАТЕМАТИЧЕСКИЕ ===
'𝐚': 'а', '𝐛': 'б', '𝐜': 'с', '𝐝': 'д', '𝐞': 'е', '𝐟': 'ф',
'𝐠': 'г', '𝐡': 'н', '𝐢': 'и', '𝐣': 'ж', '𝐤': 'к', '𝐥': 'л',
'𝐦': 'м', '𝐧': 'н', '𝐨': 'о', '𝐩': 'р', '𝐪': 'к', '𝐫': 'р',
'𝐬': 'с', '𝐭': 'т', '𝐮': 'у', '𝐯': 'в', '𝐰': 'ш', '𝐱': 'х',
'𝐲': 'у', '𝐳': 'з',
# === CIRCLED ===
'': 'а', '': 'б', '': 'с', '': 'д', '': 'е', '': 'ф',
'': 'г', '': 'н', '': 'и', '': 'ж', '': 'к', '': 'л',
'': 'м', '': 'н', '': 'о', '': 'р', '': 'к', '': 'р',
'': 'с', '': 'т', '': 'у', '': 'в', '': 'ш', '': 'х',
'': 'у', '': 'з',
# === GUJARATI/DEVANAGARI ===
'': 'у', '': 'р', '': 'о', '': 'к', '': 'с', '': 'ч',
'': 'к', '𑀋': 'х', '': 'я', '': 'ы', '': 'з', 'چ': 'б',
'': 'ю', '': 'ь', '': 'а', '': 'к', '': 'р', '': 'с',
'': 'д', '': 'ф', 'ϻ': 'м', '': 'ж', '': 'п', '': 'х',
'Ͷ': 'М', 'Ͳ': 'Т', 'Ϸ': 'Р', 'Ϥ': 'Ч', 'Ͽ': 'Э', 'Ϳ': 'Ж',
'Ɗ': 'Д', 'Ɠ': 'Г', 'Ɍ': 'Р', 'Ʋ': 'У', 'Ɲ': 'Н', 'Ϙ': 'К',
'ϒ': 'У', 'ζ': 'з', 'Ŵ': 'Ш', '': 'Ы', '': 'х',
# === ЦИФРЫ КАК БУКВЫ ===
'0': 'о', '1': 'и', '3': 'з', '4': 'ч', '5': 'с', '7': 'т', '8': 'в',
}