پردازش زبان های طبیعی (NLP) [2]

در هر زبانی، کلمات با توجه به نقشی که در جملات ایفا می کنند، به شکل‌های ظاهری متفاوتی خواهند بود. اما با توجه به این که تمامی آن‌ها از یک ریشه (بُن) ساخته می شوند، از نظر معنا و مفهوم در گام های بعدی تشخیصی به ما کمک شایانی خواهند نمود.

ازهمین رو در بسیاری از روش های مبتنی بر NLP، ابتدا می بایست ریشه کلمات را پیدا کنیم. برای ریشه‌یابی کلمات معمولاً از دو روش ریشه یابی(Stemming) و بُن واژه سازی (Lemmatization) استفاده می‌شود که هر دو روش در نهایت ریشه‌ی یک کلمه را به دست می آورند.

ریشه یابی (Stemming):

الگوریتم‌های مختلفی جهت انجام عمل ریشه یابی وجود دارد که الگوریتم Porter از الگوریتم های معروف در زبان انگلیسی می باشد. این الگوریتم طبق یک سری قاعده‌ی منظم(مثلاً حذف حرف s در آخر کلماتِ جمع) می‌تواند ریشه‌ی کلمات را با دقتِ خوبی به دست آورد. Stemming به ما کمک می‌کند که کلمات را به صورت ریشه کلمه یا حالت پایه استانداردسازی نماییم.

خروجی متن نهایی پس از ریشه یابی (Stemming) (که معمولاً روش های مشخص و از مجموعه قواعد ثابتی دارد) لزوماً کلمات با معنا و موجود در لغت نامه نخواهد بود اما پیشوندها و پسوندها حذف شده و در نهایت ساده ترین حالت کلمه و ریشه آن، به عنوان خروجی خواهد بود.

ریشه یابی به همراه مثال
ریشه یابی به همراه مثال

بُن واژه سازی (Lemmatization)

در فرآیند بُن واژه سازی یا Lemmatization، در نهایت به دنبال یک کلمه با معنا (موجود در لغت نامه) در واقع همان "بُن" یا "ریشه" هستیم. همان طور که در مثال ارایه شده در هفته دوم کورس Standford NLP (شکل زیر) آورده شده است، جمله the boy's cars are different colors پس از اجرای بُن واژه سازی، به جمله the boy car be different color تبدیل خواهد شد.

بُن واژه سازی به همراه مثال
بُن واژه سازی به همراه مثال

در ادامه به بررسی الگوریتم Porter و نحوه پیدا کردن ریشه کلمات خواهیم پرداخت :

الگوریتم Porter برای Stemming
الگوریتم Porter برای Stemming

از این لینک برای مطالعه جزییات روش Porter می توانید استفاده کنید:

الگورتیم Porter برای ریشه یابی (Stemming)

من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.

بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning)