من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

برنامه پیش پردازش متن‌های عربی با پایتون

برنامه پیش پردازش متن‌های عربی با پایتون
برنامه پیش پردازش متن‌های عربی با پایتون

برنامه پیش پردازش متن‌های عربی با پایتون

اگر شما هم در علوم داده فعال هستید احتمالا با داده‌های متنی زیادی سر و کار دارید حالا اگر این داده‌های متنی به زبان عربی باشند قطعا پیش پردازش‌های زیادی را لازم دارند یکی از این پیش پردازش‌ها حدف کاراکترهای خاص یا اعراب خاص در زبان عربی است که احتمالا در فرآیند پردازش متن معمولا نه در همه جا نیاز به حذف آن‌ها دارید. در این نوشته یک برنامه با کمک زبان پایتون را برای شما آماده کرده‌ایم تا بتوانید به سادگی از آن برای پیش پردازش متن‌های عربی استفاده کنید و از آن به سادگی بهره ببرید.

 

برنامه پیش پردازش متن‌های عربی با پایتون

بدون هیچ صحبت اضافه‌ای برنامه‌ی زیر را برای شما به اشتراک خواهیم گذاشت‌:

# 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 تبدیل کنید.

 

اگر علاقه دارید زبان برنامه نویسی پایتون را بیش‌تر یاد بگیرید از کتاب‌های زیر به صورت رایگان استفاده کنید:

 

اگر سوالی در ارتباط با کد بالا دارید در بخش نظرات همین نوشته از ما بپرسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 3 میانگین: 3.7]