برنامه پیش پردازش متنهای عربی با پایتون
اگر شما هم در علوم داده فعال هستید احتمالا با دادههای متنی زیادی سر و کار دارید حالا اگر این دادههای متنی به زبان عربی باشند قطعا پیش پردازشهای زیادی را لازم دارند یکی از این پیش پردازشها حدف کاراکترهای خاص یا اعراب خاص در زبان عربی است که احتمالا در فرآیند پردازش متن معمولا نه در همه جا نیاز به حذف آنها دارید. در این نوشته یک برنامه با کمک زبان پایتون را برای شما آماده کردهایم تا بتوانید به سادگی از آن برای پیش پردازش متنهای عربی استفاده کنید و از آن به سادگی بهره ببرید.
برنامه پیش پردازش متنهای عربی با پایتون
بدون هیچ صحبت اضافهای برنامهی زیر را برای شما به اشتراک خواهیم گذاشت:
# coding=utf-8 import re import string import sys import argparse arabic_punctuations = '''`÷×؛<>_()*&^%][ـ،/:"؟.,'{}~¦+|!”…“–ـ''' english_punctuations = string.punctuation punctuations_list = arabic_punctuations + english_punctuations arabic_diacritics = re.compile(""" ّ | # Tashdid َ | # Fatha ً | # Tanwin Fath ُ | # Damma ٌ | # Tanwin Damm ِ | # Kasra ٍ | # Tanwin Kasr ْ | # Sukun ـ # Tatwil/Kashida """, re.VERBOSE) def normalize_arabic(text): text = re.sub("[إأآا]", "ا", text) text = re.sub("ى", "ي", text) text = re.sub("ؤ", "ء", text) text = re.sub("ئ", "ء", text) text = re.sub("ة", "ه", text) text = re.sub("گ", "ك", text) return text def remove_diacritics(text): text = re.sub(arabic_diacritics, '', text) return text def remove_punctuations(text): translator = str.maketrans('', '', punctuations_list) return text.translate(translator) def remove_repeating_char(text): return re.sub(r'(.)\1+', r'\1', text) parser = argparse.ArgumentParser(description='Pre-process arabic text (remove ' 'diacritics, punctuations, and repeating ' 'characters).') parser.add_argument('-i', '--infile', type=argparse.FileType(mode='r', encoding='utf-8'), help='input file.', required=True) parser.add_argument('-o', '--outfile', type=argparse.FileType(mode='w', encoding='utf-8'), help='out file.', required=True) if __name__ == '__main__': args = parser.parse_args() text = args.infile.read() text = remove_punctuations(text) text = remove_diacritics(text) text = remove_repeating_char(text) args.outfile.write(text)
کد بالا را با نام clean_arabic_text.py ذخیره کنید؛ این کد به زبان برنامه نویسی پایتون نوشته شده است و برای استفاده از آن باید حتما پایتون را روی سیستم خود نصب کنید. حالا با توجه به کد بالا هر جا که بخواهید از این کد برای پیش پردازش متنهای خود استفاده کنید کافیست در خط فرمان مثل دستور زیر استفاده کنید:
python clean_arabic_text.py -i infile.txt -o outfile.txt
کد بالا به شما کمک خواهد کردی فایلی با نام infile.txt را که به زبان عربی میباشد را به یک متن تمیز و پیش پردازش شده با نام outfile.txt تبدیل کنید.
اگر علاقه دارید زبان برنامه نویسی پایتون را بیشتر یاد بگیرید از کتابهای زیر به صورت رایگان استفاده کنید:
اگر سوالی در ارتباط با کد بالا دارید در بخش نظرات همین نوشته از ما بپرسید.
ارسال پاسخ