بیش از ۸۰ درصد از داده های موجود در دنیای دیجیتال به صورت داده های متنی هستند تحلیل کردن و فهمیدن این داده های متنی امتیاز مهمیست که از طریق هوش مصنوعی و یادگیری ماشین برای بیزینس های مختلف امکان پذیر شده است بیزینس ها میتوانند با تحلیل و نتیجه گیری از این داده ها در فضا های مجازی ، مقالات ،اسناد و مدارک و... مقرون به صرفگی و بازدهی تبلیغات و تمام روند هایی که در کسب و کارشان از طریق مکالمات متنی انجام میشود را افزایش دهند ما در این مقاله سعی کردیم یک دیدگاه کلی از این تکنولوژی به شما بدیم و چند مورد از مهمترین مدل های تحلیل این داده ها را معرفی کنیم در ابتدا به معرفی چند تا از اصطلاحات پرتکرار میپردازیم که میتوانید از فهرست مطالب هرکدام را به صورت جداگانه برسی کنید میتونید برای یادگیری بیشتر نیز از ویدیو این مطلب در یوتوب در انتهای صفحه استفاده کنید
یکی از حیاتی ترین عمل ها در پروژه هایی مانند پردازش زبان های طبیعی (NLP) ،تحلیل جملات (Sentiment Analysis)، تشخیص نیت و اهداف (intent detection) برچسب زنی یا لیبل گذاری هر کدام از داده های ورودی میباشد طبقه بندی کنندگان هر داده ی ورودی را تحلیل می کنند و با توجه به معیار های درونی برنامه و یا کسب و کار شما برچسب زنی میکنند و به شما تحویل میدهند برای مثال شما 10000 پیام ورودی از مشتریان خود بعد از یک تبلیغات پیامکی داشته اید و نظرات آنها را در مورد برند خود خواسته اید شما معیار های خوب بد و خنثی را برای این طبقه بندی استفاده می کنید جمله (من برند شما را خیلی دوست دارم) وارد طبقه بندی کننده (text classifier) شما میشود و بعد از تحلیل برچسب خوب را به خود میگیرد و میتواند در دیگر قسمت های این برنامه تحلیل شود
لینک توضیحات کامل برنامه های ذکر شده در متن بالا با رنگ ابی مشخص شده است با کلیک بر روی این کلمات میتوانید تمام اطلاعات لازم را بدست بیاورید
خیلی از جاها ممکنه این دو به عنوان هم معنی معرفی بشند امادر اصل اتفاقی که در قلب مدل یادگیری ماشین شما اتفاق میافتد لیبل زنی این اطلاعات است درصورتی که شما میتواندی حتی از شبکه های عصبی (Neural Network) نیز برای انجام این عمل لیبل زنی استفاده کنید در اصل یک مدل مثل یک تخته سیاه هوشمند است که هر چه روی ان بنویسید برای شما تحلیل میکنید بر اساس دسته ای از قوانین که یک از ان ها طبقه بندی کنندگان می باشد
نمونه آموزشی در یادگیری ماشین به یک واحد داده اشاره دارد که برای آموزش مدل استفاده میشود. این نمونه میتواند شامل ورودی (x) و خروجی (y) باشد، مانند ویژگیهای یک خانه و قیمت آن در یادگیری نظارتشده(supervisied learning)در مسائل بدون نظارت (unsupervisied learning)نمونه آموزشی معمولاً شامل دادههای بدون برچسب است که مدل از آنها برای کشف الگوها یا ساختارها استفاده میکند. هر نمونه آموزشی ممکن است به شکل یک نقطه داده چندبعدی، دنبالهای از دادههای زمانی، یا حتی دادهای مصنوعی و افزودهشده باشد. علاوه بر این، در یادگیری تقویتی (reinforcement learning)نمونهها به صورت حالت، عمل، پاداش، تعریف میشوند. این نمونهها، واحدهای اساسی یادگیری مدل هستند و نقش کلیدی در عملکرد و تعمیمپذیری آن دارند.
این تابع، ایدهآل یا تابع حقیقی است که توصیفکننده دقیق رابطه بین دادههاست، اگرچه معمولاً ناشناخته است. مدل یادگیری ماشین تلاش میکند تا تابع هدف را از طریق دادههای آموزشی تقریب بزند. در یادگیری نظارتشده، این تابع به صورت f(x) = yتعریف میشود، اما در دیگر روشها مانند یادگیری تقویتی یا بدون نظارت، ممکن است به صورت ضمنی یا بر اساس اهداف دیگر تعریف شود. تفاوت بین خروجی نهایی مدل و خروجی تابع هدف معیار سنجش مدل میباشد
فرضیه در یادگیری ماشین تابعی پیشنهادی است که مدل بر اساس دادههای آموزشی یاد میگیرد و به عنوان تقریب تابع هدف ( 𝑓 ( 𝑥 )) عمل میکند. این تابع مجموعهای از قواعد یا مرزهای تصمیمگیری است که مدل برای پیشبینیها از آن استفاده میکند. برای مثال، در طبقهبندی ایمیلهای اسپم، فرضیه همان قاعدهای است که پیشبینی میکند یک ایمیل اسپم است یا خیر عملکرد فرضیه با معیارهایی مانند دقت یا خطا سنجیده میشود و طی فرآیندهای بهینهسازی اصلاح میگردد تا به تابع هدف نزدیکتر شود.
الگوریتم یادگیری در یادگیری ماشین مجموعهای از دستورالعملها است که با استفاده از دادههای آموزشی تلاش میکند تا تابع هدف (رابطه بین ورودی و خروجی) را پیدا کند یا تقریب بزند. این الگوریتم از دو بخش اصلی تشکیل شده است: تابع خطا(Loss Function) که مشخص میکند پیشبینی مدل تا چه حد با نتایج واقعی فاصله دارد. روش بهینهسازی (Optimization Technique)که پارامترهای مدل را طوری تنظیم میکند که این فاصله (خطا) کمتر شود. هدف اصلی الگوریتم این است که مدلی بسازد که نهتنها دادههای آموزشی را بهخوبی یاد بگیرد، بلکه بتواند روی دادههای جدید هم عملکرد خوبی داشته باشد.(Hypothesis Space) فضای فرضیه مجموعهای از تمام مدلهای ممکن است که الگوریتم میتواند برای یادگیری انتخاب کند. این فضا نشان میدهد که الگوریتم چه نوع روابطی را میتواند بررسی کند. اگر این فضا بزرگتر باشد، مدل میتواند روابط پیچیدهتری را یاد بگیرد، اما پیدا کردن بهترین مدل در این فضا برای اینکه بتواند روی دادههای جدید خوب عمل کند، خیلی مهم است.
هرجا که یک فرضیه ای برای پیش بینی یا تخمین یک چیزی در حال اجرا باشه اون مدل شماست در یادگیری ماشینی که شم طراجی کردید
در پروژه های طیقه بندی متن ها اولین قدم تعیین هدف ها نسبت به پروژه ی خودتون هستش برای مثال دسته بندی یک باشگاه مشتریان را در نظر بگیرید انواع پیام های ورودی مانند تصویر زیر خواهد بود
در این برنامه ابتدا تمام ورودی ها را بین سه بخش اول دسته بندی و برچسب زنی میکنیم یعد از هر کدام از بخش ها یک طبقه کننده مخصوص خود برای متغیر های درون خود ایجاد میکنند که بتوانم هذ داده را در درست ترین طبقه بدست بیاوریم در این بخش باید مراقب افتادن داده ها روی هم (overlapin) باشید یعنی اگر طبقه های شما معنی های مشابهی داشته باشند مدل شما به اشتباه تصمیم گیری خواهد کرد برای مثال در تصویر بالا یک شکایت درمورد دیر ارسال کردن در دو بخش از طبقه بندی های ما جای میگیرد که این باعث اورلپینگ میشود
پایتون محبوبترین زبان برای طبقهبندی متن با استفاده از یادگیری ماشین است. زبان پایتون به دلیل ساده بودن و کتابخانههایمتعددی که برای ایجاد الگوریتمها در دسترس دارد بسیار مورد استفاده قرار میگیرد. در ادامه، الگوریتمهای استانداردی آورده شدهاند که به شما کمک کنیم بهترین الگوریتم را برای پروژه طبقهبندی متن خود انتخاب کنید.
رگرسیون لجستیک، علیرغم داشتن کلمه (رگرسیون) در نام خود، یک روش یادگیری با نظارت (supervised)است که عمدتاً برای حل مسائل طبقهبندی دودویی (باینری) استفاده میشود، مانند تشخیص ایمیلهای اسپم از غیر اسپم یا پیشبینی نتیجه بله یا خیر. اگرچه رگرسیون و طبقهبندی به نظر میرسند مفاهیمی متضاد باشند، اما رگرسیون لجستیک در واقع یک روش طبقهبندی است. تمرکز اصلی این روش بر روی کلمه لجستیک است که به تابع لجستیک یا (سیگموئید) اشاره دارد. این تابع ریاضی مقدار ورودیها را به یک بازه بین ۰ و ۱ نشانمی دهد، که به مدل اجازه میدهد احتمال تعلق دادهها به یک کلاس خاص را پیشبینی کند. رگرسیون لجستیک به دلیل سادگی و کارایی بالا در مسائلی که رابطه بین ویژگیها و خروجی به صورت خطی قابل توصیف است، بسیار پرکاربرد است. علاوه بر طبقهبندی دودویی، نسخههای توسعهیافته رگرسیون لجستیک، مانند رگرسیون لجستیک چندکلاسه (Multinomial Logistic Regression)، برای مسائل طبقهبندی چندکلاسه نیز به کار میروند. این ویژگیها باعث میشود که رگرسیون لجستیک یکی از ابزارهای پایه و قدرتمند در یادگیری ماشین و تحلیل داده باشد.
از این الگوریتم در موارد متعددی استفاده میشود، از جمله: • پیشبینی ریزش مشتریان • تشخیص ایمیلهای اسپم • پیشبینی کلیک بر روی تبلیغات و وبسایتها • به عنوان تابع فعالسازی در لایههای شبکه عصبی
طبقهبندی کننده نایو بیز بر اساس( قضیه بیز) ساخته شده است. این الگوریتم با یک فرض سادهانگارانه (Naïve) کار میکند: وجود یک ویژگی در یک دسته، مستقل از وجود سایر ویژگیهاست. این طبقهبندیکننده از نوع احتمالاتی است، یعنی برای هر متن ورودی، احتمال تعلق به هر دسته را محاسبه کرده و دستهای با بالاترین احتمال را انتخاب میکند.
فرض کنید میخواهیم طبقهبندیکنندهای بسازیم که تشخیص دهد آیا یک متن درباره ورزش است یا خیر. برای جمله یک بازی بسیار نزدیک میخواهیم احتمال اینکه این جمله درباره ورزش باشد و احتمال اینکه درباره موضوع دیگری باشد را محاسبه کنیم. به زبان ریاضی، این را به صورت P(ورزش | یک بازی بسیار نزدیک) نمایش میدهیم.
در الگوریتم نایو بیز، از قضیه بیز استفاده میکنیم تا این احتمال را محاسبه کنیم. به صورت زیر عمل میکنیم:
P(ورزش | جمله) = [P(جمله | ورزش) * P(ورزش)] / P(جمله)
در اینجا:
P(ورزش) احتمال پیشینی است که یک متن به طور کلی درباره ورزش باشد (مثلاً ۳۰٪ از متنها در مجموعه داده ما درباره ورزش هستند).
P(جمله | ورزش) احتمال اینکه جمله یک بازی بسیار نزدیک در دسته ورزش ظاهر شود (با استفاده از دادههای آموزشی محاسبه میشود).
P(جمله) احتمال اینکه جمله یک بازی بسیار نزدیک به طور کلی ظاهر شود، که میتواند به عنوان مجموع احتمالهای هر دسته محاسبه شود.
فرض کنید در دادههای آموزشی، کلمات بازی و نزدیک به احتمال بیشتری در متنهای ورزشی ظاهر شدهاند. با فرض استقلال کلمات (فرض نایو بودن)، محاسبه P(جمله | ورزش) به صورت زیر انجام میشود:
P(بازی | ورزش) * P(نزدیک | ورزش)
با جایگذاری مقادیر و انجام محاسبات، میتوانیم احتمال نهایی را به دست آورده و تصمیم بگیریم که جمله به کدام دسته تعلق دارد. الگوریتم نایو بیز به دلیل سرعت بالا و سادگی، به ویژه در طبقهبندی متنها، بسیار محبوب است.
کلمه سادهانگارانه (Naïve) از این واقعیت میآید که تمام ویژگیهای جمله به طور مستقل در تعیین موضوع ورزشی بودن یا نبودن آن نقش دارند. با وجود این سادهسازی، مدل نایو بیز به دلیل سادگی در ساخت و توانایی کار با مجموعه دادههای بزرگ، بسیار محبوب است و در بسیاری موارد حتی از سیستمهای طبقهبندی پیشرفتهتر نیز عملکرد بهتری نشان میدهد.
گرادیان نزولی یک فرآیند تکرارشونده است که از یک نقطه تصادفی روی شیب تابع شروع میشود و تا رسیدن به پایینترین نقطه حرکت میکند. این الگوریتم زمانی کاربرد پیدا میکند که نتوان نقاط بهینه را صرفاً با برابر صفر قرار دادن شیب تابع به دست آورد.
تصور کنید مجموعه دادهای با میلیونها نمونه دارید. در روش گرادیان نزولی سنتی، باید از تمام این نمونهها برای تکمیل یک مرحله استفاده کنید و این کار را تا رسیدن به نقطه کمینه تکرار کنید. این فرآیند از نظر محاسباتی بسیار سنگین و زمانبر خواهد بود.
برای حل این مشکل، از گرادیان نزولی تصادفی (SGD) استفاده میشود. در این روش، هر تکرار با یک نمونه منفرد (اندازه دسته برابر با یک) انجام میشود. انتخاب نمونهها به صورت تصادفی و درهمریخته انجام میشود که این امر باعث میشود الگوریتم بتواند با سرعت بیشتری به نتیجه برسد و در عین حال منابع محاسباتی کمتری مصرف کند.
فرض کنید میخواهید سیستمی برای پیشبینی قیمت خانه بر اساس ویژگیهای آن طراحی کنید. شما یک میلیون رکورد از معاملات مسکن دارید. به جای اینکه در هر مرحله تمام یک میلیون داده را پردازش کنید، SGD به طور تصادفی یک معامله را انتخاب میکند، مدل را بر اساس آن بهروزرسانی میکند و به سراغ معامله بعدی میرود. این روش: • سرعت یادگیری را افزایش میدهد • مصرف حافظه را کاهش میدهد • امکان یادگیری آنلاین (real-time) را فراهم میکند
در این الگوریتم، همسایگی نمونههای داده بر اساس نزدیکی و مجاورت آنها تعیین میشود. روشهای متعددی برای محاسبه فاصله بین نقاط داده وجود دارد که معروفترین آنها فاصله مستقیم (فاصله اقلیدسی) است. همسایهها معمولاً ویژگیها و رفتارهای مشابهی دارند که باعث میشود در یک گروه طبقهبندی شوند.
ایده اصلی این روش ساده است: برای هر داده جدید، K همسایه نزدیک آن را بررسی میکنیم و آن را به گروهی که بیشترین فراوانی را در بین این K همسایه دارد، نسبت میدهیم. برای مثال، اگر K=1 باشد، داده جدید به گروه نزدیکترین همسایهاش تعلق میگیرد.
فرض کنید میخواهیم یک مقاله خبری را دستهبندی کنیم. الگوریتم KNN: • کلمات کلیدی مقاله را استخراج میکند • فاصله این کلمات را با کلمات مقالات موجود در پایگاه داده محاسبه میکند • K مقاله با نزدیکترین محتوا را پیدا میکند • دستهبندی که بیشترین تکرار را در این K مقاله دارد را انتخاب میکند
برخلاف روشهای دیگر مانند طبقهبندی کننده بیز، KNN به احتمالات پیشین نیاز ندارد و از نظر محاسباتی کارآمد است. عملیات اصلی در این روش، مرتبسازی اسناد آموزشی برای یافتن K همسایه نزدیک به سند مورد آزمایش است.
یکی از چالشهای اصلی در شبکههای عصبی و معماریهای عمیق، درک فرآیند تصمیمگیری الگوریتم است. در یادگیری عمیق، ما میتوانیم به دقت طبقهبندی فوقالعادهای دست پیدا کنیم، اما نمیدانیم دقیقاً چه عواملی در این تصمیمگیری نقش داشتهاند. درخت تصمیم این مزیت را دارد که میتواند تصویری گرافیکی از نحوه تصمیمگیری طبقهبندیکننده را به ما نشان دهد.
• قابل درک بودن برای کاربران نهایی • نیاز به آمادهسازی حداقلی دادهها • امکان مشاهده مستقیم روند تصمیمگیری • حساسیت به تغییرات کوچک در دادهها
در تحلیل نظرات مشتریان، درخت تصمیم میتواند اینگونه عمل کند: • آیا کلمه عالی در متن وجود دارد؟ اگر بله -> نظر مثبت • آیا کلمه بد وجود دارد؟ اگر بله -> نظر منفی • آیا قیمت ذکر شده؟ اگر بله -> بررسی مقدار قیمت این ساختار درختی به راحتی قابل فهم و پیگیری است.
جنگل تصادفی یک تکنیک یادگیری ماشین است که از روش یادگیری گروهی (Ensemble Learning) استفاده میکند. این الگوریتم با ترکیب چندین درخت تصمیمگیری مختلف، که هر کدام به صورت مستقل آموزش دیدهاند، به حل مسائل پیچیده میپردازد. هر درخت در این جنگل، با استفاده از نمونهگیری تصادفی از دادهها و ویژگیهای متفاوت ساخته میشود.
• مقاومت در برابر Over-fitting • توانایی کار با دادههای پرت (Outliers) • دقت بالا در پیشبینی • قابلیت تشخیص اهمیت ویژگیها • عملکرد مناسب با دادههای با ابعاد بالا
در طبقهبندی متن، هر درخت در جنگل تصادفی با زیرمجموعهای از کلمات و عبارات کار میکند. برای مثال، یک درخت ممکن است روی کلمات ابتدای متن تمرکز کند، درخت دیگر روی کلمات کلیدی خاص، و درخت سوم روی ساختار جملات. تصمیم نهایی با رأیگیری بین تمام درختها گرفته میشود.
فرض کنید میخواهیم اخبار را دستهبندی کنیم: • درخت اول: بررسی کلمات کلیدی سیاسی • درخت دوم: تحلیل لحن متن • درخت سوم: بررسی نامهای خاص و مکانها • درخت چهارم: تحلیل طول جملات و ساختار متن هر درخت رأی خود را میدهد و تصمیم نهایی بر اساس بیشترین رأی گرفته میشود. با افزایش تعداد درختها، دقت پیشبینی افزایش مییابد.
برخلاف یک درخت تصمیم تنها، جنگل تصادفی به دلیل استفاده از چندین درخت و میانگینگیری از نتایج آنها، در برابر نویز و تغییرات کوچک در دادهها مقاومتر است. این ویژگی باعث میشود که برای کاربردهای دنیای واقعی، مانند تحلیل نظرات مشتریان یا دستهبندی اسناد، گزینه بسیار مناسبی باشد.
ماشین بردار پشتیبان یک مدل یادگیری با نظارت است که برای مسائل طبقهبندی دوگانه طراحی شده است. این الگوریتم با ایجاد یک ابَرصفحه (Hyperplane) بهینه، دادهها را به دو دسته تقسیم میکند. در فضای طبقهبندی متن، SVM میتواند کلمات و عبارات را در یک فضای چندبعدی نگاشت کرده و بهترین مرز تصمیمگیری را بین دستههای مختلف پیدا کند.
• عملکرد عالی در فضاهای با ابعاد بالا • حافظه کارآمد • انعطافپذیری با توابع کرنل مختلف • دقت بالا در طبقهبندی متون • مقاومت در برابر Over-fitting
در تشخیص ایمیلهای اسپم: • هر ایمیل به برداری از کلمات تبدیل میشود • SVM یک مرز تصمیمگیری بین ایمیلهای اسپم و عادی ایجاد میکند • کلمات کلیدی نزدیک به مرز تصمیمگیری به عنوان بردارهای پشتیبان شناخته میشوند • ایمیلهای جدید بر اساس موقعیتشان نسبت به این مرز طبقهبندی میشوند
در طبقهبندی متن، SVM بهویژه در مواردی که تعداد ویژگیها (کلمات) زیاد و تعداد نمونهها کم است، عملکرد بسیار خوبی از خود نشان میدهد. این الگوریتم با استفاده از توابع کرنل میتواند روابط غیرخطی بین کلمات را نیز در نظر بگیرد.
پس از ساخت مدل، مهمترین سؤال این است: مدل ما چقدر خوب کار میکند؟ ارزیابی دقیق مدل، تعیینکننده میزان دقت پیشبینیهای ماست.
نسبت پیشبینیهای درست به کل پیشبینیها. این معیار زمانی مفید است که دادهها متوازن باشند.
نسبت پیشبینیهای مثبت درست به کل پیشبینیهای مثبت. این معیار نشان میدهد چه تعداد از موارد مثبت پیشبینی شده واقعاً درست بودهاند.
نسبت پیشبینیهای مثبت درست به کل موارد مثبت واقعی. این معیار نشان میدهد چه نسبتی از موارد مثبت واقعی را توانستهایم شناسایی کنیم.
میانگین هارمونیک صحت و فراخوانی. فرمول:F1 = 2 × (Precision × Recall) / (Precision + Recall)
انتخاب معیار مناسب برای ارزیابی به هدف پروژه و هزینههای خطاهای مثبت و منفی نادرست بستگی دارد. در مواردی که دادهها نامتوازن هستند، معیار F1 معمولاً انتخاب بهتری نسبت به دقت کلی است.
در این مقاله، با مفاهیم اساسی طبقهبندی متن آشنا شدیم. از تعریف اولیه طبقهبندیکننده متن تا الگوریتمهای پیشرفته و روشهای ارزیابی را بررسی کردیم. دیدیم که چگونه هر الگوریتم با رویکرد منحصر به فرد خود به حل مسئله طبقهبندی میپردازد.
با گسترش روزافزون دادههای متنی در دنیای دیجیتال، اهمیت طبقهبندی متن همچنان رو به افزایش است. ترکیب این تکنیکها با یادگیری عمیق و پردازش زبان طبیعی، افقهای جدیدی را در تحلیل و درک متون باز میکند.
تمامی مطالب این مقاله با استفاده از منابع معتبر علمی و آکادمیک گردآوری و تألیف شده است. مفاهیم و مثالهای ارائه شده بر اساس آخرین پژوهشها و بهترین شیوههای موجود در حوزه طبقهبندی متن میباشد.