کاربرد داده‌کاوی و یادگیری ماشین در پردازش متن (Text Processing)

مدرس: مسعود کاویانی

با خواندن دروسِ قبلیِ دوره‌ی جاری، متوجه شده‌اید که داده‌کاوی و یادگیری ماشین بیشتر در دو دسته نظارت شده (مانند طبقه بندها) و غیر نظارت شده (مانند خوشه بندها) قرار دارند .البته که دسته‌های دیگر مانند یادگیری تقویتی نیز وجود دارد. در این درس میخواهیم برای هر کدام از این دسته‌ها، کاربردهایی در دنیای واقعی ارائه دهیم. یکی از حوزه‌های کاربردی در داده‌کاوی، پروژه‌های مختلفِ متن‌کاوی و پردازشِ زبانِ طبیعی (natural language processing) می‌باشد.

ابتدا اجازه دهید با مثالِ طبقه‌بندیِ اخبار شروع کنیم. وب سایت‌هایی مانند Google News اخبارِ موجود در خبرگزاری‌های مختلف را جمع آوری می‌کنند. این اخبار می‌توانند در دسته‌های مختلف مانند ورزشی، سیاسی، اجتماعی، مالی و اقتصادی و… قرار بگیرند. اگر یک سازمان که کارِ جمع آوریِ خبر را نجام می‌دهد بخواهد هر خبر را به صورتِ دستی مثلاً توسط یک اُپراتور به دسته‌ی مربوطه برچسب بزند، زمانِ بسیار زیادی صرف خواهد شد (فرض کنید در هر ساعت در حدود ۱۰۰ هزار خبر داشته باشیم). برای حل این مشکل می‌توان از طبقه‌بندی (classification) استفاده کرد. به صورتی که ابتدا برای هر دسته‌ی ورزشی، سیاسی، اجتماعی و…، تعدادی خبر را به صورت دستی توسط انسان یا همان ناظر، برچسب (label) بزنیم، سپس این دسته‌ها را به الگوریتمِ یادگیری ماشین بدهیم. این الگوریتم‌ها از داده‌هایی که برایشان برچسب زده‌ایم، یاد گرفته و می‌توانند اخبارِ جدیدی که برچسب آن‌ها مشخص نیست را به صورت خودکار (احتمالاً با کمی خطا) برچسب بزنند.

بحث تحلیل احساس (sentiment analysis) در متن‌کاوی نیز بسیار پرکاربرد است. فرض کنید یک فروشگاه اینترنتی دارید و کاربران هر روز در پایینِ محصولاتِ مختلف، نظراتِ (comments) متفاوتی قرار می‌دهد. ممکن است این توضیح، نقدِ یک کالا باشد و یا ممکن است در تاییدِ این کالا توضیحاتی نوشته شده باشد. یکی از کاربردهای داده‌کاوی در اینجا، می‌تواند تشخیصِ خودکارِ مثبت یا منفی بودنِ یک نظر (comment) باشد. برای این کار، می‌توانید یک مجموعه‌ی داده (dataset) از نظراتِ مثبت و منفی را ایجاد کرده و به صورت دستی توسط انسان برای هر نظر برچسب ۱ (مثبت) یا ۱- (منفی) بگذارید. همچنین اگر توضیحْ به صورت خنثی بود یعنی نه تایید کرده بود و نه نقد، میتوان از عدد ۰ استفاده کرد. سپس این مجموعه داده‌ی آموزشی را به الگوریتمِ طبقه‌بند (classifier) تزریق کرده تا این الگوریتم یاد بگیرد. سپس می‌توانید مدلِ یادگرفته شده را در جایی بر روی حافظه ذخیره کنید. بعد از آن الگوریتم می‌تواند احساسِ نظرات جدیدی که کاربران پایین هر محصول قرار می دهند را (احتمالاً با کمی خطا) برچسب بزند. مثلاً اگر نقدی انجام شده است، الگوریتم برچسب ۱- را طبق آن چیزی که در بخشِ آموزش، یاد گرفته است، برای این نظر انتخاب می‌کند. با این کار به صورت خودکار می‌توانید بفهمید که مثلاً از میان ۷۰ نظرِ درج شده توسط کاربران به صورت کلی، مشتریان چه دیدگاهی داشته‌اند. یعنی چند درصد کاربران در مورد یک برند، نظر مثبت یا منفی‌ای داشته اند.

متن‌کاوی همچنین در ساخت ربات‌های چت (chat bots) کاربردهایی دارد. به صورتی که یک فرد معمولی می‌تواند سوال‌های مختلفی را از سِرور بپرسد و سِرور خودکار پاسخ را به صورت متن برمی‌گرداند. البته پیاده سازیِ chat botها معمولاً نیاز به تحقیق و عملیات گسترده و خاصی دارند.

متن‌کاوی همچنین می تواند در تبلیغات در شبکه‌های اجتماعی بسیار کارا باشد. با تحلیلِ متونِ مختلفی که یک شخص درج می‌کند (یا لایک می‌کند) می‌توان به این نتیجه رسید که این شخص به چه دسته‌ای از مطالب و موضوعات علاقه دارد. مثلاً شخصی بیشتر نوشته‌های مربوط به ورزش را لایک می‌کند. سیستم به صورتِ خودکار می‌تواند بفهمد که این نوشته‌ی خاص در مورد ورزش است و شخصی این نوشته را لایک کرده. پس می‌تواند تبلیغات مرتبط با ورزش را به او نمایش دهد.

البته که شاید یکی از معروف‌ترین استفاده‌ها در حالِ حاضر از پردازش متن، ساختِ موتورهای جستجو مانند Google باشد. این موتورها با روش‌های مختلف و پیشرفته‌ی پردازشِ متن، قادر هستند کاربرانِ نهاییِ سیستم را در سریع‌ترین زمانِ ممکن به صفحه مورد نظر خود برسانند.

ترتیب پیشنهادی خواندن درس‌های این مجموعه به صورت زیر است:

یک دیدگاه دربارهٔ «کاربرد داده‌کاوی و یادگیری ماشین در پردازش متن (Text Processing)»

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *