مدل‌سازی موضوعات (Topic Modeling) و کاربرد آن در متن‌کاوی

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

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

اگر درسِ خوشه‌بندی را از دوره‌ی داده‌کاوی خوانده باشید، احتمالاً به یاد دارید که در داده‌کاوی الگوریتم‌هایی وجود دارند که بر خلافِ طبقه‌بندی، می‌توانند به صورتِ خودکار الگو‌های موجود در داده‌ها را شناسایی کرده و عملیاتِ گروه‌بندی را بر روی داده‌ها انجام دهند. مدل‌سازیِ موضوعات یا همان Topic Modeling نیز یک نمونه از خوشه‌بندی در متون است که به وسیله‌ی آن می‌توان متونِ مختلف را به موضوعات متفاوت مرتبط کرد.

در فرآیندِ Topic Modeling هر متن، موضوعاتِ مختلفی دارد و هر موضوع از کلماتِ متفاوتی تشکیل شده است. برای مثال فرض کنید یک سری متن خبری (در حدود ۱میلیون) داریم و می‌خواهیم موضوعات آن‌ها را به صورت خودکار مشخص کنیم. دو متن از این ۱میلیون متن را در زیر می‌آوریم:

متن۱: رئیس جمهور دیروز از تهران سفر کرد و جهت انجام پاره‌ای از مذاکرات وارد پاریس شد.
متن۲: در تولید املتِ مکزیکی که یکی از غذا های آمریکای شمالی است از تخم‌مرغ، گوجه، فلفل سبز و فلفل سیاه استفاده می‌شود.

حال فرض کنید، می‌خواهیم از بین این مجموعه‌ی داده، ۳موضوع (Topic) مختلف را انتخاب کنیم. الگوریتم‌های Topic Modeling به این صورت عمل می‌کنند که با مشاهده‌ی تمامیِ متون، سعی در ایجادِ گروه‌هایی دارد که این گروه‌ها از کلماتِ نزدیک به هم تشکیل شده‌اند. به این گروه‌ها، موضوعات (Topics) می‌گویند. مثلاً در مثال بالا ممکن است الگوریتمِ Topic Modeling به ۳موضوعِ زیر برسد:

موضوع۱ شامل کلمات: رئیس (۹۰٪)، مذاکره (۸۰٪)، جمهور (۵۰٪)، تهران (۳۰٪)
موضوع۲ شامل کلمات: غذا (۸۰٪)، فلفل (۸۰٪)، تخم‌مرغ (۷۰٪)، گوجه (۷۰٪)، استفاده (۴۵٪)
موضوع۳ شامل کلمات: تهران (۹۰٪)، مکزیک (۸۰٪)، آمریکا (۷۰٪)، پاریس (۷۰٪)

همان‌طور که می‌بینید، الگوریتمِ Topic Modeling سه موضوع نسبتاً مشخص را پیدا کرد که هر موضوع از چند کلمه تشکیل شده‌اند. البته احتمالِ تعلقِ هر کلمه به هر موضوع نیز کم و زیاد است که با درصد (٪) مقابل آن نمایش داده شده است. برای مثال موضوعِ ۱ شامل کلماتی است که بیشتر به مبحثِ سیاست مربوط می‌شود. موضوعِ ۲ بیشتر حوزه‌ی خوراکی و غذا را مد نظر دارد و موضوعِ شماره‌ی ۳ در مورد مکان‌ها است. الگوریتمِ Topic Modeling این امکان را دارد که علاوه بر ساختِ موضوعات، ارتباطِ آن‌ها را با متون در مجموعه‌ی داده نیز برقرار کند. برای مثال ممکن است الگوریتمِ Topic Modeling از متونِ مثالِ بالا به نتیجه‌ی زیر برسد:

متن۱: موضوع۱ (۹۰٪)، موضوع۲ (۱۰٪)، موضوع۳ (۳۰٪)
متن۲: موضوع۱ (۱۰٪)، موضوع۲ (۸۰٪)، موضوع۳ (۱۰٪)

مشاهده می‌کنید که متن۱ (که در مورد سفر رئیس جمهور به پاریس بود) بیشتر به موضوع۱ مرتبط شده است (۹۰درصد) ولی متن۲ (که در مورد پخت‌و‌پز و غذا بود) بیشتر به موضوع۲ مربوط شده است (۸۰٪). در واقع عملیاتِ شناسایی موضوع برای متون و مدل کردن آن توسط الگوریتم‌های حوزه‌ی Topic Modeling انجام می‌شود.

از الگوریتم‌های شاخصِ این حوزه می‌توان به LDA که مخفف Latent Dirichlet Analysis است و همچنین الگوریتم LSA که مخفف Latent Semantic Analysis است اشاره کرد. این الگوریتم‌ها با مشاهده‌ی متون و تحلیلِ آن‌ها می‌توانند به نتایجی مانند مثال بالا برسند.

منابع این بحث و اطلاعات بیشتر

» وب‌سایت KDnuggets

» وب‌سایت TidyTextMining

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

6 دیدگاه دربارهٔ «مدل‌سازی موضوعات (Topic Modeling) و کاربرد آن در متن‌کاوی»

  1. سلام
    آیا مدل سازی موضوعات زیر مجموعه متن کاوی می باشند؟
    برای متن کاوی مقالات علمی خوشه بندی بهتره استفاده بشه یا مدل سازی موضوعی؟
    متشکرم

    1. سلام
      بله، مدل‌سازی موضوعات یک زیر مجموعه از متن‌کاوی هست که می‌توان آن را یک خوشه‌بندی هم به حساب آورد. بسته به مسئله می‌تونید خوشه‌بندی کنید یا Topic Modeling

  2. سلام
    ممنون و متشکرم از پاسخگوییتون
    در شناسایی موضوعات یک سری از مقالات علمی بهتره از مدلسازی موضوعی استفاده بشه یا خوشه بندی با الگوریتم هایی مانند k-means ؟
    به طور کلی چه تفاوتی بین خوشه بندی و مدلسازی موضوعی هست؟
    متشکرم

  3. با سلام ضمن تشکر از ارائه مطالب به زبان ساده و قابل فهم
    لطفا در مورد روش LDA هم مطلب بگذارید.

  4. سلام
    ممنون و متشکرم از پاسخگوییتون
    در شناسایی موضوعات یک سری از مقالات علمی بهتره از مدلسازی موضوعی استفاده بشه یا خوشه بندی با الگوریتم هایی مانند k-means ؟
    در مقالات علمی هر دو مورد رو دیدم که استفاده می کنند؟
    به طور کلی چه تفاوتی بین خوشه بندی و مدلسازی موضوعی هست؟
    متشکرم

  5. ببخشید الگوریتم از کجا متوجه میشه کلمات پاریس امریکا و مکزیک رو باید توی یه گروه بذاره؟ یا مثلا فلفل و تخم مرغ و گوجه رو از کجا میفهمه غذا هستن و توی یه گروه میذارتشون؟
    کاش وقت کنید کامنت ها رو بخونین و جواب بدید

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

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