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

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

۱. مقدمه

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


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

یکی از نمونه سایت هایی که محتوا را آنالیز و کلمات کلیدی پیشنهاد می کنند به پیوست [6] آمده است که البته در مورد متون فارسی با مشکلاتی مواجه است.
در تصویر زیر نمونه ای از استخراج کلمات کلیدی را میبینید که بر اساس پراکندگی کلمات، پراکندگی کلمات موجود در عنوان متن و تکرار آن ها در متن مجموعه از کلمات کلیدی را پیشنهاد می دهد.

استخراج کلمات کلیدی

اما الگوریتمی که قصد داریم پیاده سازی نماییم در واقع شبیه سازی الگوریتم بررسی محتوای موتور جستجوی گوگل می باشد که در مقاله [7] مواردی از آن اشاره شده است.

۳. بررسی الگوریتم TF*IDF

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

  1. دریافت متن و حذف کلمات ایست (مانند حروف اضافه و ...)

  2. جایگزینی الفبای فارسی با الفبای عربی (مانند تبدیل ی به ی)

  3. بررسی تعداد تکرار کلمه در متن و محاسبه وزن کلمه در متن داده شده

  4. بررسی مستندات قبلی

  5. محاسبه مقدار TFIDF با توجه به رابطه ذیل:!
    [رابطه محاسبه 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. پردازش زبان فارسی در پایتون

  2. پیکره فارسی همشهری

  3. مسابقه استخراج خودکار کلمات کلیدی در زبان انگلیسی

  4. راهنمایی برای استخراج ویژگی از متن زبان طبیعی

  5. تحلیل سیستم یافتن خودکار کلمات کلیدی متون زبان فارسی، پروژه پیکره زبان فارسی، شورای عالی اطلاع رسانی

  6. http://www.cortical.io/extract-keywords.html

  7. https://goo.gl/aQ2LN1
    8.لینک دریافت پروژه(بزودی در گیت هاب قرار داده خواهد شد)

تایید شده

سلام.
شما مطالعه خوبی بر مساله‌‌ای که انتخاب کرده‌اید داشتید،مساله را شفاف مطرح کردید ولی بهتر بود که اولا از منابع جدیدتری استفاده کنید و دوم این‌که مراحل روش‌های جدیدتری که انجام شده است را بررسی کنید؛ اگر نگاه کنید در منبعتان سال به صورت مشخص ذکر نشده و به صورت 1-20 آمده است. بهتر بود تا علاوه بر بیان روش های دیگر آن ها را باهم مقایسه میکردید تا وقتی خواننده پروژه شما را میخواند در نهایت بداند که کدام روش برای حل این مساله پیشنهاد میشود وبهتر است و روش ها از نظر چه فاکتور هایی نسبت به هم ضعف یا قوت دارند واینکه استفاده از کدام یک از روش ها مفیدتر خواهد بود.در هر متنی که مینویسید اگر جایی از متن،برداشتی از مقاله یا متنی بوده است ویا مستقیما ترجمه ونقل قول عبارات است باید همان جا به آن مطلب ارجاع دهید وباید قسمت مراجع را با دقت بیشتری تکمیل میکردید.بهتر بود که پروژه خود را در سایت گیت هاب در این مرحله قرار میدادید و بهتر بود در توضیحات پروژه و یا در قسمت readme گیت هاب کد پیاده سازی شده را توضیح میدادید این کار باعث میشود که خواننده با کد و نحوه دقیق کار آن آشنا شود.کد خود را هم کامنت گذاری میکردید تا قابل فهم باشد وخروجی کد خود را بهتر بود توضیح میدادید و برنامه را اجرا میکردید واز خروجی ونتایج به دست آمده از کد خود،خواننده متن را مطلع میساختید.بهتر بود داده های ورودی به کد خود را هم برای اجرا معین میکردید وبهتر است نمونه‌ای از کلمات کلیدی استخراج شده از یک متن مشخص را بگذارید تا به صورت شهودی خروجی سیستم قابل مشاهده و ارزیابی کیفی باشد.اگر میخواهید از متن پیکره همشهری به عنوان داده آزمایشی استفاده کنید، برای خواندنش میتوانید از توابع هضم استفاده کنید. هم چنین میتوانید به جای پیاده سازی روال استخراج TF-IDF از متن، از کتابخانه های آماده ای مثل sklearn.feature_extraction.text.TfidfTransformer استفاده کنید.بهتر بود در قسمت کار مرتبط برای روش های پیشنهادی مثال هایی بزنید تا موضوع واضح تر بشود وعکس گذاشته شده در این قسمت را توضیح بیشتری دهید تا برای خواننده ی پروژه ی شما درک این مطلب ملموس تر باشد وبهتر بود نتایج مقایسه ای را نشان میدادید.امیدوارم پیشنهادات بنده به بهبود پروژه شما کمک کند.

تایید شده

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

محمد عبدوس

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