2010-02-02 10 views
6

हमारी बड़ी साइटों में से एक में एक अनुभाग है जहां उपयोगकर्ता वेबसाइट के मालिक को प्रश्न भेज सकते हैं, जो उनके कर्मचारियों द्वारा व्यक्तिगत रूप से मूल्यांकन किया जाता है। जब एक ही प्रश्न अक्सर पॉप अप होता है तो वे इस विशेष प्रश्न को फ़ैक में जोड़ सकते हैं।'संबंधित प्रश्न' इंजन कैसे बनाएं?

उन्हें एक दिन के दर्जनों समान प्रश्न प्राप्त करने से रोकने के लिए हम इस साइट पर 'संबंधित प्रश्न' (स्टैक ओवरफ़्लो) जैसी सुविधा प्रदान करना चाहते हैं।

इस तरह की सुविधा बनाने के लिए किन तरीके हैं? मुझे पता है कि मुझे किसी भी तरह से सवाल का मूल्यांकन करना चाहिए और इसे faq में प्रश्नों की तुलना करना चाहिए, लेकिन यह तुलना कैसे काम करती है? क्या कीवर्ड निकाले गए हैं और यदि ऐसा है तो कैसे?

इस साइट को एलएएमपी स्टैक पर बनाया गया है इसका उल्लेख करने लायक हो सकता है, इस प्रकार ये तकनीकें उपलब्ध हैं।

धन्यवाद!

+0

के संभावित डुप्लिकेट पर किसी कीवर्ड को निकालने वेब सेवा है [Stackoverflow के संबंधित प्रश्न] (http://stackoverflow.com/questions/393505/stackoverflows-related-questions) –

उत्तर

3

मुझे नहीं पता कि स्टैक ओवरफ़्लो कैसे काम करता है, लेकिन मुझे लगता है कि यह संबंधित प्रश्नों को ढूंढने के लिए टैग का उपयोग करता है। उदाहरण के लिए, इस प्रश्न पर शीर्ष कुछ संबंधित प्रश्नों में टैग recommendation-engine है। मुझे लगता है कि दुर्लभ टैग पर मैचों सामान्य टैग पर मैचों से अधिक के लिए गिनती है।

आप term frequency–inverse document frequency पर भी देखना चाहेंगे।

+2

और शायद चौराहे के आकार टैग के सेट के बीच। – jensgram

0

आप वर्तनी परीक्षण, जहां कोष मौजूदा पूछे जाने वाले प्रश्न प्रविष्टियों का खिताब/पाठ का उपयोग कर सकते हैं:

How do you implement a "Did you mean"?

4

तो आप स्क्रैच से अपने आप को कुछ इस तरह बनाना चाहते थे आप उपयोग करेंगे कुछ टीएफ/आईडीएफ कहा जाता है: टर्म फ्रीक्वेंसी/उलटा दस्तावेज़ आवृत्ति। इसका मतलब है, इसे बहुत सरल बनाने के लिए, आपको उस क्वेरी में शब्द मिलते हैं जो पूरी तरह से कॉर्पस में असामान्य हैं और उन शब्दों को ढूंढने वाले दस्तावेज़ ढूंढते हैं।

दूसरे शब्दों में, यदि कोई व्यक्ति "मैं हाथी खरीदना चाहता हूं" शब्दों के साथ एक प्रश्न में प्रवेश करता हूं, तो क्वेरी में शब्दों के शब्दों में, शब्द "हाथी" शायद आपके कॉर्पस में कम से कम आम शब्द है। "खरीदें" शायद अगले है। तो आप दस्तावेज़ों (आपके मामले में, पिछले प्रश्नों) को रैंक करते हैं कि उनमें "हाथी" शब्द कितना होता है और फिर उनमें "खरीद" शब्द कितना होता है। "आई", "टू" और "ए" शब्द शायद स्टॉप-लिस्ट में हैं, इसलिए आप उन्हें पूरी तरह से अनदेखा करते हैं। आप प्रत्येक दस्तावेज़ (पिछली क्वेरी, आपके मामले में) रैंक करते हैं कि कितने मिलान वाले शब्द हैं (व्यस्त दस्तावेज़ आवृत्ति के अनुसार भारोत्तोलन - यानी असामान्य शब्दों के लिए उच्च वजन) और शीर्ष कुछ दिखाएं।

मैंने oversimplified किया है, और आपको इसे सही करने के लिए इसे पढ़ने की आवश्यकता होगी, लेकिन यह वास्तव में सरल तरीके से लागू करने के लिए बहुत जटिल नहीं है।

http://en.wikipedia.org/wiki/Tf%E2%80%93idf

1

आप एक दीप ढेर में काम कर रहे हैं को देखते हुए, तो आप MySQL's Fulltext search functions का अच्छा इस्तेमाल करने के लिए सक्षम होना चाहिए: विकिपीडिया पृष्ठ शुरू करने के लिए एक अच्छी जगह हो सकती है। जो मुझे विश्वास है कि टीएफ-आईडीएफ प्रिंसिपल पर काम करते हैं, और आपको 'संबंधित प्रश्न' बनाने के लिए इसे बहुत आसान बनाना चाहिए।

1

एक महान O'Reilly पुस्तक - Programming Collective Intelligence है - जिसमें समूह की खोज, सिफारिशें और अन्य समान विषयों को शामिल किया गया है। स्मृति से उदाहरण पर्ल में हैं, लेकिन मुझे एक PHP पृष्ठभूमि से आने में समझना आसान लगता है और कुछ घंटों के भीतर आप जो कुछ भी कर रहे हैं उसके समान कुछ बनाया था।

याहू http://developer.yahoo.com/search/content/V1/termExtraction.html

+0

नमूने मैं ओरेली के पूर्वावलोकन * पी.सी.आई * के पूर्वावलोकन में देख रहा हूं * पायथन में हैं। – isomorphismes

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^