Spaces:
Sleeping
Sleeping
File size: 1,002 Bytes
722ce17 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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))
|