رده‌بندی موضوعی متن

تغییرات پروژه از تاریخ 1394/10/05 تا تاریخ 1394/11/05

در رده‌بندی متون هدف این است که سندهایی را که در اختیار داریم بتوانیم برچسب‌گذاری موضوعی کنیم. در واقع این موضوع صرفا یک مسئله با ناظر است، یعنی مجموعه‌ای از اسناد متنی که گروه‌بندی موضوعی شده‌اند به عنوان داده‌ی آموزشی در اختیار سامانه قرار می‌گیرد تا بتواند با یادگیری از این مجموعه، اسناد جدید ورودی را به یکی از این گروه‌های موضوعی ملحق نماید.
در این پژوهش روش‌های مختلف رده‌بندی اسناد متنی مورد بررسی قرار گرفته و برای زبان فارسی پیاده‌سازی می‌شوند.
# مقدمه
در دوران  معاصر دانش به عنوان یک فاکتور کلیدی در سازمان های جدید برای رقابت های سالم به شمار می آید. دستبابی به موفقیت در این رقابت، مستلزم یافتن اطلاعات مفید در زمانی مناسب است. از طرفی گسترش روز افزون دانش و تکنولوژی بشر، باعث افزایش اطلاعات در دسترس شده است . این موضوع حتی در سالهای گذشته نیز مشهود بوده است به طوری که به طوروسیعی از روش های آماری و یادگیری ماشین[^Machine Learning]   برای دسته بندی متون استفاده شده است. البته توجه به این نکته ضروری است که تنها خود اطلاعات کافی نیست؛بلکه قابلیت مدیریت و اعمال نفوذ بر این اطلاعات به صورت موفق،ازاهمیت بالایی برخوردار است [1 ].
دسته بندی متون[^text classification]، اگرچه که از سال 1960 میلادی به بعد مورد مطالعه قرار گرفته است؛ ولی با شروع دهۀ 90به لطف پیشرفت های نرم افزاری و سخت افزاری ،  پیشرفت چشمگیری داشته است. امروزه مساله برچسب زنی موضوعی متون در حوزه بازیابی اطلاعات وتحلیل داده های آماری، امری مهم و کاربردی به شمار میرود. انتساب اسناد متنی به دسته های از پیش تعیین شده به منظور دسته بندی اتوماتیک و خودکار متون در ده سال اخیر تمام توجهات را به خود جلب کرده است. مقصود از طبقه بندی یا دسته بندی خودکار متون این است که این رده بندی ، در زبان طبیعی و با استفاده از یادگیری ماشین صورت  می گیرد ؛
حال آنکه روش اصلی در جامعه تحقیقاتی در این زمینه می باشد .در یادگیری ماشین ، معمولا سیستم این گونه یادگیری را انجام می دهد که  روی یک دسته از متون  از قبل  برچسب زنی  شده  آموزش  داده می شود وبعد از آن طبقه بندی یا classification متون جدید با استفاده از مدلهای  حاصل  از مرحلۀ آموزش، صورت می گیرد.

![شکل1 -  یادگیری ماشین](https://boute.s3.amazonaws.com/224-ML.png)

دسته بندی متون در بسیاری از زمینه ها از جمله فیلترکردن متون مخصوصا در نامه های الکترونیکی، تشخیص طبقهطبقه بندی اسناد، ابهام زدایی از کلمات، سیستمهای خودکار پاسخ به سوالات و یا حتی نمره دهی به مقالات در سیستمهای آموزشی و به طور کلی در هر کاربردی که سازماندهی مستندات و یا توزیع انتخابی و تطبیقی خاصی ازمستندات مد نظر باشد، کاربرد دارد. همچنین برچسب زنی موضوعی  متون با مسائلی چون استخراج اطلاعات و دانش از متون و داده کاوی متون دارای ویژگی های فنی مشترک می باشد.
هدف این پروژه این است که روش های مختلف رده بندی اسناد متنی در زبان فارسی مورد بررسی قرار گیرد.
روشهای زیادی برای دسته بندی متون استفاده شده است که در جلوتر بهادامه به بررسی آن میپردازیم.در یکی از این روش ها، از قواعد انجمنی  استفاده شده و آن را با قواعد دسته بندی[^Classification Rules] ترکیب کرده اند ،  که باعث تولید مدلی با عنوان دسته بندی انجمنی[^Associative Classification] برای استفاده در دسته بندی متون شده است[2][Yoon2007,Chen2005]
همچنین برای دسته بندی اسناد با استفاده از ناظر[^Supervised learning]، ما نیاز به روشی برای یادگیری از روی مجموعه آموزشی داریم. اگر در یک فضای n بعدی ، اطلاعات مربوط به اسناد هر دسته را بوسیله نگاشت کردن اطلاعات ، نگهداری کنیم؛ در آن صورت میتوانیم اطلاعات بدست آمده از یادگیری ماشین را ذخیره کنیم که الگوریتم نزدیک ترین همسایه[^K-NN:K-Nearest Neighbours] از این روش تبعیت می کند. و یا اگر که مجموعه احتمالات مربوط به اسناد و موضوعات که از اطلاعات بدست آمده در یادگیری ماشین به وجود  آمده است ، را ذخیره کنیم ودر هنگامی که به آن اطلاعات نیاز داریم ، از این احتمالات برای دسته بندی اسناد جدید استفاده کنیم ؛ این خود نیز از روش های دیگر موجود برای نگهداری از اطلاعات بدست آمده از یادگیری می باشد.[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]
همانطور که در مقدمه اشاره شد،در جامعه تحقیقاتی ، روش اصلی در زمینه ی طبقه بندی خودکار و موضوعی اسناد و متون، روش های بر اساس یادگیری ماشین هستند. دسته بندی متن در واقع زیر شاخه ای از  متن کاوی [^Text Mining]    می باشد و متن کاوی هم زیر شاخه ای از علم داده کاوی[^Data Mining] می باشد.  برای دسته بندی متن از تکنیک های استخراج اطلاعات[^Information Extraction]، پردازش زبان طبیعی[^Natural Language Processing]  و یادگیری ماشین به طور وسیع استفاده می شود. [Xia2007]
در تکنیک یادگیری ماشین، طبقه بندی کننده ها با استفاده از یادگیری از یک مجموعه ی مستندات از پیش طبقه بندی شده مشخصات دسته ی جدید را
معین می سازند. همچنین در مورد هر سند باید به این سؤال پاسخ داد که این سند در کدام دسته ( یا دسته ها )  باید قرار گیرد. این موضوع می تواند در قالب یک یادگیری خودکارحل شود که ازآن به عنوان تکنیک یادگیری ماشین یاد می شود که یکی از شاخه های وسیع و پرکاربرد  هوش مصنوعی به شمار می رود.
برای ساختن طبقه بندی کننده ها ، نیاز به دانش مهندسی و زبان شناسی افراد خبره وجود دارد، اما اگر به جای استفاده از ماشین، طبقه بندی به صورت دستی انجام بگیرد ؛ علاوه بر صرف زمان و هزینه ی زیاد ، معایب زیر را به همراه خواهد داشت:
1-     برای زمینه های تخصصی خاص به دانش افراد خبره نیاز است؛ مانند: زمینه های پزشکی، مهندسی و غیره
2-     برچسب زنی موضوعی متون به صورت دستی مبتنی بر دانش و تجربۀ فرد می باشد، از این رو درصد خطاپذیری آن بسیار زیاد است. 
3-     تصمیم دو فرد خبره در عمل برچسب زنی موضوعی متون می تواند متفاوت و یا حتی ناسازگار باشد.
مساله ای که در حوزه ی پردازش زبان طبیعی با آن روبرو هستیم این است که صورت های غیر استاندارد نویسه ها و کلمات به وفور در متونی که با این حوزه در ارتباط هستند ، دیده می شوند.قبل از اینکه بتوان از این متون برای استفاده در سیستم های جستجو در متون فارسی استفاده کردو یادرپایگاه داده  ذخیره شان کرد، بایدابتدا پیش پردازشی روی آنهاانجام گیرد تا صورت های غیراستاندارد به شکل استاندارد تبدیل گردند. طی فرآیند نرمال سازی در متون فارسی ، علایم نگارشی ، حروف، فاصله های بین کلمات، اختصارات و غیره بدون ایجاد تغییرات معنایی به شکل استانداردشان تبدیل می شوند ؛ چرا که اگر این علایم و حروف و کلمات فارسی به شکل یکسانی نوشته نشوند، متون مورد استفاده قابل تحلیل برای ماشین های رایانه ای نخواهد بود.
فازهای یادگیری ماشین برای طبقه بندی متن مطابق شکل 1 می باشد .همانگونه که در شکل مشاهده میشود، طی 5 فاز، سیستم یادگیری ماشین برای انجام طبقه بندی به کار گرفته میشود. این فازها عبارتند از:

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

![شکل 21 - فازهای سیستم یادگیری ماشین برای طبقه بندی](https://boute.s3.amazonaws.com/224-phaz.png)


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

**12-2. روش های دسته بندی اسناد و کارهای مرتبط** :

در زمینه ی دسته بندی متون تا کنون روش های زیاد و مختلفی ارائه شده است ،از جمله : درخت های تصمیم گیری[^Decision Trees] ، روش نزدیک ترین همسایه[K-Nearest Neighbours] ، روش بیزین ساده [^Naïve Bayesian]، روش شبکه های عصبی[^Neural Networks] ، ماشین های بردار پشتیبان[^Support Vector Machines] و غیره .
1-2-2-1.    **روش ساده بیزی** :
این روش یک از پرکاربردترین روش در دسته بندی متون است . در این روش متن به صورت مجموعه های کلمات مستقل از یکدیگر و مستقل از محل قرار گرفتن در متن در نظر گرفته میشود [5] . تابع احتمال هر متن از حاصلضرب احتمال کلمات آن و احتمال رخداد متنی با آن طول بدست می آید . یادگیری سیستم بوسیله ی تخمین پارامترهایی برای تولید مدلی صورت می گیرد که فقط از متون برچسب دار استفاده میکند. الگوریتم از پارامترهای تخمین زده شده برای دسته بندی متون جدید با محاسبه ی اینکه کدام دسته بیشترین شباهت را با متن داده شده دارد،استفاده می کند.روش بیز یک مدل احتمالی ویژه برای متون در نظر میگیرد. این روش فرض می کند که لغات مستقل هستند که این فرض اجازه میدهد مدل تولیدی با تعداد بسیار زیادی پارامتر کاهش یافته نمایش داده شود.
کلاس یک سند متناسب با کلماتی است که در یک سند ظاهر می شوند که  در این روش برای تخمین کلاس سند از فرمول زیر استفاده می­شود[6] : 

![فرمول1](https://boute.s3.amazonaws.com/224-formul1.png)
در این فرمول L نشان دهنده کلاس c و tها ترم­های موجود در یک سند هستند. این نکته قابل ذکر است که هر سند دقیقا به یک کلاس تعلق دارد. از
آنجا که برای همه کلاس­ها مساوی در نظر گرفته می­شود، می­توان این احتمال را از فرمول بالا حذف نمود و همچنین برای سادگی از فرض استقلال Na¨ıve  استفاده می­شود. طبق این فرض احتمال رخداد کلمات در یک سند مستقل از یکدیگر است. یعنی داریم:

![فرمول2](https://boute.s3.amazonaws.com/224-formul2.png)

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

![_شکل 32- روش ساده بیزی_ ](https://boute.s3.amazonaws.com/224-Biz.jpg)
2-2-2. **روش نزدیکترین همسایه**  :
به جای ساختن مدل­های صریح برای کلاس­های مختلف، راه دیگر اینست که اسنادی از مجموعه آموزش که مشابه به سند جاری هستند، انتخاب شوند و کلاس سند جاری برابر با کلاسی است که اکثزیت اسناد مشابه دارند. در روش رده­بندی _K_ تا همسایه نزدیکتر،  _k_ تا سند از مجموعه آموزش که بیشترین شباهت (بر اساس یک معیار شباهت تعریف شده) را به سند جاری دارند به عنوان همسایگان آن سند انتخاب می­شوند.
تعداد زیادی معیار شباهت در متن کاوی وجود دارد. یک روش ساده شماردن تعداد کلمات مشترک در دوسند است. این روش باید برای اسناد با طول مختلف نرمالایز شود. همچنین ممکنه کلماتی بیشتر منعکس کننده محتوای یک سند باشند. به عنوان یک روش استاندارد برای اندازه­گیری شباهت می­توان به شباهت کسینوسی اشاره نمود. برای اینکه کلاس سند _d_ مشخص شود، شباهت _S(d, d)_ برای همه اسناد _d_ در مجموعه آموزش محاسبه می­شود.
سپس _k_ تا از شبیه­ترین اسناد مجموعه آموزش به عنوان همسایه­های سند جاری انتخاب می­گردند و کلاس سند _d_ برابر با کلاسی است که اکثر سندهای همسایه آن دارای آن کلاس هستند. در این روش مقدار بهینه _k_ را می­توان از مجموعه آموزش دیگری به وسیله cross-validatio_n_ تخمین زد.
این روش رده بندی طبق مطالعات انجام شده [Joachims_98]__کارایی خوبی دارد. وتنها مشکل آن اینست که در طی رده­بندی محاسبات  زیادی لازم است (محاسبه کردن شباهت یک سند با همه اسناد موجود در مجموعه آموزش).
![شکل 43- روش نزدیک ترین همسایه](https://boute.s3.amazonaws.com/224-KNNt.png)
3-2-2-3. **روش ماشین بردار پشتیبان[Support Vector Machines]**
 به عنوان یک الگوریتم رده ­بندی _نظارت شده_  برای رده ­بندی متن به کار می رود. معمولا  سند d به وسیله بردار     (t,….., t) از تعداد کلماتش نمایش داده می­شود.متن کاوی اینست که تنها به تعداد کمی از ترم یک [^ Support Vector Machines] SVMمی­توان فقط دو کلاس را جدا کند:
یک کلاس مثبت L (توسط y = +1 نشان داده می­شود) و کلاس منفی L(که با y = -1 نشان داده می­شود). در فضای بردارهای ورودی، یک hyperplane  با تنظیم کردن  y = 0در زیر معادله خطی  تعریف می­شود:
![فرمول3](https://boute.s3.amazonaws.com/224-formul3.png)

این روش یک hyperplane که بین نمونه­ های مثبت و منفی مجموعه آموزش قرار می­گیرد را مشخص می­کند. پارامترهای b به گونه ­ای تنظیم می ­شوند که فاصله ای (که حاشیه  نامیه می­شود) بین hypelane و نزدیکترین نمونه مثبت و منفی ماگزیمم شود. اسنادی که دارای فاصله اشاره شده از hyperplan هستند، support vectors نامیده می­شوند و محل واقعی hyperplan را مشخص می­کنند. معمولا تنها کسر کوچکی از اسناد support هستند.SVM می­ تواند با پیشگوهای غیرخطی استفاده شود مثلا با تعریف کردن یک feature map :
![فرمول4](https://boute.s3.amazonaws.com/224-formul4.png)
یادگیری تقریبا مستقل از فضای ویژگی از مهمترین مشخصه های این روش به حساب می آید.

**کارهای مرتبط**
دسته بندی متون با روشهای مختلف برای زبان انگلیسی صورت گرفته است.   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]

**1-4. روش های پیشنهادی برای طبقه بندی متون فارسی** 
روش پیشنهادی برای طبقه بندی متون فارسی بر اساس روش یادگیری ماشین استوار است. در روش یادگیری ماشین، دو فاز آموزش و آزمون وجود دارد . در فاز آموزش دسته های از قبل مشخص شده ای را برای یادگیری ماشین استفاده می کنند و معنای هر طبقه برای سیستم یادگیری ماشین مشخص می شود. در فاز آزمون، مستندات غیر شناخته ای  به سیستم داده می شود . سیستم به طورخودکار آن متن را به طبقهای که بیشتر شباهت دارد نسبت می دهد.
قانون اصلی یادگیری ماشین این است که یک فضای وسیع از فرضیات ممکن و دانش پیشین نگهداشته شده بوسیله یادگیر را جستجو نموده و بهترین طبقه ممکن را برای متن تست بدست آورد. وظیفه یادگیر جستجو در این فضا برای جایگذاری فرضیاتی است که بیشترین سازگاری را با نمونه های آموزشی موجود دارد.
پیکره زبانی که در این پروژه مورد استفاده قرار خواهد گرفت**، پیکره زبانی جامع همشهری نسخه 2** [^Hamshahri corpus]می باشد.
نسخه 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   ورزش

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

# پیاده سازی پروژه :
الگوریتم پیشنهادی برای برچسب زنی موضوعی بدین صورت عمل می کند که ابتدا تعدادی کلمه از بین کلمات دادگان آموزشی به عنوان کلمه کلیدی انتخاب  می شود.[19] برای این کار روشهای مختلفی است که tf-idf  به عنوان یکی از روشهای خوب می باشد که در آن tf  متناسب با یک فاکتور وزنی است که  IDF بسامد یک کلمه در مستند و بیانگر معکوس میزان پراکندگی یک کلمه در سندهای مختلف است. برای استخراج کلمات کلیدی ،tf-idf  را برای هر کلمه ی i  به روش زیر بدست می آوریم: 
![فرمول5](http://8pic.ir/images/ho5iyr64a5wsf9tevewi.png)
در فرمول5 ، ni تعداد کلمه i در زیر پیکره، M  فراوانی کل سندها در زیر پیکره و dfi تعداد مستنداتی است که شامل کلمه ی i می باشند. با در نظر گرفتن حد آستانه ای روی tf-idf می توان کلمات کلیدی را انتخاب کرد. کلمات کلیدی کلماتی هستند که دارای tf-idf بالایی هستند. با توجه به فاکتور tf ، مشخص است که کلماتی که بسامد بالایی دارند امتیاز بیشتری برای انتخاب به عنوان کلمه کلیدی خواهند داشت. در عین حال این توضیح لازم است که تمام کلماتی که دارای tf  بالایی هستند، ارزش استفاده در فرآیند طبقه بندی را ندارند که درا ینجا فاکتور idf به کار می آید.

# آزمایش ها
همانطور که در قسمت قبل توضیح دادم دادگان مورداستفاده در این پروژه پیکره زبانی  جامع همشهری می باشد.در این دادگان مولفان  روزنامه همشهری به 
صورت دستی مقالات خود را به دسته های مختلفی تقسیم می کنند و آن را  درسایت  پیکره همشهری قرار دادند.تمام اسناد در این مجموعه به 82 موضوع 	
مختلف براساس دسته اخبار موجود در سایت روزنامه دسته بندی شده اند.به عنوان مثال  SIASI  به معنی سیاسی در فارسی وPOLITICAL در انگلیسی است.
نامهای انگلیسی و فارسی دسته های اصلی (16دسته مهم از بین 82 دسته موجود که بیشترین اسناد را دارند)	در جدول زیر امده است:
![ایست 16 دسته مهم پیکره همشهری](http://8pic.ir/images/j5n7sle5x2txkf8x7smz.png)
بردار مربوط به  نماینده ی هر موضوع با استفاده از حاصل ضرب tf-idf  مربوط به هر کلمۀ کلیدی در متون همان موضوع به دست می آید.
دسته بندی اسناد را با روش ساده بیزی که بر اساس تئوری بیز استوار است ، پیاده سازی می کنیم که این پیاده سازی دارای دو قسمت است:
قسمت اول مربوط به یادگیری ماشین می باشد. ماشین در این قسمت باید بتواند از یک مجموعه آموزشی مقادیر مربوط به احتمالات مختلف را بدست بیاورد که براساس روش ساده بیزی که در قبل به آن اشاره کردیم، بدست می آید. 2-3. روش های پیشنهادی برای طبقه بندی متون فارسی** 
روش پیشنهادی برای طبقه بندی متون فارسی بر اساس روش یادگیری ماشین استوار است. در روش یادگیری ماشین، دو فاز آموزش و آزمون وجود دارد . در فاز آموزش دسته های از قبل مشخص شده ای را برای یادگیری ماشین استفاده می کنند و معنای هر طبقه برای سیستم یادگیری ماشین مشخص می شود. در فاز آزمون، مستندات غیر شناخته ای  به سیستم داده می شود . سیستم به طورخودکار آن متن را به طبقهای که بیشتر شباهت دارد نسبت می دهد.
قانون اصلی یادگیری ماشین این است که یک فضای وسیع از فرضیات ممکن و دانش پیشین نگهداشته شده بوسیله یادگیر را جستجو نموده و بهترین طبقه ممکن را برای متن تست بدست آورد. وظیفه یادگیر جستجو در این فضا برای جایگذاری فرضیاتی است که بیشترین سازگاری را با نمونه های آموزشی موجود دارد.
پیکره زبانی که در این پروژه مورد استفاده قرار خواهد گرفت**، پیکره زبانی جامع همشهری نسخه 2** [^Hamshahri corpus]می باشد.
نسخه 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](http://8pic.ir/images/ho5iyr64a5wsf9tevewi.png)
در فرمول5 ، ni تعداد کلمه i در زیر پیکره، M  فراوانی کل سندها در زیر پیکره و dfi تعداد مستنداتی است که شامل کلمه ی i می باشند. با در نظر گرفتن حد آستانه ای روی tf-idf می توان کلمات کلیدی را انتخاب کرد. کلمات کلیدی کلماتی هستند که دارای tf-idf بالایی هستند. با توجه به فاکتور tf ، مشخص است که کلماتی که بسامد بالایی دارند امتیاز بیشتری برای انتخاب به عنوان کلمه کلیدی خواهند داشت. در عین حال این توضیح لازم است که تمام کلماتی که دارای tf  بالایی هستند، ارزش استفاده در فرآیند طبقه بندی را ندارند که درا ینجا فاکتور idf به کار می آید،
به این طریق ویژگیهای هر کدام از کلمات موجود در متون پیدا شد. با توجه به اینکه هنوز تعداد این ویژگیها بسیار زیاد است باید از بین آنها، تعدادی انتخاب
شوند به طوریکه این ویژگیها، ویژگیهای مؤثری در طبقه بندی باشند.انتخاب ویژگیها باعث کاهش سربار فضا و زمان برای پیاده سازی الگوریتمهای طبقه بندی خواهد شد. برای انتخاب ویژگی در سیستم طبقه بند متون فارسی از یک حد آستانه استفاده می‌شود که این حد آستانه قابل تنظیم می‌باشد. البته با توجه به اینکه ثابت شده است تنها 33 % کلمات موجود در متن برای طبقه بندی مناسب هستند، پیشنهاد می‌شود که این حد آستانه بین 0 تا 30 انتخاب شود .انتظار می‌رود در این محدوده بهترین جوا بها بدست آیند.

# آزمایش ها
همانطور که در قسمت قبل توضیح دادم دادگان مورداستفاده در این پروژه پیکره زبانی  جامع همشهری می باشد.در این دادگان مولفان  روزنامه همشهری به 
صورت دستی مقالات خود را به دسته های مختلفی تقسیم کردند و آن را  درسایت  پیکره همشهری قرار دادند. تمام اسناد در این مجموعه به 82 موضوع مختلف  براساس دسته اخبار موجود در سایت روزنامه دسته بندی شده اند.به عنوان مثال  SIASI  به معنی سیاسی در فارسی وPOLITICAL در انگلیسی است.
نامهای انگلیسی و فارسی دسته های اصلی (16دسته مهم از بین 82 دسته موجود که بیشترین اسناد را دارند)	در جدول زیر امده است:
![ایست 16 دسته مهم پیکره همشهری](http://8pic.ir/images/j5n7sle5x2txkf8x7smz.png)
بردار مربوط به  نماینده ی هر موضوع با استفاده از حاصل ضرب tf-idf  مربوط به هر کلمۀ کلیدی در متون همان موضوع به دست می آید.
در این آزمایش، به نسبت تقریبی 80‌درصد دادگان متن برای فاز یادگیری و 20 درصد دادگان، برای فاز تست هستند و همچنین دسته بندی اسناد را با روش ساده بیزی که بر اساس تئوری بیز استوار است ، پیاده سازی می کنیم که این پیاده سازی دارای دو قسمت است:
قسمت اول مربوط به یادگیری ماشین می باشد. ماشین در این قسمت باید بتواند از یک مجموعه آموزشی مقادیر مربوط به احتمالات مختلف را بدست بیاورد که براساس روش ساده بیزی بدست می آید. 
از جمله احتملاتی که در این مرحله باید محاسبه شود احتمال مربوط به رخداد هر یک از موضوعات در دادگان آموزشی می باشد.
به عبارت دیگر باید مقدار (P(vj را به ازای هر یک از موضوعات بدست آوریم. برای این کار از فرمول زیر بایداستفاده کرد:
![فرمول6](http://8pic.ir/images/v6wyv3xgzoh1r33r5afj.png)
که در آن Nvj تعداد اسناد با موضوع vj در دادگان آموزشی و N تعداد کل اسناد دادگان آموزشی است.
احتمال دیگری که در این قسمت باید محاسبه گردد احتمال شرطی (P(ai | vj است .این احتمال بیانگر رخداد هر‌یک از صفات به شرط وقوع هر یک از موضوعات می باشد. برای محاسبه این احتمال از فرمول زیر استفاده می کنیم:
![فرمول7](http://8pic.ir/images/q2ad8pv1lfnaduh7bvjj.png)
که در آن Nav تعداد تکرار صفت a در موضوع v می‌باشد.همچنین عبارت مخرج کسر برابر با مجموع تعداد کل صفات در موضوع v می‌باشد.
به دلیل اینکه ممکن است یک صفت در یک موضوع اصلا تکراری نداشته باشد و احتمال بالا برابر با صفر شود و در نتیجه احتمال مربوط به قانون بیز را که برابر حاصلضرب همه احتمالات فرمول بالا است صفر کند از یک مرحله نرم سازی که در قسمت قبل توضیح داده شد، استفاده می‌شود و فرمول بالا را به فرمول زیر تبدیل می‌شود:
![فرمول8](http://8pic.ir/images/631rv9iqylq82feaz0xw.png)
قسمت دوم پیاده سازی پروژه که قسمت آزمون نام دارد،  مربوط به تعیین موضوع اسناد جدید است. در این قسمت باید با توجه به یادگیری های مرحله قبل بتوانیم برای اسناد جدید که موضوع آنها مشخص نیست ؛ با توجه به محتوای داخلی آنها و استفاده از کلمات کلیدی به روش گفته شده، موضوعات مختلف را برچسب بزنیم.
از 82 دسته موجود تنها 12 دسته بیش از 1000سند دارند که72 درصد مجموعه را شکل می دهند.
شکل زیر توزیع اسناد در 12 دسته اصلی را نشان می دهد.
![توزیع اسناد در 12 دسته اصلی](http://8pic.ir/images/pyeuxdod9ytz092kdyby.png)
**54-1-.آزمایش اولیه:**
معیار دقت  برای ارزیابی طبقه بندی متون پرکاربرد می باشد. این معیارها به صورت زیر تعریف می شود:
  ![فرمول69](http://8pic.ir/images/767i3l9ix0hwvgywlyvp.png)       
  که در آن a ،  تعداد مستندات مرتبط با موضوع است که به طور صحیح  برچسب زنی شده اند و b ، تعداد مستندات غیرمرتبط با موضوع است که به اشتباه برچسب موضوع موردنظر را خورده اند.جدول زیر نتایج ارزیابی طبقه بندی را برروی متون آزمون نشان می دهد.

![نتایج آزمایش اولیه](http://8pic.ir/images/m369nc58fzka46a6lixl.png)
[Source-code-Github](https://github.com/sobhanvafaei/Text-Classification/tree/master)

# کارهای آینده
در فازبعدی انشاا...  به بهبود نتایج و گزارش های مورد نظر پیرامون  رده بندی  موضوعی متن  می پردازیم.20][Source-code-Github](https://github.com/sobhanvafaei/Text-Classification/tree/master)

**4-2.مقایسه با آزمایشات و مقالات  فارسی دیگر در زمینه رده بندی موضوعبی متون**
**الف)** اولین کار مربوط به مقاله‌ای با موضوع « کاوش متون فارسی بر مبنای روش طبقه بندی » که توسط محمد حسین سرایی و آذر شاهقلیان گرد‌آوری شده است، می‌باشد که در آن داده‌های ورودی به برنامه طبقه بند متون، عموماً متونی هستند که از سایت های خبری فارسی جمع آوری می‌شود. بررسی کلی روی هفت طبقه‌ی :1- اجتماعی 2- اقتصادی 3- پزشکی 4- سیاسی 5- فرهنگی 6- مذهبی-7 ورزشی صورت گرفته است که برای هر یک از این طبقه ها 100 متن در نظر گرفته شده است. از هر کدام از این 100 متن، 80 متن برای فاز یادگیری و 20 متن دیگر برای فاز تست استفاده شده‌ است. با اجرای برنامه روی داده های تست این مقاله، دقت برای دسته های مختلف از طریق الگوریتم KNN بدست آمده که برای دسته های اقتصادی، اجتماعی، فرهنگی، پزشکی و سیاسی بر اساس فرمول تولید ویژگی LTC  بهترین دقت تولید شده است که بین بازه‌ی (100-80) درصد می‌باشد. بدترین جواب هم برای الگوریتم TX-IDF می‌باشد که بین بازه‌ی (20-0) درصد می‌باشد.
**ب)** کار بعدی مربوط به مقاله ای با موضوع « برچسب‌زنی م.ضوعی متون فارسی می‌باشد که توسط هادی عبدی قویدل ، بهرام وزیرنژاد و محمد بحرانی انجام پذیرفته است.در این مقاله از پیکرة متنی زبان فارسی به عنوان دادگان آموزشی استفاده شده است.همچنین از بین مستندات این پیکره، زیرپیکره ای شامل تعدادی از مستندات در 10 موضوع :ادبیات داستانی، اقتصادی، اجتماعی، فرهنگی، هنری، مذهبی، پزشکی، سیاسی، تاریخی و ورزشی انتخاب شده است. در این آزمایش، متون اجتماعی چون همواره سایر متون را دربر می‌گیرند دارای دقت و بازخوانی کمتری نسبت به بقیه‌ی مستندات می‌باشند. سایر متون دارای نتایج بهینه‌ای هستند که می‌تواند برای بسیاری از متونی که از سایتهای مختلف خبری استخراج می‌شود، درست کار کند.بیشترین دقت مربوط به دسته‌های ورزشی و پزشکی با دقت های 90‌درصد و 88‌درصد می‌باشد.
**ج)**  کار بعدی مربوط به مقاله ای با موضوع « دسته بندی متون بر اساس قواعد انجمنی » ،تهیه شده توسط سید محمد حسین احمدی می‌باشد که از روش دسته بندی بر مبنای قواعد انجمنی که از روی فرایند کاوش الگوهای مکرر مجموعه داده های آموزشی تولید شده اند، برای دسته بندی متون فارسی استفاه شده است. همچنین از الگوریتم طبقه بندی متن بر اساس قواعد انجمنی  [^Classification Based on Association] و پیکره همشهری فارسی 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](http://ece.ut.ac.ir/dbrg/hamshahri/fadownload.html)
 [19] هادی عبدی قویدل، بهرام وزیر نژاد ، محمدبحرانی ،برچسب زنی موضوعی متون فارسی ، دانشگاه صنعتی شریف
 [20] رده بندی متون ، سینا محمودی، پروژه هوش مصنوعی، 92