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

در این پژوهش روش‌های مختلف رده‌بندی اسناد متنی مورد بررسی قرار گرفته و برای زبان فارسی پیاده‌سازی می‌شوند.

۱. مقدمه

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

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

متن‌کاوی، به داده‌کاوی‌ای که بر روی متن انجام شود اشاره دارد. همچنین به عنوان آنالیز متن نیز شناخته می‌شود که منظور از آن فرایند استخراج اطلاعات با کیفیت از متن است. اطلاعات پر کیفیت، بطور معمول از فهم الگوها و گرایشها از طریق معانی و بوسیله یادگیری الگوهای آماری حاصل می‌شود. متن کاوی معمولاً درگیر در فرایند ساختاردهی به ورودی‌های متنی (معمولاً تجزیه، همراه با افزودن برخی ویژگی‌ها تفاسیر زبانی و حذف موارد اضافی و درج موارد بعدی در پایگاه داده انجام می‌گیرد)، استخراج الگوهای درون داده‌های ساختار یافته، و در نهایت ارزیابی و تفسیر خروجی‌ها است. «پر کیفیت» در متن کاوی معمولاً به ترکیبی از مرتبط بودن، نو ظهور بودن و جالب بودن اشاره دارد. وظایف متن کاوی معمول شامل دسته‌بندی متون، خوشه بندی متون، استخراج معنی و مفهوم، تولید رده‌بندی دانه‌ای، تجزیه و تحلیل احساسات، خلاصه کردن اسناد و مدلسازی ارتباط موجودیت‌ها است.[1]

به طور کلی هدف یک دسته بند متون، دسته بندی اسناد در قالب تعداد معینی از دسته های از پیش تعیین شده می‌باشد. هر سند می‌تواند در یک، چند و یا هیچ دسته ای قرار بگیرد. در مورد هر سند به این سوال پاسخ داده خواهد شد که این سند در کدام یک از دسته‌ها قرار می‌گیرد. این موضوع می‌تواند در قالب یک یادگیری خودکار قرار گیرد تا با استفاده از آن بتوان هر سند را به طور خودکار به دسته ای نسبت داد. در این تحقیق، از روش دسته بندی بر مبنای قواعد انجمنی که از روی فرایند کاوش الگوهای مکرر مجموعه داده های آموزشی تولید شده‌اند، برای دسته بندی متون فارسی استفاده می‌شود. این فرآیند با فرآیندی که در داده کاوی داده های بزرگ پایگاه داده‌ها استفاده می‌شود یکسان می‌باشد.[2]

هنگام بررسی طبقه بندی متون، اشاره به انواع طبقه بندی های موجود لازم است. در کل طبقه بندی به دو دسته انحصاری و غیر انحصاری تقسیم می شود. در طبقه بندی انحصاری، هر شیء دقیقاً به یک دسته وابسته میشود. در حالیکـه در طبقـه بنـدی غیر انحصاری میتواند به چند دسته اختصاص یابد و اصطلاحاً در این مـورد گفتـه میشود که همپوشانی دارد. برای مثال، دسته بندی گروهی از افراد بـا وزن یـا قـد یکسـان، از نـوع انحصـاری اسـت و دسـته بنـدی گروهـی از افـراد دارای بیمـاری، غیرانحصاری میباشد. زیرا یک شخص میتواند بطور همزمان به چند بیماری دچار شود.
طبقه بندی انحصاری میتواند به دو زیر شاخه تقسیم شود:
1- ذاتی: intrinsic یا Unsupervised
2- خارجی: extrinsic یا Supervised
تفاوت میان این دو دسته در این است که در دسـته دوم، دسـته هـای از قبـل مشخص شده را برای طبقـه بنـدی اشـیاء مـورد اسـتفاده قـرار میدهد. در حالیکه اولین گروه، یک راه پیش بینی شده را برای طبقه بندی مشخص میکند. زیرشاخه ذاتی خود به دو زیـر شـاخه سلسـله مراتبـی و partitional تقسـیم مـیشـود. سلسـله مراتبـی را "nested sequence of partitions" مـینامنـد، در حالیکه partitional یک single partition است. لازم به ذکر است که اصطلاحات خوشـه بنـدی و خوشـه بنـدی سلسـله مراتبـی بـه ترتیـب بـرای Unsupervised partitional و طبقه بندی سلسله مراتبی به کـار رفتـه اسـت.[3]

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

روش های متنوعی برای دسته بندی موضوعی متون استفاده شده اند. یکی از این روش ها استفاده از قواعد دسته بندی یا کلاسه بندی (Classification) برای ساختن مدلی از داده ها استفاده می شود و باتوجه به شباهت ها و تفاوت های هر متن، در دسته خاص مربوط به خود قرار میگیرند.[4]
همچنین روشی دیگر استفاده از الگوریتم های یادگیری ماشین (MachineLearning) و پردازش زبان های طبیعی (NLP) می باشد که البته تمامی این روش ها نیاز به یک سری داده های اموزشی دارند تا این الگوریتم ها به کمک آن داده های از پیش تعریف شده بتوانند داده های جدید را از طریق یادگیری دسته بندی کنند.[5]

همچنین از جمله مشکلات و چالش های جدی در این الگوریتم ها می توان به اطمینان بخش بودن نتیجه دسته بندی های حاصل از این الگوریتم ها و به اصطلاح درستی این الگوریتم ها اشاره کرد.
باتوجه به کثرت تعداد متون، استفاده از داده های اموزشی زیاد برای بهبود درستی این الگوریتم ها بسیار کارا می باشد کما اینکه افزایش داده های اموزشی منجر به زمان بر شدن این الگوریتم ها می شوند که یک راه حل این مشکل استفاده از تقریب برای اجرای این الگوریتم ها می باشد. اما این راه حل ممکن است درنتیجه نهایی تاثیر گذار واقع شود و سبب به دست دادن نتایج پرت (Outlier) و اشتباه شود، درنتیجه چالش دیگر، در تحقیق انتخاب تقریب درست، به منظور ایجاد یک تعادل بین درستی الگوریتم و سرعت اجرای آن است.

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

دسته بندی متون با روشهای مختلف برای زبان انگلیسـی صـورت گرفته است. Yang و Liu در سال 1999 دسته بندی متـون را بـا اسـتفاده از بردارهـای فراوانـی ریشـه کلمـات انجـام دادنـد.[6] Joachims در سـال 1998 دسـته بنـدی متـون را بـا اسـتفاده از ماشین بردار پشتیبان انجام داد.[7] Bellegarda در سال 2000 روش آنالیز معنایی پنهان (LSA) را برای دسته بندی به کار بـرد.[8] Wood و Gedeon در ســال 2001 از شــبکه هــای عصــبی هیبرید به منظور دسته بندی متون استفاده کردند.[9] در همین سال Torkolla آنالیز تمـایزی خطـی را در دسـته بنـدی بـه کـار گرفـت.[10] Blei و همکـاران در سـال 2003 روش «تخصـیص دیریکلۀ پنهان» (LDA) را برای مدلسازی متون پیشنهاد دادنـد و از آن در دسته بندی متـون نیـز اسـتفاده کردنـد.[11] در سـال 2005 نیز Guandong و همکـاران روش تحلیـل معنـایی پنهـان احتمالاتی (PLSA) را بـرای دسـته بنـدی صـفحات وب بـه کـار گرفتند.[12]
تحقیقات انجام شده در زمینه دسته بندی متون برای زبان فارسی تا کنون بسیار اندک بوده است. عرب سرخی و فیلی یک روش دسته بندی با استفاده از بردارهای فراوانی ریشۀ کلمات و الگوریتم بیزین ساده پیشنهاد داده اند. سپس آنها با ترکیب روش بیزین با ایده نگهداری کلمات همنشین، روش خود را بهبود بخشیدند.[13] حاجی حسینی و الماس گنج نیز یک روش بانظارت برای دسته بندی متون فارسی با استفاده از تحلیل معنایی پنهان (LSA) پیشنهاد دادند. روش LSA بردارهایی را در یک فضای برداری کاهش بُعد یافته برای هر متن در اختیار قرار میدهد. با استفاده از این بردارها آنها از روش شبکۀ عصبی برای آموزش دسته بندی و تعیین دستۀ مربوط به متون جدید استفاده کردند.[14] پیله ور و همکاران، با استفاده از یادگیری چندی سازی برداری دسته بندی مستندات متنی فارسی را از روی پیکره همشهری انجام دادند.[15]
در مقاله ای دیگر فرهودی و یاری، با استفاده از روش بهره جویی از گنج واژه و انتخاب ویژگی دو مرحله ای به دسته بندی متون فارسی پرداخته اند. [16]
در مقاله ای دیگر از بردار بسامد وزن دار کلمات کلیدی در متون آموزشی هر کلاس به عنوان مدلی برای طبقه بندی استفاده شده است و برچسب زنی متون جدید با استفاده از تعیین میزان شباهت یا فاصلۀ بین بردار متن جدید با بردار هر کلاس صورت میگیرد. عمده ایده بکار رفته در تهیۀ بردار کلاس ها، بررسی دیدگاه های زبان شناختی اعم از صرف و معنی شناسی در استخراج کلمات مهم یا کلیدی و مخصوصا هرس کلمات زاید به صورت دستی می باشد.[3]

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

اولین مرحله در استخراج کلمات کلیدی آماده سازی متون می باشد داده های ورودی به برنامه طبقه بندی متون، عموماً متونی هستند که از سایت های
خبری فارسی جمعآوری شدهاند. بررسی کلی روی هفت طبقه زیر میباشد:
1- اجتمـاعی 2- اقتصـادی 3- پزشـکی 4- سیاسـی 5- فرهنگـی 6- مـذهبی7- ورزشی
برای هر یک از این طبقه ها ۱۰۰ متن در نظر گرفته شده است. از هر کـدام از این ۱۰۰ متن، ۸۰ متن برای فاز یادگیری و ۲۰ متن دیگر برای فاز تست اسـتفاده خواهد شد. با توجه به اینکه این متون در ویرایشگرهای فارسی متفاوتی تایپ شده است و نیز در هنگام بارگذاری روی اینترنت ممکن است دچار تغییراتی شده باشد،
لازم است در ابتدا بازبینی کلی روی متون انجام شود. قسمتی از ایـن بـازبینی بـه شیوه دستی انجام شده است که اهم آنها عبارتند از:

  • دسته بندی متون در گروه های مربوطه و تعیین اسم متون بر مبنای "شماره حرف اختصاری نمایانگر آن گروه".

  • برطرف نمودن غلط های املایی تا حد امکان.

  • چک کردن رعایت فاصله صحیح بین کلمات.

  • یکسان نویسی حروف و علائم ریاضی.

  • معرفی افعال،پیشوندها، پسوندها، حروف ربط، اضافه و نشانه، افعـال ربطـی، علائم نقطه گذاری و ضمایر به صورت فایل های جداگانه به عنـوان ورودی سیسـتم.[17]

سپس به مرحله استخراج کلمات کلیدی می رسیم.
در حل مسائل مربوط به رده بندی موضوعی متن مهم ترین بخش استخراج کلمات کلیدی مفید می باشد زیرا بسیاری از کلمات قیدی و کمکی بار معنایی زیادی برای تفهیم یک موضوع به فرد ندارند. ثابت شده است فقط ۳۳ درصد از کلمات یک متن مفید هستند و از آن ها برای فهم متن می توان استفاده نمود.[18] پس از حذف کلمات غیر مفید و بدون بار معنایی به مرحله ریشه یابی کلمات می رسیم باتوجه به اینکه بسیاری از کلمات دارای مفهومی یکسان می باشند، برای مثال کلمات رفتم و رفتی هردو مفهوم رفتن را به شنونده القا می کنند. البته این ساده ترین نوع از مفاهیم یکسان به شمار می رود، در بسیاری از موارد ما ابتدا ریشه اصلی کلمه را پیدا کرده و سپس به کمک داده های آموزشی تمامی ریشه های کلماتی را که با ریشه کلمه یافته شده ترادف دارند را با یک وزن خاص درجدولی نگه داری میکنیم، برای مثال دومفهوم بازگشتن و آمدن کلمات مترادفی هستند که باید با یک بار معنایی به آن ها توجه شود. به زبان دیگر شناسایی گروه اسمی و دیگر اصطلاح‌هایی که به شی ای یکسان ارجاع دارند. در این مرحله چالشی که در مقدمه این مقاله عنوان شد پدید می آید: استفاده از داده های آموزشی بیشتر و دقت بالاتر ولی سرعت انجام پایین یا استفاده از داده های آموزشی کمتر و به تبع آن دقت کمتر در موضوع بندی متن اما سرعت بیشتر در اجرای الگوریتم.
استفاده از ریشه یابی های چند مرحله ای مانند آنچه عنوان شد توان محاسباتی را بصورت نمایی بالا می رود و بشدت بر روی اجرای الگوریتم تاثیرگذار خواهد بود.

در این فاز، به طور کلی عملیات کلی زیر انجام میشود:
الف: تبدیل هریک از متون به برداری از کلمات
ب: پیدا کردن پایان جملات با استفاده از تشخیص افعال و حروف ربط
ج: اطمینان از یکسان بودن کاراکترهای الفبای فارسی (یکسان سازیبرخی از کاراکترها مانند "ی" و "ک" از لحاظ کد اسکی)
د: تفکیک جملات از یکدیگر
ه: از بین بردن کلمات بی فایده (حروف ربط، اضافه، نشانه، علایم نقطه گـذاری، ضمایر، افعال ربطی، شبه جمله ها و ...)
و: انجام عملیات کاهش و ریشه یابی با توجـه بـه دو گـروه کلمـات ، افعـال و اسامی:
بررسی افعال

  • بررسی پیشوندهای فعل در دو قسمت با تغییر معنی و بـدون تغییـر معنـی.
    مثال: فراگرفتن= فرا+گرفتن

  • حذف شناسه افعال و بررسی امکان پذیر بودن کاهش با استفاده از جدول بن و مصدر.

  • جایگزین نمودن فعل با مصدرش با استفاده از جدول افعال.
    مثال: میگفتم← گفتم← گفت← گفتن
    بررسی اسامی

  • کاهش علامات جمع (مانند ها، های،...)

  • حذف ضمایر متصل

  • حذف پیشوند

  • حذف پسوندهای اسم

  • مشتق

  • مرکب و ساده [3]

همچنین می توان از شناسایی ماهیت و هویت اسم استفاده کرد. این روش از تکنیکهای اماری جهت شناختن نامها استفاده می‌کند: مردم، سازمانها، نام مکانها، اختصارهای خاص و غیره. ابهام زدایی – با استفاده از راهنماهای متنی –ممکن است نیاز شود برای آنکه تعیین گردد کلمه “Ford” می‌تواند به یک رئیس جمهور سابق آمریکا، یک کارخانه خودروسازی، یک ستاره سینما، یک رودخانه یا موجودیتی دیگر ارجاع داشته باشد. [1]

۳. آزمایش‌ها

۴. مراجع

  • Berry, Michael W., ed. Survey of Text Mining I: Clustering, Classification, and Retrieval. Vol. 1. Springer, 2004.

  • 1

  • 2

  • [3]کاوش متون فارسی بر مبنای روش طبقه بندی، نشریه علمی پژوهشی انجمن کامپیوتر ایران،مجلد ۸، شماره ۱ و ۳ (الف)، ۱۳۸۹

  • [4]دسته بندی موضوعی متون فارسی بر اساس روش قواعد انجمنی، سید محمد حسین احمدی، پایان نامه ی کارشناسی ارشد ، دی ماه ۹۰)

  • [5]دسته‌بندی متون با استفاده از یادگیری ماشین، محسن رحیمی، پروژه هوش مصنوعی، ۹۱

  • [6] Y. Yang and X. Liu, "A Re-examination of Text Categorization Methods", Proceedings of the 22nd annual international ACM SIGIR conference on research and development in information retrieval, pp. 42-49, .1999

  • [7] T. Joachims, "Text Categorization with Support Vector Machines: Learning with Many Relevant Features in Machine Learning", 10th European Conference on Machine Learning, pp. 137-142, 1998.

  • [8] J.R. Bellegarda, "Exploiting Latent Semantic Information in Statistical Language Modeling", Proceedings of IEEE, Vol. 88, No. 8, pp. 1279-1296, .2000

  • [9] S.A. Wood and T.D. Gedeon, "A Hybrid Neural Network for Automated Classification" Proceedings of the 6th Australasian Document Computing Symposium, .2001

  • [10] K. Torkolla, "Linear Discriminant Analysis in Document Classification", IEEE ICDM workshop on text mining, 2001.

  • [11] D., Blei, A. Ng, M. Jordan, “Latent Dirichlet Allocation”, Journal of Machine Learning Research, Vol. 3, pp. 993-1022, 2003.

  • [12] X. Guandong, Y. Zhang, Z. Zhou, "Using Probabilistic L a t e n t S e m a n t i c A n a l ys i s f o r W e b P a g e G r o u p i n g " , Proceedings of Research Issues in Data Engineering: Stream Data Mining and Applications, pp. 29-36, 2005.

  • [13] محسن عرب سرخی، هشام فیلی، "ارائه یک سیستم دسته بندی موضوعی متون فارسی بر اساس روش های احتمالاتی"، مجموعه مقالات دومین کارگاه پژوهشی زبان فارسی و رایانه، صص ۱۵۱-۱۶۱، ۱۳۸۵.

  • [14] آزاده حاجی حسینی، فرشاد الماس گنج، "دسته بندی موضوعی متون فارسی بر اساس روش آنالیز معنایی پنهان"، مجموعه مقالات دومین کارگاه پژوهشی زبان فارسی و رایانه، صص ۱۹۰-۲۰۱، ۱۳۸۵.

  • [15] T. Pilehvar, H. Faili, M. Soltani, Classification of Persian textual documents using Learning Vector Quantization, 4rd IEEE Conference on Knowledge Engineering and Natural Language Processing, NLP-KE, 2009.

  • [16] 11. M. Farhoodi, A., Yari, M. Mahmoudi., "A Persian Web Page Classifi er Applying a Combination of Content-Based andContext-Based Features", International Journal of Information Studies, Vol. 1, No. 9, 2009.

  • [17] ح. انوری و ح. احمـدی، دستور زبان فارسی. چـاپ ششـم، چاپخانـه بهـرام، تهران، ۱۳۷۰.

  • [18] L. Liu, J. Kang, J. Yu, and Z. Wang, "A Comparative Study on Unsupervised Feature Selection Methods for Text Clustering," Proc. of the Conference on Natural Language Processing and Knowledge Engineering, pp. 597- 601, 2005.

۵. پیوندهای مفید

محمد عبدوس

با سلام و عرض خسته نباشید بابت فعالیتهای صورت گرفته در این فاز. در ادامه به برخی از نکات اشاره شده است که نیاز است تا این موارد بررسی و اصلاح گردد:

1- مرجع 1و2 به صورت هایپرلینک است و آدرس خود وب سایت نیز بیان شود.
2- خوب بود اشاره ای به ابزارهای متن بازی که در پروژه از آن استفاده خواهید کرد نیز میپرداختید

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