Rakhshai Graph-based NLP for Persian یک کتابخانهی متنباز و پژوهشی در زمینهی پردازش زبان فارسی است که برای نخستین بار روشهای گرافبنیان را با قدرت PyTorch ارائه میکند.
این پروژه متنهای فارسی را به ساختارهای گرافی تبدیل کرده و با الگوریتمها و شبکههای عصبی گرافی (GNN) آنها را تحلیل میکند. Rakhshai Graph-based NLP for Persian با الهام از مدلهایی مانند TextGCN، GCN و GraphSAGE توسعه یافته و قابلیت انجام وظایفی متنوع در حوزهی NLP فارسی را دارد – از طبقهبندی متن و خلاصهسازی تا توصیهگر محتوا، تشخیص نفرتپراکنی و تحلیل شبکههای اجتماعی.
این کتابخانه توسط تیم RakhshAI (شرکت آریا هامان مهر پارسه) توسعه داده شده و به صورت متنباز در گیتهاب منتشر شده است تا پژوهشگران و توسعهدهندگان بتوانند به سادگی از آن استفاده کرده یا در توسعهاش مشارکت کنند.
تغییرات جدید و قابلیتهای اخیر در Rakhshai Graph-based NLP for Persian
در نسخهی جدید Rakhshai Graph-based NLP for Persian، بهبودهای قابلتوجهی صورت گرفته است که آن را ماژولارتر، پرقدرتتر و قابلگسترشتر کرده است. مهمترین تغییرات اخیر عبارتاند از:
- مهاجرت کامل به PyTorch Geometric: ساختار داخلی Rakhshai Graph-based NLP for Persian اکنون به طور کامل بر پایهی کتابخانهی PyTorch Geometric (PyG) بازطراحی شده است. ماژول جدید
pyg_data.pyبرای تبدیل گرافهای متنی به فرمت دادهی PyG اضافه شده که یکپارچگی بیشتری با اکوسیستم PyG فراهم میکند. این تغییر باعث طراحی ماژولارتر در کتابخانه شده و از امکانات بهینهی PyG برای پردازش گراف بهره میگیرد، در نتیجه عملیات گرافی روی دادههای متنی با سرعت و کارایی بالاتری انجام میشود. - پشتیبانی از مدلهای گرافی با شتاب GPU: مدلهای شبکه عصبی گرافی GCN، GraphSAGE و GAT اکنون با استفاده از پیادهسازی PyG در Rakhshai Graph-based NLP for Persian در دسترس هستند و کاملأ از GPU پشتیبانی میکنند. بدینترتیب میتوانید مدلهای گرافی خود را روی کارت گرافیک اجرا کنید و آموزش مدلها روی گرافهای بزرگ با شتاب چشمگیری انجام میشود. این بهروزرسانی عملکرد Rakhshai Graph-based NLP for Persian را برای کاربردهای مقیاسبزرگ به میزان زیادی بهبود داده و امکان بهرهگیری از قدرت محاسبات موازی را فراهم کرده است.
- افزودن رابط خط فرمان (CLI): یک رابط خط فرمان به نام
rgnn-cliبه پروژه اضافه شده است که اجرای سریع آزمایشها و مدلها را بدون نیاز به کدنویسی اضافی میسر میسازد. با این ابزار، کاربران فنی میتوانند تنها با چند دستور ساده، گرافهای متنی ایجاد کرده و مدلهای گرافی (مثلاً یک GCN برای طبقهبندی متن) را آموزش داده یا ارزیابی کنند. این CLI طراحی ماژولار Rakhshai Graph-based NLP for Persian را تقویت کرده و آزمایشهای تکرارشونده و مقایسهی مدلها را بسیار آسان میکند. - تستهای جامع با PyTest: نسخهی جدید شامل مجموعهی کاملی از تستهای واحد و یکپارچه است که با چارچوب PyTest نوشته شدهاند. این تستها هر جزء کتابخانه (از ساخت گراف گرفته تا مدلها و وظایف تحلیلی) را پوشش میدهند و به حفظ پایداری و اعتمادپذیری کد کمک میکنند. بهرهگیری از تستهای خودکار باعث شده توسعهدهندگان بتوانند با اطمینان خاطر ویژگیهای جدیدی اضافه کنند یا تغییرات مدنظرشان را اعمال کنند، چرا که مجموعه تستها از درست عملکردن بخشهای مختلف اطمینان حاصل میکند.
این تغییرات جدید، Rakhshai Graph-based NLP for Persian را به کتابخانهای منعطفتر و قدرتمندتر تبدیل کردهاند. مهاجرت به PyG و بهرهگیری از معماری ماژولار، امکان گسترش آسان قابلیتها (برای مثال افزودن نوع گراف یا مدل جدید) را فراهم کرده است. همچنین به لطف شتاب GPU و بهینهسازیهای PyG، کارایی اجرای مدلها و الگوریتمها بهبود یافته و کاربران میتوانند پژوهشهای مقیاسبزرگتر یا دادههای حجیمتری را در زمان کمتر پردازش کنند. رابط خط فرمان جدید نیز تجربهی کاربری بهتری برای آزمایشهای سریع فراهم نموده و در کنار مستندات جامع و تستهای کامل، یادگیری و بهکارگیری کتابخانه را برای جامعهی NLP آسانتر کرده است. به بیان دیگر، Rakhshai Graph-based NLP for Persian اکنون یک زیرساخت قابل اعتماد و آماده برای انواع پروژههای NLP فارسی مبتنی بر گراف است که هم کارایی و هم قابلیت اطمینان بالایی دارد.
ویژگیهای کلیدی پروژه Rakhshai Graph-based NLP for Persian
در یک نگاه کلی، پروژهی Rakhshai Graph-based NLP for Persian دارای مزیتها و قابلیتهای برجستهی زیر است که آن را از سایر ابزارهای پردازش زبان فارسی متمایز میکند:
- استخراج ویژگیهای زبانی فارسی با Stanza: Rakhshai Graph-based NLP for Persian از کتابخانهی قدرتمند Stanza برای پردازش زبان فارسی بهره میبرد. به کمک Stanza، متن ورودی فارسی توکنسازی شده و ویژگیهای زبانی آن مانند برچسبهای دستوری (POS) و ویژگیهای صرفی/لماتیک استخراج میشود. این اطلاعات زبانی سپس در ساخت گرافهای وابستگی نحوی (dependency graph) به کار میروند تا ساختار دستوری جملات بهصورت گراف نمایش یابد. استفاده از Stanza به Rakhshai Graph-based NLP for Persian امکان میدهد که ظرایف زبان فارسی (مانند پسوندها، شناسهها و ساختار نحوی پیچیده) را در گرافهای خود منعکس کرده و تحلیلی عمیقتر ارائه دهد.
- نرمالسازی و لِماتیزهکردن متن فارسی: متنهای ورودی پیش از تبدیل به گراف میتوانند نرمالسازی شوند (مثلاً یکسانسازی حروف عربی و فارسی، حذف علائم زائد و …) و کلمات به ریشهی لغوی (Lemma) تبدیل شوند. این فرایند باعث کاهش پراکندگی داده و بهبود دقت مدلهای گرافی میشود، به ویژه در زبان فارسی که وجود شکلهای مختلف یک کلمه (مانند “میروم” در برابر “بروم”) میتواند چالشساز باشد. Rakhshai Graph-based NLP for Persian با تکیه بر ابزارهای پردازش زبان (نظیر Stanza و کتابخانههای فارسی) این گامهای پیشپردازش را پشتیبانی میکند تا دادههای پاکسازیشده و یکدستی به بخش گرافبندی تحویل دهد.
- پشتیبانی از مدلهای گرافی متنوع با PyTorch Geometric: این کتابخانه به طور پیشفرض چندین مدل شبکهی عصبی گرافی شناختهشده را برای تحلیل گرافهای زبانی فراهم کرده است، از جمله GCN، GraphSAGE و Graph Attention Network (GAT). تمامی این مدلها با استفاده از PyTorch Geometric پیادهسازی شدهاند و بنابراین از مزایای بهینهسازی PyG بهره میبرند و روی GPU نیز قابل اجرا هستند. وجود مدلهای متنوع به پژوهشگران اجازه میدهد تا متناسب با مسئلهی خود (مثلاً طبقهبندی متن، خوشهبندی اسناد یا پیشبینی روابط) مدل گرافی مناسب را انتخاب کرده و به کار گیرند یا حتی مدلهای جدیدی را به سادگی روی این چارچوب توسعه دهند.
- پشتیبانی از GPU و مجموعه تستهای کامل: Rakhshai Graph-based NLP for Persian به صورت بومی از GPU برای پردازشهای سنگین بهره میگیرد که منجر به سرعت اجرای بالاتر به خصوص در تمرین مدلها روی دادههای بزرگ میشود. علاوه بر این، وجود تستهای جامع خودکار برای تمامی اجزای کتابخانه تضمین میکند که عملکرد صحیح سیستم در کاربردهای مختلف حفظ شود. این موضوع نه تنها به کاربران اطمینان میدهد که میتوانند روی خروجیهای Rakhshai Graph-based NLP for Persian حساب کنند، بلکه توسعهدهندگان را نیز قادر میسازد تا با خیال راحت در کد تغییر ایجاد کنند و ویژگیهای جدید اضافه نمایند؛ چرا که تستهای قوی جلوی ورود باگ و افت کارایی را میگیرند.
در مجموع، Rakhshai Graph-based NLP for Persian یک پلتفرم پیشرفته و قابل اعتماد برای پردازش زبان طبیعی فارسی به کمک گراف است که هم دانش پژوهشی نوین (مدلهای GNN و الگوریتمهای گرافی) را به خدمت گرفته و هم به نیازهای عملی توسعهدهندگان (سرعت، مستندات، تستها و سهولت استفاده) توجه کرده است. این پروژه به صورت متنباز در اختیار جامعه قرار گرفته و از مشارکت جامعهی فنی استقبال میکند. اگر پژوهشگر NLP هستید یا روی پروژههای هوش مصنوعی زبانی کار میکنید، Rakhshai Graph-based NLP for Persian میتواند به عنوان ابزاری توانمند برای پیشبرد کارهای شما عمل کند. از جامعهی پژوهشگران و توسعهدهندگان دعوت میکنیم به پروژهی Rakhshai بپیوندند یا در پروژههای خود از آن بهره بگیرند تا با هم به ارتقای اکوسیستم NLP فارسی کمک کنیم.
Rakhshai Graph-based NLP for Persian منتظر ایدهها، بازخوردها و مشارکت شماست!
