بازیابی پاسخ

تغییرات پروژه از تاریخ 1392/12/24 تا تاریخ 1393/02/06
در دنیای وب با سایت‌های بسیار زیادی در زمینه‌های مختلف مواجه هستیم که تنها به مسئله پرسش و پاسخ می‌پردازند. در واقع این سایت‌ها دو کار مهم را انجام می دهند. اولا سوال‌هایی را که کاربران در آن‌ها مطرح می‌کنند را به کسانی که ممکن است بتوانند جواب خوبی به آن بدهند نشان می‌دهند. و دوم این که به کاربران این اجازه را می‌دهند که در آرشیو بسیار بزرگ پرسش و پاسخ‌های این سایت جستجو کنند تا اگر پرسش مد نظر آن‌ها قبلا توسط یک کاربر دیگر پرسیده شده، از تجربه پرسش و پاسخ آن کاربر استفاده کنند. از نمونه‌های بسیار موفق این نوع سایت‌ها [stack overflow](http://stackoverflow.com) می‌باشد.

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

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

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



# روش‌ها و ارزیابی نتایج
میتوانیم از دو روش 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
+ [پردازش زبان فارسی در پایتون](http://sobhe.ir/hazm/)
+ [Question-Answer dataset](http://www.ark.cs.cmu.edu/QA-data/)