نرمالسازی متن
نرمالسازی متن: یکسانسازی حروف عربی/فارسی، تبدیل اعداد، حذف علائم و نیمفاصله — پایه پردازش فارسی
نرمالسازی چیست؟
نرمالسازی (Normalization) یعنی یکسانسازی اشکال مختلف نوشتاری یک متن تا ماشین آنها را یکسان ببیند. بدون آن، «تهران» و «Tehran» و «تهران » (با فاصله اضافی) سه چیز متفاوتاند!
عملیات رایج نرمالسازی
- یکسانسازی حروف: «ي» عربی ← «ی» فارسی، «ك» ← «ک»
- تبدیل اعداد: ۱۲۳ فارسی ← 123 انگلیسی (یا برعکس)
- حذف فاصلههای اضافی: چند فاصله پیاپی ← یک فاصله
- حذف/یکسانسازی علائم: حذف !؟ یا نگهداشتن جدا
- حروف کوچک/بزرگ: (انگلیسی) «Hello» ← «hello»
- اصلاح نیمفاصله: «می روم» ← «میروم»
- حذف دیاکریتیک: اِعراب عربی/اعرابگذاری
چرا برای فارسی حیاتی است؟
متن فارسی اینترنتی از منابع مختلف (کیبورد مختلف، کپی از ورد، سایت عربی) میآید و پر از ناهمگونی است:
| مشکل | مثال | اصلاح |
|---|---|---|
| ی عربی | كتابي | کتابی |
| ک عربی | كمپیوتر | کمپیوتر |
| اعداد عربی | ١٢٣ | ۱۲۳ یا 123 |
| همزه | تأثیر | تاثیر |
| فاصله اضافی | « سلام » | «سلام» |
بدون این اصلاحات، جستجوی «کتابی» نتیجه «كتابي» را پیدا نمیکند!
چه چیزی را حذف کنیم؟
بسته به مسئله:
- تحلیل احساسات: علائم (!؟) مهماند — «بد بود!!!» خشمگینتر از «بد بود»
- دستهبندی موضوعی: علائم حذف شوند — فقط کلمات مهماند
- ایموجی: در احساسات طلا هستند! 😊😡
هشدار: نرمالسازی بیش از حد، اطلاعات را هم حذف میکند! حذف همه علائم برای تشخیص سؤال از خبر (؟) فاجعه است. همیشه متن مسئله را در نظر بگیرید.
پایپلاین پیشپردازش استاندارد
متن خام
← نرمالسازی (حروف، اعداد، فاصله)
← توکنسازی
← حذف کلمات ایستا (مبحث بعد)
← ریشهیابی
← آماده برای بازنمایی و مدل!
جمعبندی
- نرمالسازی = یکسانسازی اشکال مختلف متن
- برای فارسی حیاتی: ي/ی، ك/ک، اعداد، نیمفاصله
- حذفها باید متناسب با مسئله باشند (علائم در احساسات مهماند!)
- اول نرمالسازی، بعد توکنسازی — ترتیب مهم است
این مبحث بخشی از دوره آموزش کامل پردازش زبان طبیعی (NLP) است.