هضم: ابزاری برای پردازش زبان فارسی

هضم، کتابخانه‌ای برای پردازش متون فارسی است که با زبان پایتون نوشته شده است. این کتابخانه در اواخر سال ۱۳۹۲ به صورت متن‌باز در گیت‌هاب منتشر شد.

هدف از ساخت و توسعه این کتابخانه، رسیدن به یک راهکار مطلوب برای پردازش بهتر و دقیق‌تر متون فارسی است. هضم درحال‌حاضر توانایی خوبی در پیش‌پردازش متون فارسی دارد و همچنین در بخش تحلیل صرفی و نحوی پیشرفت‌های قابل ملاحظه‌ای داشته است.


در ادامه این نوشته، مرور کوتاهی خواهیم داشت بر قابلیت‌های هضم.

هدف از ارائه این توضیحات، آشنایی اولیه و کلی با قابلیت‌های این کتابخانه است. برای جزئیات بیشتر می‌توانید به سایت هضم مراجعه کنید.

تمیزکردن متن

هدف از تمیزکردن متن یا اصطلاحاً نرمال‌سازی، رفع نایکدستی‌ها و متحدالشکل کردن متن، جهت آماده‌سازی آن برای پردازش‌های بعدی است. حذف فاصله‌ها و نیم‌فاصله‌های اضافه، حذف کشیـــــــدگی حروف، حَذفِ اِعرابْ، جایگزین‌کردن حروف عربي با معادل فارسی، اصلاح فاصله‌ها در علائم نگارشی، اصلاح جدابودن یا نیم‌جدابودن کلمات، اصلاح فاصله در پیشوندها و پسوندها، جایگزین کردن حروف خاص یونیڪد با معادل استاندارد فارسی از جمله مسئولیت‌های این بخش است.

استخراج جملات و کلمات متن

گاهی لازم است متن را به جملات، کلمات یا توکن‌ها بشکنیم. هضم می‌تواند این کار را انجام دهد و حتی می‌تواند مفاهیمی مثل ایمیل، هشتگ، عدد و لینک را در متن تشخیص دهد.

ریشه‌یابی کلمات

ریشه یا بن یک کلمه، ارزش زیادی در پردازش‌های زبانی دارد. هضم می‌تواند با حمایت لیستی از کلمات، بن ماضی و مضارع افعال را پیدا کند؛ به عنوان مثال، ریشه «می‌خوانم» در قالب دو بن ماضی و مضارع، به صورت «خواند-خوان» برگردانده می‌شود یا در کلمهٔ «کتاب‌ها»، بن آن یعنی «کتاب» برگردانده می‌شود.

برچسب‌گذاری کلمات

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

قطعه‌بندی

بخش مهمی از درک معنای یک متن، در گرو تشخیص واحدهای معنایی آن است؛ به عنوان مثال، در جمله «رئیس جمهور ایران به عراق سفر کرد.»، «رئیس جمهور ایران» علی‌رغم اینکه از سه کلمه تشکیل شده ولی در قالب یک واحد معنایی تفسیر می‌شود. وظیفه قطعه‌بند، تشخیص این قطعات معنایی است.

تجزیهٔ نحوی وابستگی

هدف از تجزیه نحویِ وابستگی، یافتن ارتباط بین کلمات است. هضم می‌تواند ساختار جمله را تجزیه کند و در خروجی، گراف وابستگی را تحویل دهد.

بازنمایی واژه‌ها و جملات

با استفاده از بازنمایی واژه‌ای هضم می‌توانید شبکه‌های عمیق را با سهولت بیشتری برای کاربردهای زبانی دلخواه خود آموزش دهید. همچنین با استفاده از بازنمایی جمله‌ای می‌توانید شباهت میان متون را بسنجید. این ماژول مبتنی بر مدل‌های از پیش آموزش‌دیده است؛ با این حال، همانند سایر ماژول‌های هضم، امکان استفاده از مدل‌های دلخواه شما را دارد.

کلاس‌ها و توابع کمکی برای کار با پیکره‌ها

داده، نقشی حیاتی در پردازش زبان دارد و البته تهیه داده‌های ارزشمند کاری زمان‌بر و طاقت‌فرسا است. افراد و نهادهای مختلفی با صرف وقت فراوان، داده‌های ارزشمندی را تحت عنوان پیکره‌های متنی یا پیکره‌های واژگانی در اختیار عموم قرار داده‌اند؛ با این حال، هر یک از این پیکره‌ها در ساختار و قالبی عرضه شده‌اند که باعث می‌شود توسعه‌دهندگان بخشی از وقت خود را صرف نوشتن اسکریپت برای خواندن این پیکره‌ها کنند.

خبر خوب اینکه هضم این کار را انجام داده است!

هضم می‌تواند با کمک واسط‌هایی و تنها با چند خط کد، بسیاری از پیکره‌های مهم زبان فارسی را بخواند. از جملهٔ این پیکره‌ها عبارتند از: پیکره داده‌های نحو وابستگی، میراث، همشهری، دگربیان، پرسیکا، قرآن، سنتی‌پرس، تی‌نیوز. این کار به برنامه‌نویس‌ها کمک می‌کند تا به‌جای صرف وقت برای نوشتن اسکریپت‌های فرعی برای خواندن پیکره‌ها روی موضوعات مهم‌ترِ پردازش زبان متمرکز شوند.

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

سایت هضم
مستندات هضم
صفحهٔ گیت‌هاب هضم