Spaces:
Sleeping
Sleeping
| import re | |
| def normalize_query(query): | |
| """ | |
| Only normalize type-like patterns (e.g., С-25, C-25, Т-40 → C25, T40) | |
| without touching the rest of the Russian text. | |
| """ | |
| def repl(m): | |
| cyr_to_lat = {'С': 'C', 'с': 'C', 'Т': 'T', 'т': 'T', 'У': 'U', 'у': 'U'} | |
| letter = cyr_to_lat.get(m.group(1), m.group(1)) | |
| return f"{letter}{m.group(2)}" | |
| return re.sub(r'\b([СсТтУуCTU])[-\s]?(\d+)\b', repl, query) | |
| tests = [ | |
| "8. какие размеры будут у сварного шва для типа С-25 ?", | |
| "8. какие размеры будут у сварного шва для типа C-25 ?", | |
| "8. какие размеры будут у сварного шва для типа С25 ?", | |
| "8. какие размеры будут у сварного шва для типа Т-40 ?", | |
| "8. какие размеры будут у сварного шва для типа У-16 ?" | |
| ] | |
| for t in tests: | |
| print(normalize_query(t)) | |