حل یک مسئله NLP با قانون بیزین

منبع عکس
منبع عکس


یکی از مهم‌ترین پیش‌نیازهای یادگیری ماشین، مفاهیم آمار و احتمال است که ساده‌ترین فرمول‌های آن نقش مهمی در حل مسائل هوش مصنوعی دارد. قبلاً در مورد احتمال شرطی و قانون بیز در اینجا توضیح دادم. معمولاً برای درک فرمول‌های احتمال، مثال‌های کلاسیکی همچون پرتاب سکه یا تاس مطرح می‌شود. در این قسمت، مثالی واقعی از مسائل پردازش زبان طبیعی را با قانون بیزین حل می‌کنیم. برای ساده‌تر شدن محاسبات، تعداد نمونه‌ها کم در نظر گرفته شده تا فهم مباحث برای خوانندگان راحت‌تر باشد.

فرض کنید می‌خواهیم از بین نظرات کاربران یک سایت فروشگاهی، میزان رضایت خریداران را از یک محصول خاص بررسی کنیم (این مسئله در پردازش زبان طبیعی به عقیده کاوی یا opinion mining معروف است). نحوه‌ی تفکر به مسائل هوش مصنوعی به این صورت است که باید به دانش قبلی تکیه کنیم. در اینجا هم باید از قبل تعریف کنیم که منظور از نظر مثبت و منفی چیست؟ به عبارت دیگر جملات فردی که از خرید یک کالا رضایت دارد چه تفاوتی با جملات فرد ناراضی دارد؟ پس بهتر است یک فرضیه برای خود در نظر بگیریم.

توجه: مسئله‌ی عقیده کاوی در دنیای واقعی پیچیدگی‌های زیادی دارد؛ مانند نظرات خنثی، جملات مبهم، رضایت نسبی، استفاده از کلمات با بار مثبت در کنار افعال منفی و... که در اینجا از آن صرف نظر می‌شود. زیرا هدف بررسی فرمول بیزین است تا مفاهیم مربوط به آن بهتر درک شود. همچنین از پیش‌پردازش‌های لازم در NLP نیز صرف نظر شده است.

فرض کنید مسئله‌ی مورد نظر دو کلاسه است و مجموعه داده‌ای که در اختیار داریم شامل پنج جمله‌ی زیر است. برچسب هر جمله در پرانتز نوشته شده:

  1. کیفیت و قیمت خوب است. (مثبت)
  2. پیشنهاد میکنم. قیمتش هم خوب هست. (مثبت)
  3. اصلا نخرید. زشت و بدون کیفیت (منفی)
  4. نسبت به قیمت خوب بود و سایز مناسبی داشت. (مثبت)
  5. راضی نیستم رنگ های زشت و جنس خشک و مسخره (منفی)

همانظور که مشاهده می‌شود، در جملات مثبت معمولاً از کلماتی چون «خوب» و «مناسب» استفاده شده است. در مقابل در جملات منفی کلماتی مانند «زشت» و «مسخره» به کار رفته است.

فضای نمونه در این مثال به دو بخش (دو کلاس) تقسیم شده:

اگر رویداد وجود کلمه «کیفیت» در جمله را در نظر بگیریم، نمودار به این شکل خواهد بود:

با نگاه دقیق‌تر به نمودار می‌توان گفت که فضای نمونه به دو مجموعه مثبت و منفی افراز شده است.

یادآوری: افزار کردنِ فضای نمونه به دو بخش بدین معناست که این دو مجموعه با هم اشتراک ندارند و اجتماع آن‌ها برابر با کل فضای نمونه است.

از طرفی فرض کنید که کاربر دیگری چنین نظری در سایت ثبت کرده است:

«رنگ و کیفیت خوب،خیلی خوشگله،ولی قیمت یکم بالاست»

با در اختیار داشتن مجموعه داده‌ی آموزشی، چطور پیش‌بینی کنیم که این نظر مثبت است یا منفی؟ می‌توانیم با قاعده‌ی بیز احتمال مثبت یا منفی بودن را بر اساس وجود کلمات محاسبه کنیم. پارامتر X نشان دهنده‌ی نوع کلاس است:

می‌خواهیم بر اساس دو رویداد وجود کلمه «خوب» و «کیفیت» محاسبه کنیم که این جمله در کدام کلاس قرار می‌گیرد؟ بار دیگر مجموعه داده‌ی آموزشی را با در نظر گرفتن این دو کلمه بررسی کنید:

  1. کیفیت و قیمت خوب است. (مثبت)
  2. پیشنهاد میکنم. قیمتش هم خوب هست. (مثبت)
  3. اصلا نخرید. زشت و بدون کیفیت (منفی)
  4. نسبت به قیمت خوب بود و سایز مناسبی داشت. (مثبت)
  5. راضی نیستم رنگ های زشت و جنس خشک و مسخره (منفی)

حال احتمال این را حساب کنیم که جمله‌ی موردنظر مثبت باشد به شرطی که کلمه‌ی «خوب» وجود داشته باشد. می‌توانیم کلاس مثبت را با ۱ و کلاس منفی را با صفر نشان دهیم:

اگر به مجموعه داده‌ی آموزشی نگاه کنید خواهید دید که در هیچ یک از نظرات منفی کلمه‌ی «خوب» به کار نرفته است. پس احتمال منفی بودن به شرط اینکه کلمه‌ی «خوب» در جمله وجود داشته باشد صفر است. در فرمول بالا، ابتدا باید سه مورد را محاسبه کنیم:

۱− احتمال اینکه کلمه‌ی «خوب» به کار رفته به شرطی که می‌دانیم جمله مثبت است.

۲− احتمال اینکه جمله مثبت باشد.

۳− احتمال اینکه کلمه‌ی خوب در جملات به کار رود.

تمامی این محاسبات با توجه به مجموعه داده‌ی در دسترس (یعنی ۵ جمله‌ی ذکر شده) انجام می‌شود. برای مطالعه درباره‌ی احتمال شرطی و قانون بیز، می‌توانید به اینجا مراجعه کنید.

محاسبه‌‌ی بخش ۱

باید جملات مثبت را در نظر بگیریم، سپس تعداد جملاتی که در آن‌ها کلمه‌ی «خوب» به کار رفته را بشماریم. در این مثال، در هر سه جمله‌ی مثبت، کلمه‌ی «خوب» به کار رفته است:

محاسبه‌ی بخش ۲

از بین ۵ جمله‌ی مجموعه داده‌ی آموزشی، سه مورد مثبت هستند:

محاسبه‌ی بخش ۳ (قانون احتمال کل)

برای محاسبه‌ی احتمال اینکه استفاده از کلمه‌ی «خوب» چقدر است، لازم است تا با مفهومی به نام قانون احتمال کل آشنا شوید.

اگر مجموعه جهانی U به مجموعه‌های B2, B1 , ... افراز شده باشد، آنگاه احتمال رویدادی به نام A را می‌توان به صورت زیر محاسبه کرد:

در این مثال نیز، مطابق شکلی که قبلاً مشاهده شد، مثبت یا منفی بودن نظرات، کل فضای نمونه را به دو بخش افراز کرده است. پس می‌توان احتمال یک رویداد مانند وجود کلمه‌ی «خوب» را با این قانون محاسبه کرد. در صورت علاقه‌مندی بیشتر و اثبات قانون احتمال کل، می‌توانید به این درس در سایت مکتبخونه مراجعه کنید. پس احتمال کلمه‌ی «خوب» به صورت زیر محاسبه می‌شود:

حال که تمامی مقادیر را حساب کردیم، می‌توانیم در فرمول بیز جایگذاری کنیم:

همانطور که انتظار می‌رفت، در این مثال چون کلمه‌ی «خوب» در تمامی جملات مثبت به کار رفته، باعث شده که احتمال مثبت بودن نظر به شرط این کلمه ۱ باشد. در مقابل نیز احتمال منفی بودن به شرط کلمه‌ی «خوب» صفر است.
همین روند به ازای کلمه‌ی «کیفیت» به صورت زیر است. ابتدا احتمال اینکه جمله مثبت باشد به شرطی که کلمه «کیفیت» وجود داشته باشد محاسبه می‌شود:

با توجه به توضیحات بخش قبل، مقادیر را می‌توان در فرمول جایگذاری کرد:

حال سعی کنید خودتان احتمال این را حساب کنید که این نظر منفی باشد به شرطی که کلمه‌ی کیفیت به کار رفته باشد. واضح است که این مقدار نیز برابر با ۰٫۵ می‌شود؛ زیرا جمع این دو احتمال باید برابر ۱ باشد.
تا اینجا به ازای دو کلمه، احتمال مثبت یا منفی بودن نظر جدید را محاسبه کردیم. طبیعی است که فقط بر اساس دو کلمه‌ی ذکر شده تصمیم‌گیری صورت نمی‌گیرد و ممکن است استراتژی‌های متفاوتی برای حل مسائل عقیده کاوی به کار گرفته شود.