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

۱. مقدمه

در دوران معاصر دانش به عنوان یک فاکتور کلیدی در سازمان های جدید برای رقابت های سالم به شمار می آید. دستبابی به موفقیت در این رقابت، مستلزم یافتن اطلاعات مفید در زمانی مناسب است. از طرفی گسترش روز افزون دانش و تکنولوژی بشر، باعث افزایش اطلاعات در دسترس شده است . این موضوع حتی در سالهای گذشته نیز مشهود بوده است به طوری که به طوروسیعی از روش های آماری و یادگیری ماشین1 برای دسته بندی متون استفاده شده است. البته توجه به این نکته ضروری است که تنها خود اطلاعات کافی نیست؛بلکه قابلیت مدیریت و اعمال نفوذ بر این اطلاعات به صورت موفق،ازاهمیت بالایی برخوردار است [1 ].
دسته بندی متون2، اگرچه که از سال 1960 میلادی به بعد مورد مطالعه قرار گرفته است؛ ولی با شروع دهۀ 90به لطف پیشرفت های نرم افزاری و سخت افزاری ، پیشرفت چشمگیری داشته است. امروزه مساله برچسب زنی موضوعی متون در حوزه بازیابی اطلاعات وتحلیل داده های آماری، امری مهم و کاربردی به شمار میرود. انتساب اسناد متنی به دسته های از پیش تعیین شده به منظور دسته بندی اتوماتیک و خودکار متون در ده سال اخیر تمام توجهات را به خود جلب کرده است. مقصود از طبقه بندی یا دسته بندی خودکار متون این است که این رده بندی ، در زبان طبیعی و با استفاده از یادگیری ماشین صورت می گیرد ؛
حال آنکه روش اصلی در جامعه تحقیقاتی در این زمینه می باشد .در یادگیری ماشین ، معمولا سیستم این گونه یادگیری را انجام می دهد که روی یک دسته از متون از قبل برچسب زنی شده آموزش داده می شود وبعد از آن طبقه بندی یا classification متون جدید با استفاده از مدلهای حاصل از مرحلۀ آموزش، صورت می گیرد.
دسته بندی متون در بسیاری از زمینه ها از جمله فیلترکردن متون مخصوصا در نامه های الکترونیکی، طبقه بندی اسناد، ابهام زدایی از کلمات، سیستمهای خودکار پاسخ به سوالات و یا حتی نمره دهی به مقالات در سیستمهای آموزشی و به طور کلی در هر کاربردی که سازماندهی مستندات و یا توزیع انتخابی و تطبیقی خاصی ازمستندات مد نظر باشد، کاربرد دارد. همچنین برچسب زنی موضوعی متون با مسائلی چون استخراج اطلاعات و دانش از متون و داده کاوی متون دارای ویژگی‌های فنی مشترک می‌باشد.
هدف این پروژه این است که روش های مختلف رده بندی اسناد متنی در زبان فارسی مورد بررسی قرار گیرد.
روشهای زیادی برای دسته بندی متون استفاده شده است که در ادامه به بررسی آن می‌پردازیم.در یکی از این روش ها، از قواعد انجمنی استفاده شده و آن را با قواعد دسته بندی3 ترکیب کرده اند ، که باعث تولید مدلی با عنوان دسته بندی انجمنی4 برای استفاده در دسته بندی متون شده است[2][Yoon2007,Chen2005]
همچنین برای دسته بندی اسناد با استفاده از ناظر5، ما نیاز به روشی برای یادگیری از روی مجموعه آموزشی داریم. اگر در یک فضای n بعدی ، اطلاعات مربوط به اسناد هر دسته را بوسیله نگاشت کردن اطلاعات ، نگهداری کنیم؛ در آن صورت میتوانیم اطلاعات بدست آمده از یادگیری ماشین را ذخیره کنیم که الگوریتم نزدیک ترین همسایه6 از این روش تبعیت می کند. و یا اگر که مجموعه احتمالات مربوط به اسناد و موضوعات که از اطلاعات بدست آمده در یادگیری ماشین به وجود آمده است ، را ذخیره کنیم ودر هنگامی که به آن اطلاعات نیاز داریم ، از این احتمالات برای دسته بندی اسناد جدید استفاده کنیم ؛ این خود نیز از روش های دیگر موجود برای نگهداری از اطلاعات بدست آمده از یادگیری می باشد.[3]
یکی از مشکلات موجود در دسته بندی متون و اسناد این است که گاهی محاسبات در حدی زیاد می شوند که در بعضی موارد برای بدست آوردن دسته بندی یک متن و یا یک سند ، از تقریب استفاده می کنیم و حال اینکه سوال اساسی اینجاست که آیا در الگوریتم های متفاوت،این تقریب های در نظر گرفته شده منجربه وقوع نتایج درست در آزمایشات ما می شود؟
از دیگر مشکلات در دسته بندی متون این است که اندازه و حد درست بودن دسته بندی اسناد جدید و یا قابل اطمینان بودن آنها را نمی دانیم.
کارهای مرتبط
دسته بندی متون با روشهای مختلف برای زبان انگلیسی صورت گرفته است. Liu و Yang در سال 1999 دسته بندی متون را با استفاده از بردارهای فراوانی ریشه کلمات انجام دادند[7] Joachims در سال 1998 دسته بندی متون را با استفاده از ماشین بردار پشتیبان انجام داد[8]. Bellegarda در سال 2000 روش آنالیز معنایی پنهان (LSA) را برای دسته بندی به کار برد.[9] Gedeon و Wood در سال 2001 از شبکه های عصبی هیبرید به منظور دسته بندی متون استفاده کردند.[10] در همین سال Torkolla آنالیز تمایزی خطی را در دسته بندی به کارگرفت.[11] Blei و همکاران در سال 2003 روش « تخصیص دیریکلۀ پنهان » (LDA) را برای مدلسازی متون پیشنهاد دادند و از آن در دسته بندی متون نیز استفاده کردند[12] در سال 2005 نیز Guandong و همکاران روش تحلیل معنایی پنهان احتمالاتی (PLSA) را برای دسته بندی صفحات وب به کارگرفتند.[13]
تحقیقات انجام شده در زمینه دسته بندی متون برای زبان فارسی تا کنون بسیار اندک بوده است. عرب سرخی و فیلی یک روش دسته بندی با استفاده از بردارهای فراوانی ریشۀ کلمات و الگوریتم بیزین ساده پیشنهاد داده اند.سپس آنها با ترکیب روش بیزین با ایده نگهداری کلمات همنشین، روش خود را بهبود بخشیدند.[14] حاجی حسینی و الماس گنج نیز یک روش بانظارت برای دسته بندی متون فارسی با استفاده از تحلیل معنایی پنهان ( LSA ) پیشنهاد دادند.
روش (LSA) بردارهایی را در یک فضای برداری کاهش یافته برای هر متن در اختیار قرار می دهد. با استفاده از این بردارها آنها از روش شبکۀ عصبی برای آموزش
دسته بند و تعیین دستۀ مربوط به متون جدید استفاده کردند.[15] پیله ور و همکاران، با استفاده از یادگیری چندی سازی برداری دسته بندی مستندات متنی فارسی را از روی پیکره همشهری انجام دادند.[16] و در مقاله ای دیگر فرهودی و یاری، با استفاده از روش بهره جویی از گنج واژه و انتخاب ویژگی دو مرحله ای به دسته بندی متون فارسی پرداخته اند.[17]

۲. شرح مساله

با گسترش سریع متون الکترونیکی که همراه با ساختارها و زبانهای متفاوتی بودند، توجه بسیاری از دانشمندان و محققان علوم کامپیوتر به استفاده از روش ها و تکنیک های بهینه و سریع برای دسته بندی متون الکترونیکی جلب شد و هم اکنون نیز تحقیق در این زمینه در راستای افزایش سرعت و دقت روش ها همچنان ادامه دارد.[4]
همانطور که در مقدمه اشاره شد،در جامعه تحقیقاتی ، روش اصلی در زمینه ی طبقه بندی خودکار و موضوعی اسناد و متون، روش های بر اساس یادگیری ماشین هستند. دسته بندی متن در واقع زیر شاخه ای از متن کاوی 7 می باشد و متن کاوی هم زیر شاخه ای از علم داده کاوی8 می باشد. برای دسته بندی متن از تکنیک های استخراج اطلاعات9، پردازش زبان طبیعی10 و یادگیری ماشین به طور وسیع استفاده می شود. [Xia2007]
در تکنیک یادگیری ماشین، طبقه بندی کننده ها با استفاده از یادگیری از یک مجموعه ی مستندات از پیش طبقه بندی شده مشخصات دسته ی جدید را
معین می سازند. همچنین در مورد هر سند باید به این سؤال پاسخ داد که این سند در کدام دسته ( یا دسته ها ) باید قرار گیرد. این موضوع می تواند در قالب یک یادگیری خودکارحل شود که ازآن به عنوان تکنیک یادگیری ماشین یاد می شود که یکی از شاخه های وسیع و پرکاربرد هوش مصنوعی به شمار می رود.
برای ساختن طبقه بندی کننده ها ، نیاز به دانش مهندسی و زبان شناسی افراد خبره وجود دارد، اما اگر به جای استفاده از ماشین، طبقه بندی به صورت دستی انجام بگیرد ؛ علاوه بر صرف زمان و هزینه ی زیاد ، معایب زیر را به همراه خواهد داشت:
1- برای زمینه های تخصصی خاص به دانش افراد خبره نیاز است؛ مانند: زمینه های پزشکی، مهندسی و غیره
2- برچسب زنی موضوعی متون به صورت دستی مبتنی بر دانش و تجربۀ فرد می باشد، از این رو درصد خطاپذیری آن بسیار زیاد است.
3- تصمیم دو فرد خبره در عمل برچسب زنی موضوعی متون می تواند متفاوت و یا حتی ناسازگار باشد.
مساله ای که در حوزه ی پردازش زبان طبیعی با آن روبرو هستیم این است که صورت های غیر استاندارد نویسه ها و کلمات به وفور در متونی که با این حوزه در ارتباط هستند ، دیده می شوند.قبل از اینکه بتوان از این متون برای استفاده در سیستم های جستجو در متون فارسی استفاده کردو یادرپایگاه داده ذخیره شان کرد، بایدابتدا پیش پردازشی روی آنهاانجام گیرد تا صورت های غیراستاندارد به شکل استاندارد تبدیل گردند. طی فرآیند نرمال سازی در متون فارسی ، علایم نگارشی ، حروف، فاصله های بین کلمات، اختصارات و غیره بدون ایجاد تغییرات معنایی به شکل استانداردشان تبدیل می شوند ؛ چرا که اگر این علایم و حروف و کلمات فارسی به شکل یکسانی نوشته نشوند، متون مورد استفاده قابل تحلیل برای ماشین های رایانه ای نخواهد بود.
فازهای یادگیری ماشین برای طبقه بندی متن مطابق شکل 1 می باشد .همانگونه که در شکل مشاهده میشود، طی 5 فاز، سیستم یادگیری ماشین برای انجام طبقه بندی به کار گرفته میشود. این فازها عبارتند از:

(Preprocessing)– پیش پردازش
(Feature Generation) - تولید ویژگی
(Feature Selection) - انتخاب ویژگی
(Data Mining/Pattern Discovery) – اعمال الگوریتمهای داده کاوی / متن کاوی
(Interpretation /Evaluation) - تفسیر و ارزیابی

شکل1 - فازهای سیستم یادگیری ماشین برای طبقه بندی

یادگیری ماشین دارای تقسیم بندی زیر براساس داده های در اختیار عامل هوشمند می باشد که عبارتست از:
1- یادگیری با نظارتSupervised learning: مربوط به زمانی است که آموزش سیستم، با استفاده از داده هایی که قبلا با جواب های درست برچسب- گذاری شده اند، انجام پذیرد. برای آموزش سیستم، همانطور که گفته شد تعدادی داده ی ورودی در اختیارآن قرار می گیرد که این داده های خروجی مجموعه ای از جفت های ورودی- خروجی می باشد که سیستم در صدد فراگیری تابع های ورودی – خروجی بر می آید.
2- یادگیری نظارت نشده11 :زمانی این نوع آموزش بوجود می آید که سیستم ، با داده هایی که هیچ گونه برچسب گذاری ندارند، یادگیری را انجام میدهد. به عبارت دیگر، یک مجموعه ای از مثالهای یادگیری وجود دارد که دارای ورودی های مشخص اما خروجی های نامشخص می باشد.
3- یادگیری نیمه نظارت شده12 : مجموعه ای از ترکیب دو روش قبلی، که دارای داده های با برچسب 13 و بدون برچسب هست ، را برای یادگیری به سیستم آموزش می دهند.
4- یادگیری تقویتی 14 : این نوع یادگیری از حیث اینکه داده های مورد استفاده ماشین ، برچسب گذاری نمی شوند؛ دارای شباهت زیادی با نوع نظارت نشده می باشد. به جای آن، پس از گرفتن عمل، حالت بعدی و پاداش بلافاصله به سیستم داده می شود.
2-1. رده بندی یا طبقه بندی موضوعی متن :
طبقه بندی یعنی دﺳﺘﻪ ﺑﻨﺪی اﺳﻨﺎد ومتون ﺑﻪ ﮔﺮوه ﻫﺎﯾﯽ ﮐﻪ دارای وﺟﻪ ﻣﺸﺘﺮک ﺑﻮده که ﺑﺘﻮان ﺑﻌﺪا ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻦ اﺷﺘﺮاک از آﻧﻬﺎ اﺳﺘﻔﺎده نمود.. اسناد ممکن است بر اساس موضوع و یا براساس یک ویژگی دیگر مانند تاریخ سند رده بندی شوند . در رده بندی موضوعی اسناد ابتدا اسنادی با موضوع از پیش تعیین شده به عنوان نمونه برای یادگیری به ماشین داده می شود و ماشین با توجه به کلمات داخل هر سند به یادگیری می پردازد و با در نظر گرفتن احتمال وجود کلمات به پیش بینی موضوعی سندهای دیگر می پردازد. روشهای زیادی برای دسته بندی متون وجود دارد که هر کدام مزایا و معایب خاص مربوط به خود را دارند..این روش ها اغلب مبتنی بر شیوه های شناخته شده در یادگیری خودکار هستند ودر مسائل مختلفی از آنها استفاده می شود ، اما برخی به طور خاص برای حل مسئله دسته بندی به کار می روند.

2-2. روش های دسته بندی اسناد :
در زمینه ی دسته بندی متون تا کنون روش های زیاد و مختلفی ارائه شده است ،از جمله : درخت های تصمیم گیری15 ، روش نزدیک ترین همسایه[K-Nearest Neighbours] ، روش بیزین ساده 16، روش شبکه های عصبی17 ، ماشین های بردار پشتیبان18 و غیره .
2-2-1. روش ساده بیزی :
این روش یک از پرکاربردترین روش در دسته بندی متون است . در این روش متن به صورت مجموعه های کلمات مستقل از یکدیگر و مستقل از محل قرار گرفتن در متن در نظر گرفته میشود [5] . تابع احتمال هر متن از حاصلضرب احتمال کلمات آن و احتمال رخداد متنی با آن طول بدست می آید . یادگیری سیستم بوسیله ی تخمین پارامترهایی برای تولید مدلی صورت می گیرد که فقط از متون برچسب دار استفاده میکند. الگوریتم از پارامترهای تخمین زده شده برای دسته بندی متون جدید با محاسبه ی اینکه کدام دسته بیشترین شباهت را با متن داده شده دارد،استفاده می کند.روش بیز یک مدل احتمالی ویژه برای متون در نظر میگیرد. این روش فرض می کند که لغات مستقل هستند که این فرض اجازه میدهد مدل تولیدی با تعداد بسیار زیادی پارامتر کاهش یافته نمایش داده شود.
کلاس یک سند متناسب با کلماتی است که در یک سند ظاهر می شوند که در این روش برای تخمین کلاس سند از فرمول زیر استفاده می­شود[6] :

فرمول1

در این فرمول L نشان دهنده کلاس c و tها ترم­های موجود در یک سند هستند. این نکته قابل ذکر است که هر سند دقیقا به یک کلاس تعلق دارد. از
آنجا که برای همه کلاس­ها مساوی در نظر گرفته می­شود، می­توان این احتمال را از فرمول بالا حذف نمود و همچنین برای سادگی از فرض استقلال Na¨ıve استفاده می­شود. طبق این فرض احتمال رخداد کلمات در یک سند مستقل از یکدیگر است. یعنی داریم:

فرمول2

این رده­ بندی کننده یک گام learning دارد که در آن احتمالات( P(t|L( تعداد اسنادی که در مجموعه آموزش شامل ترم t_هستند و برچسب کلاسشان_L است تقسیم بر کل کلاسها) تخمین زده می شود. در گام رده ­بندی، احتمالات تخمین زده شده برای رده ­بندی کردن یک نمونه جدید مطابق با قانون Bayes استفاده می ­شوند. برای کاهش تعداد احتمال­های P(t|L) که باید تخمین زده شوند می­توان از روش­های انتخاب ترم ایندکس استفاده کرد. اگرچه این روش به علت فرض استقلالش تا حدی ممکنه فیر واقعی باشد اما در عمل نتایج خوبی از آن حاصل می­شود(_Dumis_98, Joachims_98).
برچسب­ گذاری کردن دستی اسناد مجموعه آموزش کار طاقت فرسایی است. برخی مقالات از اسناد برچسب­گذاری نشده برای مجموعه آموزش استفاده می­ کنند.. فرض کنیم که از یک مجموعه آموزش کوچک به دست آمده است که کلمه _t
همبستگی شدیدی با کلاس L دارد. ممکنه از اسناد برچسب ­گذاری نشده به دست آید که t همبستگی شدیدی به t دارد بنابراین می­توان نتیجه گرفت که t یک پیشگو کننده خوب برای کلاس L است. در این روش اسناد برچسب گذاری نشده، کارایی رده ­بندی را بهبود می­ بخشند.

_شکل 2- روش ساده بیزی_

2-2-2. روش نزدیکترین همسایه :
به جای ساختن مدل­های صریح برای کلاس­های مختلف، راه دیگر اینست که اسنادی از مجموعه آموزش که مشابه به سند جاری هستند، انتخاب شوند و کلاس سند جاری برابر با کلاسی است که اکثزیت اسناد مشابه دارند. در روش رده­بندی K تا همسایه نزدیکتر، k تا سند از مجموعه آموزش که بیشترین شباهت (بر اساس یک معیار شباهت تعریف شده) را به سند جاری دارند به عنوان همسایگان آن سند انتخاب می­شوند.
تعداد زیادی معیار شباهت در متن کاوی وجود دارد. یک روش ساده شماردن تعداد کلمات مشترک در دوسند است. این روش باید برای اسناد با طول مختلف نرمالایز شود. همچنین ممکنه کلماتی بیشتر منعکس کننده محتوای یک سند باشند. به عنوان یک روش استاندارد برای اندازه­گیری شباهت می­توان به شباهت کسینوسی اشاره نمود. برای اینکه کلاس سند d مشخص شود، شباهت S(d, d) برای همه اسناد d در مجموعه آموزش محاسبه می­شود.
سپس k تا از شبیه­ترین اسناد مجموعه آموزش به عنوان همسایه­های سند جاری انتخاب می­گردند و کلاس سند d برابر با کلاسی است که اکثر سندهای همسایه آن دارای آن کلاس هستند. در این روش مقدار بهینه k را می­توان از مجموعه آموزش دیگری به وسیله cross-validation تخمین زد.
این روش رده بندی طبق مطالعات انجام شده [Joachims98]__کارایی خوبی دارد. وتنها مشکل آن اینست که در طی رده­بندی محاسبات زیادی لازم است (محاسبه کردن شباهت یک سند با همه اسناد موجود در مجموعه آموزش).
شکل 3- روش نزدیک ترین همسایه

2-2-3. روش ماشین بردار پشتیبان[Support Vector Machines]
به عنوان یک الگوریتم رده ­بندی _نظارت شده
برای رده ­بندی متن به کار می رود. معمولا سند d به وسیله بردار (t,….., t) از تعداد کلماتش نمایش داده می­شود.متن کاوی اینست که تنها به تعداد کمی از ترم یک 19 SVMمی­توان فقط دو کلاس را جدا کند:
یک کلاس مثبت L (توسط y = +1 نشان داده می­شود) و کلاس منفی L(که با y = -1 نشان داده می­شود). در فضای بردارهای ورودی، یک hyperplane با تنظیم کردن y = 0در زیر معادله خطی تعریف می­شود:
فرمول3

این روش یک hyperplane که بین نمونه­ های مثبت و منفی مجموعه آموزش قرار می­گیرد را مشخص می­کند. پارامترهای b به گونه ­ای تنظیم می ­شوند که فاصله ای (که حاشیه نامیه می­شود) بین hypelane و نزدیکترین نمونه مثبت و منفی ماگزیمم شود. اسنادی که دارای فاصله اشاره شده از hyperplan هستند، support vectors نامیده می­شوند و محل واقعی hyperplan را مشخص می­کنند. معمولا تنها کسر کوچکی از اسناد support هستند.SVM می­ تواند با پیشگوهای غیرخطی استفاده شود مثلا با تعریف کردن یک feature map :

فرمول4

یادگیری تقریبا مستقل از فضای ویژگی از مهمترین مشخصه های این روش به حساب می آید.

2-3. روش های پیشنهادی برای طبقه بندی متون فارسی
روش پیشنهادی برای طبقه بندی متون فارسی بر اساس روش یادگیری ماشین استوار است. در روش یادگیری ماشین، دو فاز آموزش و آزمون وجود دارد . در فاز آموزش دسته های از قبل مشخص شده ای را برای یادگیری ماشین استفاده می کنند و معنای هر طبقه برای سیستم یادگیری ماشین مشخص می شود. در فاز آزمون، مستندات غیر شناخته ای به سیستم داده می شود . سیستم به طورخودکار آن متن را به طبقهای که بیشتر شباهت دارد نسبت می دهد.
قانون اصلی یادگیری ماشین این است که یک فضای وسیع از فرضیات ممکن و دانش پیشین نگهداشته شده بوسیله یادگیر را جستجو نموده و بهترین طبقه ممکن را برای متن تست بدست آورد. وظیفه یادگیر جستجو در این فضا برای جایگذاری فرضیاتی است که بیشترین سازگاری را با نمونه های آموزشی موجود دارد.
پیکره زبانی که در این پروژه مورد استفاده قرار خواهد گرفت، پیکره زبانی جامع همشهری نسخه 2 20می باشد.
نسخه 1 همشهری شامل بیش از 592222 سند، 91 درخواست و قضاوتهای مرتبط است که از سال 5531 تا 5595 توسط افراد مختلف با موضوعات مختلف نوشته شده است . نسخه2 همشهری نسبت به نسخه قبل بزرگتر و جامعتر است که تصاویر مقالات را نیز در بر دارد. مولفان روزنامه همشهری بصورت دستی مقالات خود را به دسته های مختلفی تقسیم کردند و آن را در سایت پیکره همشهری[18] قرار دادند. تمام اسناد در این مجموعه به 82 موضوع مختلف بر اساس اخبار موجود در سایت روزنامه دسته بندی شده اند.
برخی از رسته های موجود در این سایت عبارتند از:

adabh Literature and Art ادب و هنر
ejtem Social اجتماعی
elmfa Science and Culture علمی فرهنگی
eqtes Economy اقتصاد
gozar Miscellaneous گوناگون
havad Miscellaneous.Happenings گوناگون.حوادث
kharj Miscellaneous.World News گوناگون.خارجی
maqal Miscellaneous گوناگون
shahr Miscellaneous.Urban گوناگون.شهری
siasi Politics سیاسی
varze Sport ورزش

۳. پیاده سازی پروژه :

3-1. پیش پردازش سیستم طبقه بند متون فارسی
پس از آماده سازی اولیه متون که در آن دادگان در طبقه های مختلف قرار می‌گیرند، فاز پیش پردازش انجام می‌شود. در واقع پیش پردازش، اولین گام در جهت تطابق مستندات متنی با نمایش آنها در یک قالب مناسب می‌باشد. اغلب کلمات در راستای رساندن منظور و هدف اصلی استفاده می‌شوند و بعضاً تکراری می‌باشند. در نتیجه هدف از این فاز، یافتن کلمات مفید و چشم پوشی از کلمات بی فایده می‌باشد.
مساله ای که در حوزه ی پردازش زبان طبیعی با آن روبرو هستیم این است که صورت های غیر استاندارد نویسه ها و کلمات، به وفور در متونی که با این حوزه در ارتباط هستند ، دیده می شوند. قبل از اینکه بتوان از این متون برای استفاده در سیستم های جستجو در متون فارسی استفاده کرد و یا در پایگاه داده ذخیره شان کرد، بایدابتدا پیش پردازشی روی آنهاانجام گیرد تا صورت های غیراستاندارد به شکل استاندارد تبدیل گردند. طی فرآیند نرمال سازی در متون فارسی ، علایم نگارشی ، حروف، فاصله های بین کلمات، اختصارات و غیره بدون ایجاد تغییرات معنایی به شکل استانداردشان تبدیل می شوند ؛ چرا که اگر این علایم و حروف و کلمات فارسی به شکل یکسانی نوشته نشوند، متون مورد استفاده قابل تحلیل برای ماشین های رایانه ای نخواهد بود.
3-2. تولید ویژگی متون در سیستم طبقه بند متون فارسی
پس از انجام فاز پیش پردازش در سیستم طبقه بند متون فارسی، متون از رشته ای از کلمات به بردارهایی از کلمات تبدیل می‌شوند. در این بردارها کلمات بی فایده وجود ندارند. البته این بردارها، شامل کلمات یکتایی نیستند [1] برای برطرف کردن این مشکل و آماده سازی یک ورودی مناسب برای الگوریتم یادگیری طبقه بندی متون، از متد تولید ویژگی استفاده شده است . در این متد، کلمات تکراری دسته بندی شده و فرکانس آنها محاسبه می‌شود. اینکار بوسیله پیاده سازی یک hash table انجام می‌گیرد.Hash table یک نگاشت از کلیدها به ارزش ها فراهم می‌آورد.در اینجا کلمات به عنوان کلید و فرکانس آنها ارزش محسوب می‌شوند.
لازم به ذکر است که همه کلماتی که از فاز پیش پردازش به دست آمده اند، برای طبقه بندی متن لازم نیستند. در این قسمت باید ویژگیهای شاخص هر متن را استخراج نموده تا بتوان به کمک آنها متون جدید را به بهترین کلاس تطبیق داد.
الگوریتم پیشنهادی برای برچسب زنی موضوعی بدین صورت عمل می کند که ابتدا تعدادی کلمه از بین کلمات دادگان آموزشی به عنوان کلمه کلیدی انتخاب می شود.[19] برای این کار روشهای مختلفی است که tf-idf به عنوان یکی از روشهای خوب می باشد که در آن tf متناسب با یک فاکتور وزنی است که IDF بسامد یک کلمه در مستند و بیانگر معکوس میزان پراکندگی یک کلمه در سندهای مختلف است. برای استخراج کلمات کلیدی ،tf-idf را برای هر کلمه ی i به روش زیر بدست می آوریم:

فرمول5

در فرمول5 ، ni تعداد کلمه i در زیر پیکره، M فراوانی کل سندها در زیر پیکره و dfi تعداد مستنداتی است که شامل کلمه ی i می باشند. با در نظر گرفتن حد آستانه ای روی tf-idf می توان کلمات کلیدی را انتخاب کرد. کلمات کلیدی کلماتی هستند که دارای tf-idf بالایی هستند. با توجه به فاکتور tf ، مشخص است که کلماتی که بسامد بالایی دارند امتیاز بیشتری برای انتخاب به عنوان کلمه کلیدی خواهند داشت. در عین حال این توضیح لازم است که تمام کلماتی که دارای tf بالایی هستند، ارزش استفاده در فرآیند طبقه بندی را ندارند که درا ینجا فاکتور idf به کار می آید،
به این طریق ویژگیهای هر کدام از کلمات موجود در متون پیدا شد. با توجه به اینکه هنوز تعداد این ویژگیها بسیار زیاد است باید از بین آنها، تعدادی انتخاب
شوند به طوریکه این ویژگیها، ویژگیهای مؤثری در طبقه بندی باشند.انتخاب ویژگیها باعث کاهش سربار فضا و زمان برای پیاده سازی الگوریتمهای طبقه بندی خواهد شد. برای انتخاب ویژگی در سیستم طبقه بند متون فارسی از یک حد آستانه استفاده می‌شود که این حد آستانه قابل تنظیم می‌باشد. البته با توجه به اینکه ثابت شده است تنها 33 % کلمات موجود در متن برای طبقه بندی مناسب هستند، پیشنهاد می‌شود که این حد آستانه بین 0 تا 30 انتخاب شود .انتظار می‌رود در این محدوده بهترین جوا بها بدست آیند.

۴. آزمایش ها

همانطور که در قسمت قبل توضیح دادم دادگان مورداستفاده در این پروژه پیکره زبانی جامع همشهری می باشد.در این دادگان مولفان روزنامه همشهری به
صورت دستی مقالات خود را به دسته های مختلفی تقسیم کردند و آن را درسایت پیکره همشهری قرار دادند. تمام اسناد در این مجموعه به 82 موضوع مختلف براساس دسته اخبار موجود در سایت روزنامه دسته بندی شده اند.به عنوان مثال SIASI به معنی سیاسی در فارسی وPOLITICAL در انگلیسی است.
نامهای انگلیسی و فارسی دسته های اصلی (16دسته مهم از بین 82 دسته موجود که بیشترین اسناد را دارند) در جدول زیر امده است:

ایست 16 دسته مهم پیکره همشهری

بردار مربوط به نماینده ی هر موضوع با استفاده از حاصل ضرب tf-idf مربوط به هر کلمۀ کلیدی در متون همان موضوع به دست می آید.
در این آزمایش، به نسبت تقریبی 80‌درصد دادگان متن برای فاز یادگیری و 20 درصد دادگان، برای فاز تست هستند و همچنین دسته بندی اسناد را با روش ساده بیزی که بر اساس تئوری بیز استوار است ، پیاده سازی می کنیم که این پیاده سازی دارای دو قسمت است:
قسمت اول مربوط به یادگیری ماشین می باشد. ماشین در این قسمت باید بتواند از یک مجموعه آموزشی مقادیر مربوط به احتمالات مختلف را بدست بیاورد که براساس روش ساده بیزی بدست می آید.
از جمله احتملاتی که در این مرحله باید محاسبه شود احتمال مربوط به رخداد هر یک از موضوعات در دادگان آموزشی می باشد.
به عبارت دیگر باید مقدار (P(vj را به ازای هر یک از موضوعات بدست آوریم. برای این کار از فرمول زیر بایداستفاده کرد:
فرمول6

که در آن Nvj تعداد اسناد با موضوع vj در دادگان آموزشی و N تعداد کل اسناد دادگان آموزشی است.
احتمال دیگری که در این قسمت باید محاسبه گردد احتمال شرطی (P(ai | vj است .این احتمال بیانگر رخداد هر‌یک از صفات به شرط وقوع هر یک از موضوعات می باشد. برای محاسبه این احتمال از فرمول زیر استفاده می کنیم:
فرمول7

که در آن Nav تعداد تکرار صفت a در موضوع v می‌باشد.همچنین عبارت مخرج کسر برابر با مجموع تعداد کل صفات در موضوع v می‌باشد.
به دلیل اینکه ممکن است یک صفت در یک موضوع اصلا تکراری نداشته باشد و احتمال بالا برابر با صفر شود و در نتیجه احتمال مربوط به قانون بیز را که برابر حاصلضرب همه احتمالات فرمول بالا است صفر کند از یک مرحله نرم سازی که در قسمت قبل توضیح داده شد، استفاده می‌شود و فرمول بالا را به فرمول زیر تبدیل می‌شود:
فرمول8

قسمت دوم پیاده سازی پروژه که قسمت آزمون نام دارد، مربوط به تعیین موضوع اسناد جدید است. در این قسمت باید با توجه به یادگیری های مرحله قبل بتوانیم برای اسناد جدید که موضوع آنها مشخص نیست ؛ با توجه به محتوای داخلی آنها و استفاده از کلمات کلیدی به روش گفته شده، موضوعات مختلف را برچسب بزنیم.
از 82 دسته موجود تنها 12 دسته بیش از 1000سند دارند که72 درصد مجموعه را شکل می دهند.
شکل زیر توزیع اسناد در 12 دسته اصلی را نشان می دهد.
توزیع اسناد در 12 دسته اصلی

4-1.آزمایش اولیه:
معیار دقت برای ارزیابی طبقه بندی متون پرکاربرد می باشد. این معیارها به صورت زیر تعریف می شود:
فرمول9

که در آن a ، تعداد مستندات مرتبط با موضوع است که به طور صحیح برچسب زنی شده اند و b ، تعداد مستندات غیرمرتبط با موضوع است که به اشتباه برچسب موضوع موردنظر را خورده اند.جدول زیر نتایج ارزیابی طبقه بندی را برروی متون آزمون نشان می دهد.

نتایج آزمایش اولیه

[20]Source-code-Github

4-2.مقایسه با آزمایشات و مقالات فارسی دیگر در زمینه رده بندی موضوعبی متون
الف) اولین کار مربوط به مقاله‌ای با موضوع « کاوش متون فارسی بر مبنای روش طبقه بندی » که توسط محمد حسین سرایی و آذر شاهقلیان گرد‌آوری شده است، می‌باشد که در آن داده‌های ورودی به برنامه طبقه بند متون، عموماً متونی هستند که از سایت های خبری فارسی جمع آوری می‌شود. بررسی کلی روی هفت طبقه‌ی :1- اجتماعی 2- اقتصادی 3- پزشکی 4- سیاسی 5- فرهنگی 6- مذهبی-7 ورزشی صورت گرفته است که برای هر یک از این طبقه ها 100 متن در نظر گرفته شده است. از هر کدام از این 100 متن، 80 متن برای فاز یادگیری و 20 متن دیگر برای فاز تست استفاده شده‌ است. با اجرای برنامه روی داده های تست این مقاله، دقت برای دسته های مختلف از طریق الگوریتم KNN بدست آمده که برای دسته های اقتصادی، اجتماعی، فرهنگی، پزشکی و سیاسی بر اساس فرمول تولید ویژگی LTC بهترین دقت تولید شده است که بین بازه‌ی (100-80) درصد می‌باشد. بدترین جواب هم برای الگوریتم TX-IDF می‌باشد که بین بازه‌ی (20-0) درصد می‌باشد.
ب) کار بعدی مربوط به مقاله ای با موضوع « برچسب‌زنی م.ضوعی متون فارسی می‌باشد که توسط هادی عبدی قویدل ، بهرام وزیرنژاد و محمد بحرانی انجام پذیرفته است.در این مقاله از پیکرة متنی زبان فارسی به عنوان دادگان آموزشی استفاده شده است.همچنین از بین مستندات این پیکره، زیرپیکره ای شامل تعدادی از مستندات در 10 موضوع :ادبیات داستانی، اقتصادی، اجتماعی، فرهنگی، هنری، مذهبی، پزشکی، سیاسی، تاریخی و ورزشی انتخاب شده است. در این آزمایش، متون اجتماعی چون همواره سایر متون را دربر می‌گیرند دارای دقت و بازخوانی کمتری نسبت به بقیه‌ی مستندات می‌باشند. سایر متون دارای نتایج بهینه‌ای هستند که می‌تواند برای بسیاری از متونی که از سایتهای مختلف خبری استخراج می‌شود، درست کار کند.بیشترین دقت مربوط به دسته‌های ورزشی و پزشکی با دقت های 90‌درصد و 88‌درصد می‌باشد.
ج) کار بعدی مربوط به مقاله ای با موضوع « دسته بندی متون بر اساس قواعد انجمنی » ،تهیه شده توسط سید محمد حسین احمدی می‌باشد که از روش دسته بندی بر مبنای قواعد انجمنی که از روی فرایند کاوش الگوهای مکرر مجموعه داده های آموزشی تولید شده اند، برای دسته بندی متون فارسی استفاه شده است. همچنین از الگوریتم طبقه بندی متن بر اساس قواعد انجمنی 21 و پیکره همشهری فارسی 2 برای دادگان مورد نیاز دسته بندی متون استفاده شده است. آزمایشات انجام شده و ارزیابی آن ها نشان می دهد با افزایش تعداد متون آزمایشی و انتخاب مناسب کلمات کلیدی مرتبط با موضوع متن، دقت دسته بند به طور چشمگیری افزایش می یابد.

۵. نتیجه‌گیری

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

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

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

۷. مراجع

[1] کاوش متون فارسی بر مبنای روش طبقه بندی، محمد حسین سرایی، آذر شاهقلیان ، نشریه علمی پژوهشی انجمن کامپیوتر ایران، 1389
[2] دسته بندی موضوعی متون فارسی بر اساس روش قواعد انجمنی، سید محمد حسین احمدی، پایان نامه ی کارشناسی ارشد ، دی ماه 90
[3] دسته‌بندی متون با استفاده از یادگیری ماشین، محسن رحیمی، پروژه هوش مصنوعی، 91
[4] F Sebastiani, "Machine learning in automated text categorization", ACM computing surveys (CSUR),2002
[5] ایوب باقری، حامد فرزانه فر،محمد حسین سرایی ،محمدرضا احمدزاده ."دسته بندی متون خبری فارسی با استفاده از الگوریتم NaïveBayes ".دومین کنفرانس داده کاوی ایران.1387
[6] متن کاوی ، سارا مصباح ، گزارش درس مباحث ویژه در پایگاه داده ، تابستان 88

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

[8] 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.

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

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

[11] K.Torkolla, "Linear Discriminant Analysis in Document Classification", _IEEE ICDM workshop on text mining, 2001.

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

[13] X. Guandong, Y. Zhang, Z. Zhou, "Using Probabilistic Latent Semantic Analysis for Web Page Grouping", Proceedings of Research Issues in Data Engineering: Stream Data Mining and Applications_, pp. 29-36, 2005.

[14] محسن عرب سرخی، هشام فیلی، "ارائه یک سیستم دسته بندی موضوعی متون فارسی بر اساس روش های احتمالاتی"، مجموعه مقالات دومین کارگاه پژوهشی زبان فارسی و رایانه، صص161،1.1385،

[15] آزاده حاجی حسینی، فرشاد الماس گنج، "دسته بندی موضوعی متون فارسی بر اساس روش آنالیز معنایی پنهان"، مجموعه مقالات دومین کارگاه پژوهشی زبان فارسی و رایانه، صص 190.1385 ،201

[16] 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

[17] 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.4, 2009
[18] Hamshahri website
[19] هادی عبدی قویدل، بهرام وزیر نژاد ، محمدبحرانی ،برچسب زنی موضوعی متون فارسی ، دانشگاه صنعتی شریف
[20] رده بندی متون ، سینا محمودی، پروژه هوش مصنوعی، 92


  1. Machine Learning

  2. text classification

  3. Classification Rules

  4. Associative Classification

  5. Supervised learning

  6. K-NN:K-Nearest Neighbours

  7. Text Mining

  8. Data Mining

  9. Information Extraction

  10. Natural Language Processing

  11. Unsupervised learning

  12. Semi-supervised learning

  13. Label

  14. Reinforcement learning

  15. Decision Trees

  16. Naïve Bayesian

  17. Neural Networks

  18. Support Vector Machines

  19. Support Vector Machines

  20. Hamshahri corpus

  21. Classification Based on Association

تایید شده

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

رد شده
تایید شده

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

رد شده

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

تایید شده

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

رد شده

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

تایید شده

با عرض سلام و خسته نباشید بابت تلاشهای صورت گرفته
در این فاز تلاش شما مشهودتر بود و اکثر مواردی که در ارزیابی فازهای قبلی گفته شده بود را رعایت کردید
اما علاوه بر نکات دوستان لازم است موارد زیر را نیز در نظر داشته باشید:
1- در بحث نتایج بهبودی داده نشده است و فقط به آزمایش اولیه بسنده شده است که این در مقالات قابل قبول نیست
2- برای مقایسه با کارهای دیگران بهتر است در جدولی این مقایسه صورت گیرد.

با سپاس