|
تاریخ انتشار:۱۱:۳۹ ۱۳۹۹/۲/۱۸
پردازش زبان طبیعی (NLP) چیست؟
قصد داریم در یک مجموعه آموزش، مبحث پردازش زبان طبیعی از کاربرد تا عمل را تشریح کنیم. این مجموعه شامل تعاریف اولیه، بررسی کاربردها و روشهای پردازش زبان طبیعی است. در ادامه اجمالا ابزارهای فارسی پردازش زبان طبیعی معرفی شده و نحوه استفاده یکی از آنها (Parsivar) آموزش داده میشود.در سری اول به سراغ تعاریف و کاربردهای پردازش زبان طبیعی میرویم با ما همراه باشید.
مقدمه
انسانها معمولا به کمک زبان و در قالب صحبت یا نوشتار با یکدیگر ارتباط برقرار میکنند. با پیشرفت تکنولوژی و رخنه ماشینهای هوشمندی مثل موبایل، کامپیوتر در همه ابعاد زندگی، کمبود ارتباط بین ماشین و انسان عمیقا حس میشود. انتقال دوطرفه مفاهیم و افکار از انسان به ماشین، زمینه جذابی است که این روزها طرفداران زیادی پیدا کرده ولی شاید بتوان گفت از نقطه مطلوب فاصله داریم. در پردازش زبان طبیعی (Natural Language Processing) هدف درک زبان انسانها توسط ماشینها است. اینکه ماشین مانند یک کودک تازه متولد شده زبان را فرا بگیرد و در مرحله بعد از آن برای ایجاد ارتباط استفاده کند. البته امروزه و در زندگی روزمرهمان ابزارهای مرتبط با NLP نقش ایفا میکنند مثل:
- دستیارهای صوتی از جمله Siri و Cortana، Google Assistant
- ماشینهای ترجمه انگلیسی مثل گوگل ترنسلیت یا نمونههای داخلی آن مثل ترجمان
- سرویس زیرنویس خودکار یوتیوب
- سرویس تصحیح گرامر Gmail
- سیستمهای غلط یابی و نرمال سازی خودکار متون
فعالیتهای رایج در NLP
اگر به یادگیری ماشین به دید ابزار نگاه کنیم اکثر روشها و الگوریتمهای موجود در آن در فرآیند پردازش زبان طبیعی قابل استفاده است. میتوان گفت یادگیری ماشین برای هر نوع دادهای مفید است به شرطی که دادهها به فرمت مناسب تبدیل شوند حال این داده می تواند متن یا صوت یا تصویر باشد. در ادامه لیستی از کارهایی که در حوزه پردازش زبان طبیعی قابل انجام است بیان می شود.
دسته بندی
در دستهبندی میخواهیم یک هدف را پیش بینی کنیم برای مثال پیش بینی اینکه یک ایمیل اسپم هست یا خیر. در موارد پیشرفته تشخیص غیرقانونی بودن متن یک قرارداد تجاری.
خوشه بندی
در خوشه بندی هدف گردآوری دادههای مشابه یا به عبارتی گروه بندی است برای مثال حجم عظیمی خبر داریم که باید اخبار مشابه را پیدا کنیم و به طور کلی موضوع هر خبر تشخیص داده شود. البته از یک روش دیگر به نام Topic Modeling هم میتوان استفاده کرد. فرض کنید متون موجود در دیتابیس شرکت گوگل را بخواهیم تحلیل کنیم تا مباحث یکسان در یک دسته قرار بگیرند.
تحلیل عواطف
هر متن یا نوشتهای دارای یک پیام است. این پیام حاوی یک عاطفه یا حس درونی مثبت یا منفی است. در تحلیل عواطف میخواهیم بدانیم فردی که یک جمله یا متن را حول یک موجودیت نوشته، دیدگاه مثبتی نسبت به آن موجودیت داشته یا منفی (یا خنثی).
سیستمهای توصیهگر
کتابخانهای دیجیتالی در نظر بگیرید که میخواهد سرویس بهتری را به کاربرانش ارائه دهد. هدف استفاده از سابقه قبلی کاربر برای ارائه پیشنهادات مناسبتر است بدین صورت که اگر فرد قبلا چند کتاب با محتوای تاریخی حول جنگ جهانی خوانده و اخیرا چند عنوان کتاب حماسی سفارش داده است در آینده به او کتابهایی با درون مایهی زندگی شخصیتهای حماسی که در جنگهای مختلف افتخارآفرینی کردهاند نمایش دهد. لازمه چنین سرویسی درک کلی از محتوای هر کتاب است.
خلاصه سازی متون
تصور کنید به جای اینکه یک کتاب هزار صفحهای را طی یک ماه مطالعه کنید، یک ماشین، در مدت کمی خلاصهای خودکار در اختیار شما قرار دهد
کاربرد NLP در حوزههای مختلف
NLP در جهت رشد و بهبود کسب و کارها میتواند کارساز باشد. برای مثال در شرکتهای بیمه که مشتریان زیادی دارند، مدیریت شکایات یک وظیفه مشکل و تکراری است. معمولا بخشی از کار دستی بوده و بخشی انلاین و به همین خاطر سرعت و دقت تحت تاثیر قرار میگیرد. در چنین شرایطی اگر یک دستیار هوشمند(chat-bot) طراحی شود به خودکار سازی بخشی از روند کاری کمک میکند. البته کاربردهای محدود به کسب و کار نبوده و طیف گستردهای را شامل میشود.
یک مثال دیگر توئیتر است. در توئیتر روزانه میلیونها توئیت بین کاربران جهان به اشتراک گذاشته میشود. توئیتر به دلیل ابراز عواطف کاربران مختلف به یک محیط مهم برای تحلیل عواطف تبدیل شده است. امروزه اغلب افراد در مواجهه با پدیده های مختلف اطرافشان، توئیتر را بستری مناسب برای اظهار نظر انتخاب میکنند. برای نمونه در انتخابات ریاست جمهوری هر فرد نظرات خود را در قالب توئیت منتشر میکند و به نوعی توئیتر منعکس کننده بخش مهمی از نگرش افراد جامعه است. یک فرد یا جریان سیاسی بلافاصله بعد از هر اقدامی سریعا میتواند از طریق توئیتر میزان موفقیت اقدام خود را بسنجد؛ کافی است بخش زیادی از توئیتهای مربوط به آن موضوع تحلیل شود و برآیند نتایج حاصل، معیار خوبی برای سنجش افکار عمومی میشود. میتوان نتیجه گرفت از آنجایی که افراد مختلف با علایق متفاوت در توئیتر حضور دارند و نظرات خود را آزادانه بیان میکنند پس بررسی دقیق توئیتر حول یک موضوع خاص (خواه سیاسی – خواه اقتصادی و غیره) میتواند دیدگاه مثبت یا منفی افراد جامعه را تا حدود قابل توجهی پیش بینی کند برای نمونه جریانهای سیاسی و کمپینهای اقتصادی به کمک این روش از تهیه پرسش نامه و بررسی میدانی نظرات افراد تا حدود قابل توجهی بی نیاز میشوند.
روش های کلی پردازش زبان طبیعی
۱- سیستمهای قانون محور(Rule-based systems)
این روش مبتنی بر تولید قوانین مختلف و متعدد به کمک عبارات منظم است. برای مسائل ساده مثل استخراج کد ملی از یک متن روشی مناسب است ولی از آنجایی که اکثر فعالیت های پردازش زبان طبیعی دشوار هستند اگر بخواهیم از این روش استفاده کنیم باید حجم بالایی قاعده تولید کنیم و هربار مراقب موارد استثنا باشیم. همچنین سیستم قابلیت یادگیری خودکار نخواهد داشت و همه چیز دستی خواهد بود و چون پویا نیست عملا با شکست روبرو میشود.
۲- داده کاوی(Data Mining)
این روش نسبت به روش قاعده محور انعطاف بیشتر داشته و قابلیت یادگیری خودکار دارند. مثلا تشخیص ایمیلهای اسپم نیازمند هزاران قاعده است ولی به کمک داده کاوی و روش های کلاسیفیکشن به سادگی قابل حل خواهد بود. البته چالش اصلی در داده کاوی تولید و انتخاب ویژگی است که همگی دستی می باشد و نقطه ضعف محسوب می شوند. البته وقتی به سراغ مواردی مثل ماشین ترجمه می رویم روش های داده کاوی کارایی لازم را نخواهد داشت.
۳- یادگیری عمیق(Deep Learning)
امروزه درصد بالایی از مقالات از این روشها استفاده میکنند و همچنین شرکتهای فعال در زمینه پردازش زبان طبیعی، برای سرویسهای پیچیده خود مثل تولید مدل زبانی، تشخیص زبان، دستیار هوشمند به سراغ یادگیری عمیق میروند. مزیت این روش حذف مرحله استخراج و تولید ویژگی، و خودکار شدن آن است. البته این روش همه جا عالی عمل نکرده و گاهی روشهای داده کاوی عملکرد بهتری دارند برای مثال در برخی حوزههای موضوعی، برای تحلیل عواطف بهتر است از الگوریتمهای داده کاوی استفاده کرد.
در این مقاله مقدمات پردازش زبان طبیعی، تشریح شد و یک دیدگاه کلی نسبت به آن ایجاد شد در مقاله بعدی به سراغ نصب و معرفی ابزارها خواهیم رفت.
منبع:nikamooz
|
|
|