Spaces:
Configuration error
Configuration error
| import re | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Arabic Diacritics | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ARABIC_DIACRITICS = re.compile(""" | |
| Ω | # Tashdid | |
| Ω | # Fatha | |
| Ω | # Tanwin Fath | |
| Ω | # Damma | |
| Ω | # Tanwin Damm | |
| Ω | # Kasra | |
| Ω | # Tanwin Kasr | |
| Ω | # Sukun | |
| Ω | |
| """, re.VERBOSE) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Remove Diacritics | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| def strip_diacritics(text): | |
| return re.sub( | |
| ARABIC_DIACRITICS, | |
| "", | |
| text, | |
| ) | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Normalize Arabic | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| def normalize_arabic(text): | |
| text = re.sub( | |
| "[Ψ₯Ψ£Ψ’Ψ§]", | |
| "Ψ§", | |
| text, | |
| ) | |
| text = re.sub( | |
| "Ω", | |
| "Ω", | |
| text, | |
| ) | |
| text = re.sub( | |
| "Ψ€", | |
| "Ω", | |
| text, | |
| ) | |
| text = re.sub( | |
| "Ψ¦", | |
| "Ω", | |
| text, | |
| ) | |
| text = re.sub( | |
| "Ψ©", | |
| "Ω", | |
| text, | |
| ) | |
| return text | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Clean Text | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| def clean_text(text): | |
| text = str(text) | |
| text = text.strip() | |
| text = strip_diacritics(text) | |
| text = normalize_arabic(text) | |
| text = re.sub( | |
| r"\s+", | |
| " ", | |
| text, | |
| ) | |
| return text | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Sanitize Query | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| def sanitize_query(query): | |
| query = clean_text(query) | |
| # remove strange symbols | |
| query = re.sub( | |
| r"[^\w\sΨ?]", | |
| " ", | |
| query, | |
| ) | |
| query = re.sub( | |
| r"\s+", | |
| " ", | |
| query, | |
| ) | |
| return query.strip() |