پردازش زبان طبیعی (Natural Language Processing) که به اختصار NLP نیز نامیده میشود، روشی است برای درک زبان انسانی برای رایانه؛ این علم یکی شاخههای دانش هوش مصنوعی محسوب میشود و به رایانهها کمک میکند تا با آگاهی از چگونگی استفاده بشر از زبان، زبان انسانی را درک کند. پردازش زبان طبیعی یک دانش پیچیده و دشوار است؛ با اینحال تاکنون پیشرفتهای بسیاری در این زمینه حاصل شده است که نتیجه کار و زحمات بسیاری از دانشمندان هوش مصنوعی، زبانشناسان و کارشناسان علوم رایانه است.
تاریخچه پردازش زبان طبیعی
آغاز دانش پردازش زبان طبیعی به انتشار مقاله آزمایش تورینگ به قلم آلن تورینگ در سال 1950 میلادی بازمیگردد. این آزمون به عنوان ملاکی برای سنجش میزان هوشمندی ماشین معروف است. پس از آزمایش تورینگ فعالیتها بر روی ترجمه زبانها توسط رایانه متمرکز شد. برای مثال در آزمایش جروجتاون در سال 1954 میلادی ترجمه خودکار بیش از 60 جمله از زبان روسی به انگلیسی انجام شد.
انتشار کتاب ساختارهای نحوی اثر نوآم چامسکی زبانشناس نامآور امریکایی در سال 1957 میلادی، کمک شایانی برای دانشمندان در حوزه پردازش زبان طبیعی بود. تلاشهای دانشمندان در زمینه پردازش زبان طبیعی از آن زمان تاکنون بیوقفه بوده و کاربردهای بسیاری پیدا کرده است.
مراحل و کاربردهای پردازش زبان طبیعی
پردازش زبان طبیعی یک روند با چند مرحله است، این مراحل به ترتیب عبارتند از:
- یک انسان با یک دستگاه دیجیتالی صحبت میکند.
- یک دستگاه صوتی، صدای انسان را ضبط میکند.
- دستگاه دیجیتالی، صدای انسان را به متن تبدیل میکند.
- متنها پردازش میشوند و پاسخ متنی مناسب در نظر گرفته میشود.
- پاسخ متنی به شکل صوتی در میآید.
- دستگاه فایل صوتی پاسخ را پخش میکند.
این علم کاربردهای بسیاری دارد که شمار آنها رو به افزایش است، برخی از کاربردهای پردازش زبان طبیعی در زندگی بشر امروز عبارتند از:
ترجمهی ماشینی و ویرایشگرهای متن
هنگامی که عبارتی را در ترجمهگری مثل گوگل ترنسلیت تایپ میکنید یا با ویرایشگرهای متنی (مثل مایکروسافت ورد) کار میکنید در حقیقت بخشی از فرایند تصحیح و پیشنهاد عبارات توسط NLP انجام میشود، ضمنا رایانههای امروزی قادرند خلاصهای از یک متن طولانی را در اختیار کاربران قرار دهند!
تحلیل عواطف و سیستمهای توصیهگر
به کمک پردازش زبان طبیعی، رایانهها قادر میشوند احساسات درونمتنی را درک کنند؛ مانند؛ دیدگاه مثبت یا منفی نسبت به موضوع مرکزی، دیدگاه منتقدانه، دیدگاه تاییدگر؛ همچنین زمانی که یک سیستم کامپیوتری بخواهد پیشنهادهایی برای ارائه خدمات بهتر به یک مجموعه کاری یا فرد بدهد نیز میتوان از NLP بهرهمند شد.
دستهبندی متون و یادگیری ماشین
برای آن که رایانهها بتوانند متنها را در گروههای مختلف قرار دهند. گروههایی مانند: متون تاریخی، متون علمی، متون ادبی، متون تجاری، متون قضایی و متون پزشکی؛ قبلا در مقالهای یادگیری ماشین و فرایندهای آنها را بررسی کردهایم، پردازش زبان طبیعی یکی از ابزارهایی است که میتوان در یادگیری ماشین از آن استفاده کرد.
دستیارهای صوتی و گفتگوهای تعاملی
مانند استفاده از این روش در مراکز پاسخگویی به پرسشهای رایج مخاطبان و مشتریان استفاده میشود. برای مثال در برخی فروشگاهها رباتها یا دستگاههایی وجود دارند که محدوده خاصی از پرسشها را پاسخ میدهند. همچنین از این روش در چتبات Chatbot ها نیز استفاده میشود. چتباتها رباتهایی هستند که در فضای نرمافزارهای پیامرسان فعالیت میکنند.
چالشهای پیشروی پردازش زبان طبیعی
اکثر چالشهای دانش پردازش زبان طبیعی به پیچیدگیهای زبان بشری مربوط است؛ در واقع طی تاریخچهی این دانش، دانشمندان دریافتند پیشرفتهای علوم رایانه باید با آگاهی از پیچیدگیهای زبان بشری همگام شود. این امر بدون تامل در دانشهای زبانشناسی، معناشناسی و آواشناسی ممکن نبود. قوانین حاکم بر زبان بشری به هنگام مکالمه با دیگران بسیار پیچیدهاند و بعد از درک و تدوین آنها باید روشهایی را بیابیم که درک این پیچیدگیها برای رایانه نیز ممکن باشد.
ساختارهای پیچیده نحوی، تفاوت لهجهها، تفاوت ساختارهای نحوی و زبانی در زبانهای گوناگون، استفاده از ضربالمثلها، کلمات دوپهلو، تشبیهها، استعارهها، مجازها و کنایهها نیز از دیگر چالشهای پیش روی پردازش زبان طبیعی بودهاند؛ از سوی دیگر ماشینها نیز طی این سالها به کمک دانشمندان، تجربه و پیشرفت قابل توجهی داشتهاند. برای مثال هر کدام از ما در کاربردهای روزمره شاهد این هستیم که کیفیت ترجمههای ماشینی روزبهروز در حال افزایش است. همچنین شاهد پیشرفت پاسخگوهای صوتی و دستیارهای صوتی هستیم.
روش کار در پردازش زبان طبیعی
الگوریتمها کلید درک زبان انسانی برای رایانهها هستند؛ الگوریتمها دادههای ساختارنیافته زبان ما را به دادههای منظم و قابل فهم برای رایانه تبدیل میکنند. رایانهها برای درک معنای یک متن به این الگوریتمها نیاز دارند. بنابراین مهمترین کار در پردازش زبان طبیعی، کشف، برنامهنویسی و پیادهسازی الگوریتمهایی هستند که زبان ما را برای رایانه قابل فهم میکنند.
تکنیکهای مورد استفاده در پردازش زبان طبیعی
دو تکنیک کلی در پردازش زبان طبیعی وجود دارد که به آنها تکالیف و ارزیابیهای عمده پردازش زبان طبیعی نیز میگویند. بعضی از این ارزیابیها کاربردهای مستقیم در کار پردازش زبان طبیعی دارند و بعضی از آنها به عنوان زیرتکلیف در کمک به حل مسائل بزرگتر عمل میکنند. تکنیکهای عمده در پردازش زبان طبیعی به دو گروه آنالیز معنایی و آنالیز نحوی تقسیم میشوند.
آنالیز نحوی
آنالیز نحوی (Syntactic analysis) به موضوع نحو زبان (Syntax) مربوط است. نحو دانش مطالعه قواعد مربوط به چینش واژگان در جمله است. این شاخه مهم از دستور زبان، ترتیب واژگان را در جمله به شکلی که برای ما معنادار باشند، بررسی میکند.
در زبانشناسی واژگان روی دو محور جانشینی و همنشینی در جملات قرار میگیرند. نحو به ویژه با محور همنشینی در ارتباط است. در آنالیز نحوی از قوانین نحو در زبانشناسی برای درک الگوهای نحوی جملات استفاده میشود. رایانه برای درک نحو زبان انسانی، تکنیکها و الگوریتمهایی را مورد استفاده قرار میدهد که بر اساس دانش بشری از نحو زبان طراحی شدهاند. بعضی از این تکنیکها را مرور میکنیم:
کاهش یا لمسازی (Lemmatization)
در این روش اشکال گوناگون یک کلمه را به فرمی واحد کاهش میدهیم. به بیان تخصصی میتوان گفت در تکنیک کاهش، پایانههای صرفی واژه حذف میشوند تا آن را به شکل لغتنامهای بازگردانیم.
تقسیمبندی واژگان (Word Segmentation)
در این روش از تکنیکهای پردازش زبان طبیعی، متن را به واحدهای کوچکتر یعنی واژگان تقسیم میکنیم.
تقسیمبندی مورفولوژیکی (Morphological segmentation)
مرفورلوژی یعنی ریختشناسی، و ریختشناسی یا علم صرف به معنای دانشی است که ساخت واژه را مورد تحلیل قرار میدهد. در تکنیک تقسیمبندی مرفولوژیکی، واژهها را به اجزای ساختاریشان تقسیمبندی میکنیم که به هر یک از آنها واژک میگوییم. برای مثال واژه (پرنده) به دو بخش (پر) و (نده) تقسیم میشود.
تشخیص نقش کلمات (Part of Speech Tagging)
در دانش دستور زبان سنتی، شاخهای وجود دارد به نام اجزای کلام که واژگان را بر اساس ویژگیهای دستور زبانی گروهبندی میکند. برای مثال اجزای کلام در زبان فارسی به هشت گروه تقسیم میشوند که عبارتند از: اسم، ضمیر، صفت، فعل، قید، حرف اضافه، حرف ربط و حرف ندا. در تکنیک تشخیص نقش کلمات، رایانه واژگان یک متن را بر همین اساس گروهبندی میکند.
آنالیز معنایی
آنالیز معنایی یا تجزیه و تحلیل معنایی به موضوع معناشناسی (Semantics) زبان مربوط است. معناشناسی دانشی است برای بررسی و مطالعه معانی واژگان و جملات در زبانهای بشری. این دانش به ارتباط بین واژه و معنای آن و نیز به تغییر معنای واژگان در کاربردهای مختلف میپردازد، این تکنیک امروزه کاربردهای بسیار زیادی در وب معنایی دارد.
در تکنیک آنالیز معنایی هدف ما ایحاد الگوریتمهایی برای رایانهها است که به آنها در درک واژگان، علامتها و نیز جملات زبان بشری کمک میکند. آنالیز معنایی یکی از سختترین بخشها در کار و دانش پردازش زبان طبیعی است و هنوز هم مسایل حلنشده بسیاری دارد. درک معنای درست جملات یک متن به کمک تکنیکهای آنالیز معنایی صورت میگیرد که شماری از آنها را با هم مرور میکنیم:
شناسایی اسامی (Named Entity Recognition)
در این روش از روشهای پردازش زبان طبیعی، اسامی خاص را در گروههای مرتبط تقسیمبندی میکنیم. گروههایی مانند: نام اماکن، نام اشخاص، نام شهرها و کشورها.
ابهامزدایی از معنای کلمات (Word Sense Disambiguation)
بیشتر کلمات در هر زبانی، معانی مختلف دارد. رایانه برای انتخاب یک معنی از بین معانی گوناگون، باید به محتوای باقی جمله و دیگر جملات رجوع کند تا معنای متناسب را بیابد.
تولید زبان طبیعی (Natural Language Generation)
این روش مربوط به زمانی است که رایانه در پاسخ به یک پرسش از سوی کاربر باید معنای جدیدی خلق کند و پاسخی دهد. بنابراین با رجوع به ذخایر کلامی و معنایی و الگوریتمها این کار صورت میپذیرد.
پردازش زبان طبیعی مجموعه روشهایی است که به کمک آنها می توانیم روابط خودمان را با رایانه و سیستمهای هوشمند توسعه بخشیم. این روشها ماشینهای هوشمند را قادر میسازند سخنان افراد بشر را بشنوند و بخوانند و پس از درک آنها پاسخهایی متناسب با آنها بدهند یا واکنشی مطلوب داشته باشند.
دانش پردازش زبان طبیعی، دانشی رو به گسترش است که شاخههای متعدد و کاربردهای بسیار دارد. آشنایی با مقدمات این دانش، همچون ورود به دنیایی پر از شگفتی است که میتوانیم در آن بیاموزیم و اثرگذار باشیم، آیا شما هم در زندگی روزمرهی خود از کاربردهای این علم استفاده میکنید؟ تجربیات خود را با ما به اشتراک بگذارید.