Spaces:
Sleeping
Sleeping
File size: 987 Bytes
d326834 148671a d326834 89c8b6a d326834 148671a d326834 148671a d326834 148671a d326834 | 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 26 | import re
def clean_text(text: str) -> str:
if not text or not text.strip():
return ""
# Nối các từ bị gãy ngang do xuống dòng
text = re.sub(r'(\w+)-\s*\n\s*(\w+)', r'\1\2', text)
# Loại bỏ các ký tự điều khiển không mong muốn, nhưng giữ lại các dấu câu thông thường
text = re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]', '', text)
# Xóa các ký tự không nhìn thấy và các ký tự đặc biệt như zero-width space và BOM
text = text.replace('\u200b', '').replace('\ufeff', '')
# Chuẩn hóa khoảng trắng
text = re.sub(r'[ \t]+', ' ', text)
text = re.sub(r' +\n', '\n', text)
text = re.sub(r'\n +', '\n', text)
# Giới hạn tối đa 2 dòng trống liên tiếp
text = re.sub(r'\n{3,}', '\n\n', text)
# Sửa lỗi dư khoảng trắng trước dấu câu
text = re.sub(r'\s+([.,;:!?])', r'\1', text)
return text.strip() |