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

در این پروژه شما باید آیات قرآن را با استفاده از ظاهر آیات به همراه ترجمه و تفسیر آنها خوشه‌بندی کنید.

۱. مقدمه

با توجه به گسترش روز افزون داده ها و دشوار شدن پردازش اطلاعات توسط انسان و نیاز به دسترسی سریع به منابع مهم و مورد علاقه به لزوم استفاده از ماشین- ها و وجود روش هایی قوی برای پردازش اطلاعات در این زمینه پی برده شد. در همین راستا ارائه ی ابزارهایی که با بررسی متون بتوانند تحلیلی روی آنها انجام دهند باعث شکل گیری زمینه‌ای جدید در هوش مصنوعی به نام یادگیری متن گردید. این حوزه شامل تمام فعالیت هایی که به نوعی به دنبال کسب دانش از متن هستند ( مثل آنالیز داده های متنی توسط تکنیکهای یادگیری ماشین، بازیابی اطلاعات هوشمند، پردازش زبان طبیعی یا روشهای مرتبط دیگر) می شود. یکی از تکنیکهای یادگیری ماشین در زمینه پردازش متن استخراج الگوهای موجود در بین مجموعه داده های بزرگ است که داده کاوی نام دارد. استفاده از داده کاوی در مورد متن شاخه ای به نام متن کاوی را در علوم هوش مصنوعی بوجود آورد. از جمله فعالیتهای بسیار مهم در این زمینه، خوشه بندی متن می‌باشد.
خوشه بندی داده ها را به گروه هایی تقسیم می کند که با معنا و کارا هستند. خوشه ها باید به گونه ای باشند که ماهیت داده ها را حفظ کنند و تمام ویژگی های آنها را داشته باشند. هدف این است که داده های داخل خوشه حداکثر شباهت را با هم و حداقل شباهت را با داده های سایر خوشه ها داشته باشند. داده ها را به شکل های متفاوت می توان خوشه بندی کرد و به طور قطع نمی توان گفت که کدام نوع از خوشه بندی بهترین نوع است زیرا تعریف خوشه بندی یک تعریف نادقیق1 است. بهترین خوشه بندی را نتیجه مورد انتظار ما و ماهیت داده ها مشخص می کند[1].
از جمله کاربردهای خوشه بندی می توان به یافتن سند های مشابه، سازماندهی مجموعه های عظیم سند، سیستم پیشنهاد دهنده، تشخیص محتوای تکراری و تقلب و بهینه سازی جست و جو اشاره کرد[2].
قرآن کریم کتاب مرجع بیش از 1.6 میلیارد مسلمان سرتاسر جهان است و استخراج دانش و اطلاعات از آن مختص گروه خاصی از مردم نیست. قرآن طیف گسترده ای از موضوعات و قوانین زندگی را پوشش می دهد اما هر موضوعی توسط مجموعه ای از آیات و سوره های متوالی پوشش نمی یابد و یک سوره (حتی یک آیه) معمولا به موضوعات مختلفی می پردازد، از این رو خوشه بندی آیات قرآن برای دسترسی بهتر به موضوعات مختلف مورد نیاز بشر انجام می شود.

۲. کارهای مرتبط

برای قابل فهم کردن اسناد برای ماشین از مدل های نمایش بردار از قبیل مدل فضای برداری، مدلIDF-TF 2 ، مدل گراف و مدل های احتمالی استفاده می شود[3].
مرحله ی بعد مرحله ی پیش پردازش متن است، در این مرحله روی داده های ورودی عملیاتی (مثل حذف بعضی کلمات و یا تغییر شکل آنها) انجام می شود تا به صورتی درآیند که برای پردازش مناسب تر باشند. از خروجی این مرحله که مجموعه ای از کلمات است در مدل فضای برداری استفاده می شود.

  1. فیلتر کردن:
    حذف کلماتی که اطلاعات مفیدی درباره ی متن ندارند. در مورد آیات قرآن این مرحله شامل حذف حرکات از کلمات است. چرا که برای خوشه بندی و مدل سازی کلمه ی «الرَّحمنِ»با کلمه ی «الرحمن» تفاوتی ندارد و حرکات تمایزی بین معنای کلمات ایجاد نمی کنند.

  2. نرمال سازی:
    یکی از مشکلات زبان عربی که خصوصاً در رسم الخط قرآن بسیار به چشم می خورد شیوه های مختلف نوشتن یک کلمه است. مثلاً نگارش همزه در این زبان چندین شکل مختلف دارد (ئ، أ، ؤ، ء) که در مواقع مختلف و با توجه به حرکتی که روی آن قرار گرفته از یکی از آن ها استفاده می شود در مرحله ی نرمال سازی این گونه موارد به یک شکل تبدیل می شوند.

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

  4. حذف کلمات توقف:
    کلمه ی توقف 3 به کلمه ای گفته می شود که به تنهایی معنای خاصی را نمی رساند و در واقع در مدل فضای برداری اطلاعات مفیدی در اختیار نمی گذارد. معمول ترین روش برای حذف کلمات توقف مقایسه ی مجموعه کلمات متن با مجموعه ی مشخصی از کلمات توقف است. معمولاً لیستی از کلمات توقف برای زبان های مختلف موجود است.

  5. هرس کردن:
    در این مرحله کلماتی که تکرار آن ها در مجموعه ی اسناد بسیار کم است را حذف می کنند. ایده ی این کار آن است که این کلمات حتی اگر برای تمایز خوشه ها قدرت زیادی داشته باشند، تنها به ساخت تعداد کمی از خوشه ها کمک می کنند. در بعضی موارد کلماتی که بسیار تکرار شده باشند را هم حذف می کنند.

  6. کاهش ابعاد 4 :
    داده های با ابعاد زیاد باعث پیچیدگی محاسبات خواهند شد. در طول خوشه بندی N سند ممکن است M خصوصیت مختلف را در نظر بگیریم درحالی که M>>N؛ اما مسئله اینجاست که ممکن است نیازی به بررسی این تعداد خصوصیت نباشد و در نتیجه ابعاد را کاهش می دهیم. درصورتی که کاهش ابعاد در یک فرایند با ناظر انجام پذیرد، به آن انتخاب خصوصیات می گوییم. در این فرایند، ناظر خصوصیاتی را که معیارهای مشخصی داشته باشد انتخاب می کند. در حالت دیگر استفاده از یک فرایند بدون ناظر است. به این فرایند استخراج خصوصیات گفته می شود. استخراج خصوصیات طی یک تبدیل از فضای M-بعدی به یک فضای K-بعدی صورت می پذیرد که K<M. این تبدیل می تواند هم به صورت خطی و هم به صورت غیرخطی انجام شود. تحلیل اجزای اصلی و تجزیه ی مقادیر منحصر به فرد از جمله روش های کاهش ابعاد هستند[3].
    در مرحله ی بعد به خوشه بندی مطالب می رسیم
    روش‌های خوشه‌بندی
    روش‌های خوشه‌بندی را می‌توان از چندین جنبه تقسیم‌بندی کرد:

    1. خوشه‌بندی انحصاری 5 و خوشه‌بندی با هم‌پوشی 6 :
      در روش خوشه‌بندی انحصاری پس از خوشه‌بندی هر داده دقیقأ به یک خوشه تعلق می‌گیرد (مانند روش خوشه‌بندی K-Means). ولی در خوشه‌بندی با همپوشی پس از خوشه‌بندی به هر داده یک درجه تعلق به ازای هر خوشه نسبت داده می‌شود. به عبارتی یک داده می‌تواند با نسبتهای متفاوتی به چندین خوشه تعلق داشته باشد. (نمونه‌ای از آن خوشه‌بندی فازی است.)

    2. خوشه‌بندی سلسله مراتبی 7 و خوشه‌بندی مسطح 8 :
      در روش خوشه بندی سلسله مراتبی، به خوشه‌های نهایی بر اساس میزان عمومیت آنها ساختاری سلسله‌ مراتبی نسبت داده می‌شود. (مانند روش Single Link). ولی در خوشه‌بندی مسطح تمامی خوشه‌های نهایی دارای یک میزان عمومیت هستند (مانند K-Means). به ساختار سلسله مراتبی حاصل از روشهای خوشه‌بندی سلسله مراتبی دندوگرام 9 گفته می‌شود.
      با توجه با اینکه روش‌های خوشه‌بندی سلسله مراتبی اطلاعات بیشتر و دقیق‌تری تولید می‌کنند برای تحلیل داده‌های با جزئیات پیشنهاد می‌شوند ولی از طرفی چون پیچیدگی محاسباتی بالایی دارند برای مجموعه داده‌های بزرگ روش‌های خوشه‌بندی مسطح پیشنهاد می‌شوند.

      برای خوشه بندی آیات قرآن از مدل فضای برداری TF-IDF وا لگوریتم K-Means استفاده می کنیم.برای انجام خوشه بندی به صورت همزمان برای آیات و ترجمه ی آن ها نیاز داریم تا ترجمه ی آیات را نیز به داده های آموزشی اضافه کنیم. این عمل را با خواندن ترجمه ی آیات از داخل فایل ترجمه و سپس پیش پردازش و حذف کلمات توقف و ریشه یابی کلمات ترجمه انجام می دهیم. پس از آن ماتریس TF-IDF را این بار برای ترجمه ی آیات محاسبه می کنیم و مقادیر این ماتریس را به صورت ستون های اضافی به ماتریس TF-IDFحاصل از متن عربی آیات اضافه می کنیم در واقع با این عمل به تعداد ویژگی های نمونه های آموزشی اضافه می کنیم. پس از این مرحله الگوریتم خوشه بندی را بر روی ماتریس حاصل اجرا می کنیم.

۳. آزمایش‌ها

در ابتدا متن قرآن و ترجمه ی آن کنار هم گذاشته شد

اطلاعات خام

برای شروع آیات قرآن پیش پردازش می شوند و این داده ی پردازش شده به عنوان ویژگی آن آیه در نظر گرفته می شود. داده ها باید در فضای برداری مدل شوند که بهترین فضا، فضای TF-IDF است.بعد سعی می کنیم تا با روش های موجود ابعاد ماتریس TF-IDF را کاهش دهیم و اطلاعات اضافی را پاک کنیم. برای خوشه بندی آیات قرآن بهترین الگوریتم K-Means است که تعداد خوشه ها از کاربر دریافت می شود.
متاسفانه به دلیل عدم توانایی در استفاده از کتابخانه ها در پایتون کدهای اصلی پیاده سازی نشد
می توانید کد اول را در قسمت پیوندها ببینید

۴. کارهای آینده

۵. مراجع

[1] م.ایمانی، خوشه‌بندی متون فارسی، پایان‌نامه کارشناسی، دانشگاه علم و صنعت ایران، ۱۳۹۱ دریافت

[2]م.رحیمی بافقی، م.پورباقری، خوشه‌بندی آیات قرآن، پایان‌نامه کارشناسی، دانشگاه علم و صنعت ایران، ۱۳۹۳
[3]پ.پاسبان، بررسی ارتباط خوشه بندی متون با برچسب های پردازش زبان طبیعی، سمینار کارشناسی ارشد، دانشگاه علم و صنعت ایران،۱۳۸۹
[4]Akour, Mohammed; Alsmadi, Izzat; and Alazzam, Iyad. (2014). "MQVC: Measuring Quranic Verses Similarity and Sura Classification Using N-Gram".WSEAS Transactions on Computers, 13, 485-491.
پیوندهای مفید


  1. imprecise

  2. Term Frequency-Inverse Document Frequency

  3. Stop Word

  4. Dimension Reduction

  5. Exclusive or Hard Clustering

  6. Overlapping or Soft Clustering

  7. Hierarchical

  8. Flat

  9. Dendogram

تایید شده

پروژه شما دیده شد ، ضمن خسته نباشید نکاتی را خدمت شما عرض می کنم:
1- قسمت پیاده سازی که کد اوله دارد و طبق اقرار شما، قادر به پیاده سازی کد اصلی پروژه نشده اید که نقطه اصلی ضعف این پروژه می‌باشد. برای پیاده سازی می توانستید از کدها و پروژه های موجود دراین زمینه در همین سایت بوته و یا گیت هاب (مربوط به پروژه های ترم های قبل) استفاده کنید.
2- تصویر اطلاعات خام در قسمت آزمایش ها درست بارگذاری نشده است.
3- در قسمت آخر روش های خوشه‌بندی ، مقداری از نوشته به صورت درستی نوشته نشده است و این طور به نظر میرسد که از جای دیگری درست بارگذاری نشده است و نوشته خود‌شما در سایت بوته نیست.
4- بهتر بود در کارهای مرتبط از مقالات زیادی که در ارتباط با این موضوع وجود دارد، بیشتر بهره می‌بردید.
با تشکر

تایید شده

سلام، در فاز اول بر خلاف این فاز توضیحات خوبی صورت گرفته است.
انتظار یک پیاده سازی ساده برای این فاز می رفت که متاسفانه انجام نشده است و به دنبال آن هیچ آزمایش و نتیجه ای از کارتان صورت نگرفته است. بهتر بود در کدهایتان از کامنت گذاری استفاده کنید.
در کل تغییر محسوسی در این فاز دیده نمی شود و انتظار بیشتری در این فاز از شما می رفت.

این پروژه هنوز کامل انجام نشده و اشکالات زیادی داره از جمله اینکه شرح انتخاب ویژگی ها و آزمایش در قسمت کار های مرتبط آمده همچنین شرح مساله روشن نیست پیاده سازی ها هم مساله ی توضیح داده شده که همون طور که گفتم روشن هم نیست را حل نمی کند

تایید شده

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