در بخش 1 به معرفی NLP و کاربردهایش پرداختیم. حال میخواهیم چند تا از مهمترین تکنیکهای NLP را به زبان خودمانی بیان کنیم. در بخشهای آینده به کدهای هر کدام از این تکنیکها و روشهای پیاده سازی آنها خواهیم پرداخت. اما اکنون با ما همراه باشید تا ابتدا با این تکنیکها آشنا شویم.
چندین مرحله برای پردازش زبان طبیعی وجود دارد که انجام دادن هر کدام با توجه به نیاز ما انجام میشود.
با tokenization شروع می کنیم که پروسه تبدیل یک string (یک رشته از متن) به توکن های ریزتر میباشد که ساختار کوچکتری دارند. اگر به مثال توجه کنیم میبینیم که یک جمله به چندین کلمه تقسیم شده است. این روش بسیار کارآمد در پردازش زبان طبیعی میباشد. همچنین یک متن میتواند به جملات تقسیم شود و یا حتی یک کلمه میتواند به حروف تقسیم شود. مرحله Tokenization مهمترینکاری میباشد که در NLP وجود دارد و تقریبا برای اکثر پردازشها به این مرحله نیاز خواهیم داشت.
تکنیک Stemming به نرمالایز کردن کلمات به حالت پایه آن میگویند. اگر به کلمات زیر نگاه کنیم ریشه آنها از یک کلمه می آید و آن Affect است. این کار فرایند کاهش کلمات یا به اصلاح مشتق گرفتن از کلمات میباشد.
در Lemmatization کلمات مشابه را شبیه به هم میکنیم. چند نکته قابل توجه در مورد این تکنیک وجود دارد که مشاهده میکنیم.
· در Lemmatization کلمات معنی دارند ولی در Stemming کلمات بی معنی هستند.
· زمان بیشتری نسبت به Stemming نیاز دارد.
· زمانی که به معنی کلمات نیاز داریم، مثل Question and Answering از Lemmitization استفاده
میکنیم.
به عنوان مثال کلمات زیر به یک ریشه با معنی رسیدهاند.
gone, going and went ===> go
زمانی که به صورت گرامری در مورد نوع کلمات صحبت می کنیم منظور ما POS Tags می باشد. POS یا Part of speech موقعیت یک کلمه به عنوان فعل، اسم، قید،صفت و یا ... میباشد. این تکنیک میتواند بخشهای مختلف یک جمله را تشخیص بدهد. در مثال زیر مشاهده میکنید که نقشهای هر کدام از کلمات چه چیزی میباشد.POS Example
تکنیک Name Entity Recognition که به عنوان NER شناخته می شود. در این روش موجودیت یک کلمه را به دست می آوریم. به عنوان مثال یک کلمه را می گوییم فیلم، اسم کمپانی، مکان، شخص و یا ... می باشد.
به مثال زیر توجه کنید:
حال نوبت این است که این گروه از تکنیک ها را جمع کنیم و یک حسی نسبت به آن به دست آوریم.
ما chunking را داریم. Chunking به معنی برداشت قطعات جداگانه اطلاعات و گروه کردن آن ها به یک قطعه بزرگتر می باشد. در NLP مفهوم chunking به این معنی است که کلمات یا توکن ها را به هم وصل کنیم.
تکنیک Chunking فرآیند استخراج عبارات از متن بدون ساختار است. به جای فقط نشانه های ساده که ممکن است معنای واقعی متن را نشان ندهد، توصیه هایی است برای استفاده از عباراتی مانند «آفریقای جنوبی» به عنوان یک کلمه به جای واژه های جداگانه «جنوب» و «آفریقا».
در بالا تکنیک های مهم NLP را بررسی کردیم و با آن ها آشنا شدیم.
چندین toolkit مهم برای پردازش زبان طبیعی وجود دارد که در بخش بعد همین مقاله با آن ها بیشتر آشنا خواهیم شد و روش های استفاده از آن ها را با همدیگر بررسی میکنیم. ابزار ها و کتابخانه هایی همانند NLTK، Gensim، Hazm و spaCy
ممنون از این که با من همراه بودید. کامنت های شما باعث بهتر نوشتن و رفع مشکلات مقاله میشه.
استفاده از این مقاله با ذکر نام نویسنده، بلامانع است.