मैं वर्तमान में Apache Lucene पर आधारित एक छोटा सा इन-हाउस सर्च इंजन बना रहा हूं। इसका उद्देश्य सरल है - कुछ कीवर्ड के आधार पर, यह हमारी कंपनी के भीतर आंतरिक रूप से लिखे गए कुछ लेखों का सुझाव देगा। मैं बेस मैट्रिक के रूप में एक काफी मानक TF-IDF स्कोरिंग का उपयोग कर रहा हूं और शीर्ष पर अपना स्कोरिंग तंत्र बनाया है। ये सभी कुछ कोने के मामलों को छोड़कर उत्कृष्ट काम करते प्रतीत होते हैं जहाँ रैंकिंग गड़बड़ लगती है।
इसलिए मैं जो करने की योजना बना रहा हूं, वह खोज परिणामों के पेज में एक छोटा / प्रासंगिक नहीं लिंक जोड़ना है ताकि उपयोगकर्ता उन लोगों में से एक पर क्लिक कर सकें, जो इस नतीजे पर निर्भर करते हैं कि क्या पहली बार परिणाम को शामिल किया जाना चाहिए था।
मेरा विचार
- इन रेलेवेंट / नॉट रेलेवेंट को लेबल्स के रूप में समझें और एक प्रशिक्षण डेटा बनाएं।
- इस डेटा का उपयोग किसी क्लासिफायर (जैसे SVM) को प्रशिक्षित करने के लिए करें
- इस मॉडल को खोज इंजन में शामिल करें अर्थात, हर नया परिणाम क्लासिफायरियर से होकर गुजरेगा और इस पर एक लेबल लगाया जाएगा कि यह प्रासंगिक है या नहीं।
यह दृष्टिकोण मुझे सहज लगता है लेकिन यह सुनिश्चित नहीं है कि यह व्यवहार में काम करेगा या नहीं। मेरे दो विशिष्ट प्रश्न हैं:
- मुझे कौन सी सभी सुविधाएँ निकालनी चाहिए?
- क्या मशीन सीखने के घटक को खोज इंजन में एकीकृत करने का एक बेहतर तरीका है? मेरा अंतिम लक्ष्य दोनों व्यावसायिक तर्क के साथ-साथ उपयोगकर्ता प्रतिक्रिया के आधार पर रैंकिंग फ़ंक्शन को "सीखना" है।