این مخزن شامل مجموعهای از ابزارهای تخصصی برای پیشپردازش متون فارسی است. این ابزارها به شما کمک میکنند تا متون خام فارسی را برای پردازشهای بعدی مانند تحلیل احساسات، طبقهبندی متون، خوشهبندی و غیره آمادهسازی کنید.
persian_text_pp/
├── FarsiLanguageRecognition.py # تشخیص زبان فارسی
├── Normalize.py # نرمالسازی اولیه متن
├── RemoveDiacritics.py # حذف علائم اعراب
├── RemovePunctuations.py # حذف علامتهای نگارشی
├── RemoveRepeatingChar.py # حذف کاراکترهای تکراری
├── Informal2Formal.py # تبدیل واژگان غیررسمی به رسمی
├── Tokenize.py # توکنایزر فارسی
├── RemoveStopWords.py # حذف کلمات توقف
├── Lemmatizer.py # ریشهیابی واژگان (لماتیزاسیون)
└── PreprocessPipeline.py # پایپلاین جامع پیشپردازش
get_stopwords/
├── get_stopwords.py # بارگذاری لیست کلمات توقف
└── persian_stopwords/ # فایلهای متنی کلمات توقف
├── chars.txt
├── nonverbal.txt
├── persian.txt
├── short.txt
└── verbal.txt
فایل PreprocessPipeline.py شامل یک تابع جامع بهنام preprocess_pipeline(...) است که تمام مراحل زیر را به ترتیب روی متن فارسی اعمال میکند:
- تشخیص زبان فارسی
- نرمالسازی متن (تنظیم کاراکترها، حذف HTML، جایگزینی ایمیل/اعداد/لینکها و ...)
- حذف علائم اعراب
- حذف علامتهای نگارشی
- حذف کاراکترهای تکراری
- تبدیل واژگان غیررسمی به رسمی
- توکنایز کردن متن
- حذف کلمات توقف
- ریشهیابی (Lemmatization)
pip install -r requirements.txtfrom persian_text_pp.PreprocessPipeline import preprocess_pipeline
text = "این یک متن آزمایشی است! شماره تماس: ۰۹۱۲-۳۴۵-۶۷۸۹"
tokens = preprocess_pipeline(text)
print(tokens)
# خروجی: ['این', 'یک', 'متن', 'آزمایشی', 'است', 'شماره', 'تماس']با استفاده از پارامترهای ورودی در تابع، میتوانید تنظیمات مرحله نرمالسازی را به دلخواه شخصیسازی کنید.
در صورتی که بخواهید یکی از مراحل را حذف یا سفارشیسازی کنید (برای مثال: حذف نکردن اعداد یا ایمیلها)، کافی است مقدار مناسب برای پارامترهای مربوطه در تابع preprocess_pipeline را تنظیم کنید.
اگر ایده یا پیشنهادی برای بهبود این پروژه دارید، خوشحال میشویم که در قالب Pull Request با ما در میان بگذارید.