2011-05-15 8 views
5

मैं एक पुस्तकालय या एक एल्गोरिथ्म लगाना चाहते हैं एक वेबपेज, जहां वेबपेज कीवर्ड का एक समूह होने के रूप में परिभाषित किया गया है के निकटतम कश्मीर पड़ोसियों की पहचान करने के लिए (इसलिए मैं अपने आप को कोड लिखने)। मैंने पहले से ही वह हिस्सा किया है जहां मैं कीवर्ड निकालता हूं।कीवर्ड आधारित निकटतम पड़ोसी एल्गोरिथ्म या पुस्तकालय

यह पर्याप्त बहुत अच्छा, बस अच्छा होने की जरूरत नहीं है।

किसी को भी, जहां शुरू करने के लिए एक समाधान सुझाव दे सकते हैं, या। मैंने अतीत में यूरी लाइफशीट्स द्वारा व्याख्यान के माध्यम से देखा है, लेकिन यदि संभव हो तो मैं कुछ तैयार करने की उम्मीद कर रहा हूं।

जावा पुस्तकालयों को प्राथमिकता दी गई।

+0

क्या आप स्थान मैप कर रहे हैं, या आप एक एल्गोरिदम चाहते हैं जो अलग-अलग पृष्ठों को उनके कीवर्ड के आधार पर ही संबंधित करता है? – fasseg

+0

आप वेबसाइट नोड्स का भारित अप्रत्यक्ष ग्राफ बना सकते हैं, और किनारे के वजन "निकटता" का प्रतिनिधित्व करते हैं। जैसे प्रत्येक कीवर्ड दो साइटों में आम है, उनके किनारे वजन में वृद्धि हो सकती है। जावा में बहुत सारे ग्राफ libs हैं जिनका आप उपयोग कर सकते हैं। – fasseg

+0

@smegbrains, हाँ मुझे लगता है कि मैंने यही किया है। मैंने कीवर्ड के जोड़े के चौराहे की गणना की है (जो मुझे लगता है कि आप 'एज चौड़ाई' कहलाते हैं उसके बराबर है) – Ankur

उत्तर

2

जैसा कि आपने कहा, आप पहले से ही एक पृष्ठ से निकाले गए कीवर्ड हैं। मुझे लगता है कि आप शब्दों के वेक्टर द्वारा प्रत्येक दस्तावेज़/पृष्ठ का प्रतिनिधित्व करते हैं। document term-frequency मैट्रिक्स की तरह कुछ।

मुझे लगता है कि एक पेज के निकटतम पड़ोसी आदर्श समान सामग्री के साथ एक पृष्ठ है। तो आप उन दस्तावेज़ों को ढूंढना चाहते हैं जहां प्रत्येक शब्द की सापेक्ष आवृत्ति उस व्यक्ति के समान होती है जिसे आप खोज रहे हैं। तो पहले प्रत्येक पंक्ति में डॉक्टर-अवधि मैट्रिक्स WRT को सामान्यीकृत करें; यानी% tage घटना से घटना गणना को प्रतिस्थापित करें।

इसके बाद आप इन वैक्टर का प्रतिनिधित्व करती 2 दस्तावेज़ों के बीच कुछ दूरी आवंटित करने के लिए किया है। आप सामान्य Euclidean distance या Manhattan Distance का उपयोग कर सकते हैं। हालांकि टेक्स्ट दस्तावेज़ के लिए समानता माप जो आमतौर पर सबसे अच्छा काम करता है Cosine Similarity है। अपनी समस्या के अनुरूप जो भी दूरी या समानता फ़ंक्शन का उपयोग करें (निकटतम पड़ोसी के लिए याद रखें, आप दूरी को कम करना चाहते हैं, लेकिन समानता को अधिकतम करें)।

एक बार जब आपके पास वेक्टर और दूरी की दूरी हो, तो Nearest neighbour या K-Nearest neighbour एल्गोरिदम चलाएं।

+0

धन्यवाद, आप सही हैं कि प्रत्येक पृष्ठ में कीवर्ड के वेक्टर (आकार 6 - सुविधा के लिए) हैं। मैं बस प्रत्येक जोड़ी के लिए कीवर्ड के सेट का चौराहे लेगा और यह समानता का एक सरल और गंदे उपाय देगा। – Ankur

+0

यदि यह एक शौक/गृहकार्य है, तो वह उपाय ठीक होगा। लेकिन अगर आप कुछ एमएल काम कर रहे हैं, तो आपको कुछ और कठोर और समय परीक्षण विधियों का उपयोग करने की आवश्यकता है। – BiGYaN