استخراج عبارات کلیدی

تغییرات پروژه از تاریخ 1396/08/29 تا تاریخ 1396/10/07
استخراج کلمات کلیدی به معنای استخراج مجموعه‌ای از کلمات از متن یک سند می‌باشد که بتواند شاخصی برای محتوای سند مربوطه باشد. در واقع وقتی شما در یک موتور جستجو به دنبال یک صفحه خاص و یا متن خاصی در اینترنت می‌گردید. استخراج کلمات کلیدی را برای استفاده در موتور جستجو به صورت دستی انجام می‌دهید. هدف از این پژوهش انجام این کار به صورت خودکار می‌باشد. از کاربردهای استخراج خودکار کلمات کلیدی از متن می‌تواند به بازیابی اطلاعات، کشف تقلب، پیشنهاد برچسب و کلمه کلیدی برای مقالات، موتورهای جستجو و رده‌بندی متن اشاره نمود.

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

# مقدمه
امروزه با افزایش حجم اطلاعات و داده‌های متنی، تحقیقات بسیاری در زمینه مدل کردن اطلاعات و استخراج اطلاعات مفید [1] از آن‌ها به عمل آمده است چون کاربران نیازمند ابزارهایی بودند تا با استفاده از آن‌ها به راحتی بتوانند اطلاعات مفید را از داده‌های موجود استخراج و استفاده نمایند. استخراج خودکار عبارتهای کلیدی، یک متن بلند را به خلاصه‌ای کوتاه تبدیل می‌کند و میتوان بر اساس آن متن را طبقه بندی موضوعی (دسته بندی) کرد و متن های مشابه را پیشنهاد داد. 
خلاصه سازی متون صفحات وب یکی از موضوعات مهم در حوزه پردازش متن است و امروزه با توجه به اینکه در دنیای وب تعداد و حجم اطلاعات به بی نهایت میل می کند، یافتن کلمات کلیدی مطالب و طبقه بندی آن ها اصلی غیر قابل اجتناب است. 
موتور های جستجوی وب که استفاده از آن ها برای یافتن نتایج مطلوب مورد استفاده قرار میگیرند بر اساس کلمات کلیدی متن را ارزیابی و طبقه بندی میکنند و با توجه به اینکه رقابت بر سر نتایج برتر موتور های جستجو بسیار زیاد است و هر کسی سعی دارد جزو نتایج برتر باشد تا بهتر و بیشتر خود و یا هدف خود را به مخاطبان برساند که به این امر اصطلاحا سئو (Search Engine optimization) [2] گفته میشود

> پاورقی

[1] https://en.wikipedia.org/wiki/Keyword_extraction
[2] https://en.wikipedia.org/wiki/Search_engine_optimization


# کارهای مرتبط
یکی از نمونه سایت هایی که محتوا را آنالیز و کلمات کلیدی پیشنهاد می کنند به پیوست [1] آمده است که البته در مورد متون فارسی با مشکلاتی واجه است.
در تصویر زیر نمونه ای از استخراج کلمات کلیدی را میبینید که بر اساس پراکندگی کلمات، پراکندگی کلمات موجود در عنوان متن و تکرار آن ها در متن مجموعه از کلمات کلیدی را پیشنهاد می دهد.
![استخراج کلمات کلیدی](https://boute.s3.amazonaws.com/253-1.png)
اما الگوریتمی که قصد دارم پیاده سازی کنمدر واقع شبیه سازی الگوریتم بررسی محتوای موتور جستجوی گوگل می باشد که در مقاله [2] مواردی از آن اشاره شده است. پروژه نهایی، پروژه ای تحت وب خواهد بود که که با وارد کردن متن در ویرایشگر متن [3] مجموعه از کلمات کلیدی  وبرچسب ها [4] را پیشنهاد میدهند. 


>پاورقی 

[1]http://www.cortical.io/extract-keywords.html
[2]https://goo.gl/aQ2LN1
[3]Text Editor
[4] Tag

# آزمایش‌ها

# کارهای آینده

# مراجع

+ Kim, Su Nam, et al. "Automatic keyphrase extraction from scientific articles." Language Resources and Evaluation: 1-20.

# پیوندهای مفید

+ [پردازش زبان فارسی در پایتون](http://www.sobhe.ir/hazm)
+ [پیکره فارسی همشهری](http://ece.ut.ac.ir/dbrg/hamshahri/fadownload.html)
+ [مسابقه استخراج خودکار کلمات کلیدی در زبان انگلیسی](http://www.kaggle.com/c/facebook-recruiting-iii-keyword-extraction)
+ [راهنمایی برای استخراج ویژگی از متن زبان طبیعی](http://pyevolve.sourceforge.net/wordpress/?p=1589)
+ [تحلیل سیستم یافتن خودکار کلمات کلیدی متون زبان فارسی، پروژه پیکره زبان فارسی، شورای عالی اطلاع رسانی](http://bayanbox.ir/id/8867093588243508954?download[استخراج اطلاعات مفید](https://en.wikipedia.org/wiki/Keyword_extraction) از آن‌ها به عمل آمده است چون کاربران نیازمند ابزارهایی بودند تا با استفاده از آن‌ها به راحتی بتوانند اطلاعات مفید را از داده‌های موجود استخراج و استفاده نمایند. استخراج خودکار عبارتهای کلیدی، یک متن بلند را به خلاصه‌ای کوتاه تبدیل می‌کند و میتوان بر اساس آن متن را طبقه بندی موضوعی (دسته بندی) کرد و متن های مشابه را پیشنهاد داد. 
خلاصه سازی متون صفحات وب یکی از موضوعات مهم در حوزه پردازش متن است و امروزه با توجه به اینکه در دنیای وب تعداد و حجم اطلاعات به بی نهایت میل می کند، یافتن کلمات کلیدی مطالب و طبقه بندی آن ها اصلی غیر قابل اجتناب است. 
موتور های جستجوی وب که استفاده از آن ها برای یافتن نتایج مطلوب مورد استفاده قرار میگیرند بر اساس کلمات کلیدی متن را ارزیابی و طبقه بندی میکنند و با توجه به اینکه رقابت بر سر نتایج برتر موتور های جستجو بسیار زیاد است و هر کسی سعی دارد جزو نتایج برتر باشد تا بهتر و بیشتر خود و یا هدف خود را به مخاطبان برساند که به این امر اصطلاحا سئو ([Search Engine optimization](https://en.wikipedia.org/wiki/Search_engine_optimization)) گفته میشود.
با استخراج کلمات کلیدی از محتوای متنی می توان دسته بندی(خوشه بندی) آن متن را به صورت اتوماتیک انجام داد تا معیار مناسبی جهت ارزیابی و طبقه بندی متن باشد.
با توجه به اینکه عمل استخراج کلمات و عبارات کلیدی از متون  متون فارسی، بسیار وقت گیر بوده و هزینه زیادی در بردارد، و ابزار های بسیار کمی در این رابطه وجود دارند و  از طرفی اهمیت این موضوع نمیتوان غافل شد، در این پروژه سعی داریم تا بهترین راه کار را به زبان شیرین فارسی را پیاده سازی  نماییم.


----------


# کارهای مرتبط
یکی از نمونه سایت هایی که محتوا را آنالیز و کلمات کلیدی پیشنهاد می کنند به پیوست [6] آمده است که البته در مورد متون فارسی با مشکلاتی مواجه است.
در تصویر زیر نمونه ای از استخراج کلمات کلیدی را میبینید که بر اساس پراکندگی کلمات، پراکندگی کلمات موجود در عنوان متن و تکرار آن ها در متن مجموعه از کلمات کلیدی را پیشنهاد می دهد.
![استخراج کلمات کلیدی](https://boute.s3.amazonaws.com/253-1.png)
اما الگوریتمی که قصد داریم پیاده سازی نماییم در واقع شبیه سازی الگوریتم بررسی محتوای موتور جستجوی گوگل می باشد که در مقاله [7] مواردی از آن اشاره شده است.
# بررسی الگوریتم TF*IDF
به طور کلی در الگوریتم یاد شده از تکرار کلمات  و نحوه پراکندگی آن در متن و نیز پراکندگی کلمه کلیدی مفروض در مستندات قبلی اقدام به انتخاب کلمات کلیدی می نماییم. بدیهی است هر چه تعداد مستندات قبلی ما (به عبارت دیگر بایگانی ما) کامل تر باشد، به نتایج مطلوب تری دست خواهیم یافت.
مراحل انجام شده در این الگوریتم عبارتند از:

1. دریافت متن و حذف کلمات ایست (مانند حروف اضافه و ...)
2. جایگزینی الفبای فارسی با الفبای عربی (مانند تبدیل ی به ی)
3. بررسی تعداد تکرار کلمه در متن و محاسبه وزن کلمه در متن داده شده
4. بررسی مستندات قبلی 
5. محاسبه  مقدار TF*IDF با توجه به رابطه ذیل:!
[رابطه محاسبه TF*IDF](https://boute.s3.amazonaws.com/253-Scan1.jpg)
6.بررسی رده بندی متن با توجه به کلمات کلیدی هر دسته بندی و میزان تکرار و تراکم آن در متن

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

# کارهای آینده
پردازش زبان فارسی دارای چالش هایی ست که ذیل به آنها اشاره کرده ایم:

1. بررسی و یافتن ضمیر های منفصل و متصل و یافتن مرجع ضمیر و جایگزینی ضمیر با مرجع ضمیر
2. مشکل معنایی با جایگزینی کلمات با ریشه های آن ها
3. مشکل در متون عامیانه
4. دشواری در تعیین اجزای جمله (فعل و فاعل و ...)
5. تشخیص اسم از صفت
موارد فوق در فاز بعدی تا حد زیادی سعی میشود بهبود داده شود و تعداد مستندات بیشتر شده تا نتایج پیش بینی شده به واقعیت نزدیک باشند. و برنامه تحت وب پس از اعمال تغییرات نهایی به پروژه اضافه خواهد شد.

# مراجع

+ Kim, Su Nam, et al. "Automatic keyphrase extraction from scientific articles." Language Resources and Evaluation: 1-20.

# پیوندهای مفید

1. [پردازش زبان فارسی در پایتون](http://www.sobhe.ir/hazm)
2. [پیکره فارسی همشهری](http://ece.ut.ac.ir/dbrg/hamshahri/fadownload.html)
3. [مسابقه استخراج خودکار کلمات کلیدی در زبان انگلیسی](http://www.kaggle.com/c/facebook-recruiting-iii-keyword-extraction)
4. [راهنمایی برای استخراج ویژگی از متن زبان طبیعی](http://pyevolve.sourceforge.net/wordpress/?p=1589)
5. [تحلیل سیستم یافتن خودکار کلمات کلیدی متون زبان فارسی، پروژه پیکره زبان فارسی، شورای عالی اطلاع رسانی](http://bayanbox.ir/id/8867093588243508954?download)
6. 
http://www.cortical.io/extract-keywords.html
7. 
https://goo.gl/aQ2LN1
8.[لینک دریافت پروژه](https://goo.gl/2qakbr)(بزودی در گیت هاب قرار داده خواهد شد)