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

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

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

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

مقدمه

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

کارهای مرتبط

میتوانیم برای ذخیره داده ها از inverted index استفاده کنیم و به کلمات وزن خاصی نسبت دهیم تا با مقایسه میانگین وزن هر پرسش موجود در سیستم ،با وزن پرسش مطرح شده ،بهترین پاسخ را مرتبط با سوال انجام گرفته ارائه دهیم.
در هر فایل متنی تعدادی کلمه وجود دارد که کمکی در جستجوی فایل ها نمیکند مانند حروف اضافه StopWords .
تعداد حروف اضافه در فایل ها زیاد است و وزن حروف بالا میرود و ما از این حروف صرف نظر میکنیم . در این پروژه ما برای هر ترم t، لیستی از نام فایل ها را ذخیره میکنیم . همچنین در پروژه با استفاده از کلاس PorterStemmer ریشه کلمات بدست آمده است.
برای محاسبه وزن هر کلمه از تعداد تکرار آن کلمه log گرفته و با یک جمع میشود تا وزن کلماتی که یک بار آمده اند صفر نشود.
بنده میخواهم از روشی استفاده کنم به طوری که در هر سند ابتدا میانگین تمام وزن ها را محاسبه کرده(X) سپس نسبت وزن کلمه در سند به وزن کوری را محاسبه کنم(W) سپس مقدار انحراف معیار را از فرمول زیر بدست می آورم .

فرمول

این کار را برای تمامی اسناد انجام میدهیم حال سندی که کوچکترین مقدار را دارد بهترین سند است.

مثال :

به شکل زیر که از مقاله ای که ضمیمه شده است استخراج کرده ام توجه کنید.(inverted index)


به طور کلی 3 روش متداول برای استخراج کلمات کلیدی وجود دارد :

  • روش TF-IDF : در این روش میزان تکرار یک کلمه در یک مستند را در مقابل تعداد تکرا آن در مجموعه کلیه مستندات در نظر می گیریم


    برای پیاده سازی این روش ابتدا یک مجموعه اسناد را در نظر می گیریم. به ازای تمام کلماتی که در پیکره وجود دارد ، بررسی می کنیم که هر کلمه در چه تعداد از سندها تکرار شده است و آن را ذخیره می کنیم .
    سپس یک سند به عنوان ورودی دریافت می شود. هدف یافتن کلمات کلیدیِ سند دریافت شده است.
    برای این منظور ابتدا بررسی می کنیم که هر یک از کلمات سند ورودی ، چند بار در همان سند استفاده شده است.
    سپس به ازای تمام کلمات سند ورودی بررسی می کنیم که هر کلمه در چه تعداد از اسناد پیکره اصلی وجود دارد.
    بعد از طی کردن این مراحل به حساب کردن وزن کلمات طبق فرمول گفته شده در بالا می پردازیم :
    تعیین وزن کلمات با استفاده از دو معیار term frequency و inverse document frequency انجام می شود که به شرح زیر محاسبه خواهند شد :

    # روش‌ها و ارزیابی نتایج
    میتوانیم از دو روش cos و انحراف معیار(روش پیشنهادی) استفاده کنیم و نتایج را مقایسه کنیم.و همچنین میتوان داده ها را بر اساس روش single link یا complete link خوشه بندی کنیم و بر این اساس بهترین پاسخ را استخراج کنیم.
    # کارهای آینده
    تمام کارهایی که میخواهم انجام دهم بر اساس فصول 5و6و7و8و9 کتاب Introduction To Information Retrieval میباشد.
    #خوشه بندی
    خوشه بندی را میتوان به عنوان مهمترین مسئله در یادگیری بدون نظارت در نظر گرفت خوشه بندی با یافتن یک ساختار درون یک مجموعه از داده های بدون برچسب در گیر است.خوشه به مجموعه ای از داده ها گفته میشود که به هم [شباهت]داشته باشند.
    در خوشه بندی سعی میشود داده ها به خوشه هایی تقسیم شود که شباهت بین داده های هر خوشه حداکثر باشد و شباهت بین داده های خوشه های متفاوت حداقل باشد.
    خوشه بندی

    # مراجع

  • Jeon, Jiwoon. Searching question and answer archives. ProQuest, 2007.

  • Xue, Xiaobing, Jiwoon Jeon, and W. Bruce Croft. "Retrieval models for question and answer archives." Proceedings of the 31st annual international ACM SIGIR conference on Research and development in information retrieval. ACM, 2008.

  • Rodrigo, Álvaro, et al. "A Question Answering System based on Information Retrieval and Validation." CLEF (Notebook Papers/LABs/Workshops). 2010.

لینک‌های مفید

Introduction To Information Retrieval

محسن ایمانی

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

همچنین قرار بود که مقالاتی را هم در این زمینه به مراجع اضافه کنید که این کار را هم انجام ندادید.

تایید شده

به نام خدا

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

خوب بود اگر راه حلهای دیگری که برای این سوال موجود است مطرح می شد.

بهتر بود مراجع بیشتری معرفی شود .

خوب بود اگر پیرامون مفاهیم استفاده شده مثل inverted index توضیحی داده میشد.

موفق باشید

تایید شده

بسم الله الرحمن الرحیم

اگر بیشتر توضیح داده شود ، برای کسی که هیچ اطلاعی از این پروژه ندارد ، بهتر می باشد. برای مثال توضیح داده نشده که وزن کوئری چگونه محاسبه خواهد شد.

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

یک انتقادی که وجود دارد مربوط به قسمتی است که فرمول انحراف معیار نوشته شده است که به نظرم مرتب نمی باشد و به طور صحیح دیده نمی شود.
نمره ای که بنده به این پروژه می دهم سه و نیم است !

محسن ایمانی

از شما انتظار می‌رفت که در این فاز سایر کارهای مرتبط و روش‌های بازیابی پاسخ را نیز بررسی نمایید که تنها به همان یک روش معرفی شده قبلی اکتفا نمودید.

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

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