का प्रभावी क्लस्टरिंग मेरा विषय समानता और पाठ (समूह) का क्लस्टरिंग है। संक्षेप में: मैं एकत्रित ग्रंथों को एक साथ क्लस्टर करना चाहता हूं और उन्हें अंत में अर्थपूर्ण क्लस्टर में दिखना चाहिए। ऐसा करने के लिए, अब तक मेरा दृष्टिकोण निम्नानुसार है, मेरी समस्या क्लस्टरिंग में है। वर्तमान सॉफ्टवेयर PHP में लिखा है।समानता मैट्रिक्स
1) समानता: मैं प्रत्येक दस्तावेज़ को "बैग के शब्दों" के रूप में मानता हूं और शब्दों को वैक्टर में परिवर्तित करता हूं। मैं का उपयोग
- फिल्टरिंग (केवल "असली" शब्द)
- tokenization (शब्दों में विभाजित वाक्य)
- उत्पन्न (अपने आधार फार्म के लिए शब्द कम करने, पोर्टर के स्टेमर)
- छंटाई (साथ शब्दों के कटौती बहुत अधिक & कम आवृत्ति)
आयामी कमी के तरीकों के रूप में। । उसके बाद, मैं कोज्या समानता उपयोग कर रहा हूँ (सुझाव/वेब and here पर विभिन्न साइटों पर वर्णित है
तो परिणाम है इस तरह की एक समानता मैट्रिक्स:
A B C D E
A 0 30 51 75 80
B X 0 21 55 70
C X X 0 25 10
D X X X 0 15
E X X X X 0
एक ... ई मेरी ग्रंथों कर रहे हैं और संख्या प्रतिशत में समानता है; उच्च, जितना अधिक ग्रंथ हैं। क्योंकि सिम (ए, बी) == सिम (बी, ए) मैट्रिक्स का केवल आधा भरा हुआ है। इसलिए टेक्स्ट ए के टेक्स्ट की समानता डी 71% है।
मैं अब इस मैट्रिक्स से क्लस्टर को एएफआई अज्ञात (!) उत्पन्न करना चाहता हूं। क्लस्टर को समान वस्तुओं का प्रतिनिधित्व करना चाहिए (एक निश्चित स्टॉप तक पी मानदंड) एक साथ।
मैं एक बुनियादी कार्यान्वयन अपने आप को, जो (एक निश्चित समानता सीमा के रूप में 60%) इस तरह मूल रूप से था
foreach article
get similar entries where sim > 60
foreach similar entry
check if one of the entries already has a cluster number
if no: assign new cluster number to all similar entries
if yes: use that number
यह (किसी भी तरह) काम करने की कोशिश की, लेकिन सब अच्छा नहीं था और परिणाम अक्सर थे राक्षस-समूहों। तो, मैं इसे फिर से करना चाहता हूं और पहले से ही सभी प्रकार के क्लस्टरिंग एल्गोरिदम में एक नज़र डालना चाहता हूं, लेकिन मुझे अभी भी यकीन नहीं है कि कौन सा सर्वश्रेष्ठ काम करेगा। मुझे लगता है कि यह एक एग्ग्लोमेमेरेटिव एल्गोरिदम होना चाहिए, क्योंकि ग्रंथों की प्रत्येक जोड़ी शुरुआत में क्लस्टर के रूप में देखी जा सकती है। लेकिन अभी भी प्रश्न हैं कि स्टॉप मानदंड क्या है और यदि एल्गोरिदम को मौजूदा समूहों को विभाजित और/या विलय करना चाहिए।
क्षमा करें अगर कुछ सामान मूल लगता है, लेकिन मैं इस क्षेत्र में अपेक्षाकृत नया हूं। सहायता के लिए धन्यवाद।
क्या आपको कोई अच्छा जवाब मिला? यह मुझे भी स्पष्ट नहीं है कि क्लस्टरिंग में कितने आयाम काम करना चाहिए ... – Jim