मापने दस्तावेज़ समानता


21

क्लस्टर (पाठ) दस्तावेजों के लिए आपको दस्तावेजों के जोड़े के बीच समानता को मापने का एक तरीका चाहिए।

दो विकल्प हैं:

  1. कॉशन समानता के रूप में टर्म वैक्टर के दस्तावेजों की तुलना करें - और शब्दों के लिए भार के रूप में TF / IDF।

  2. F-divergence जैसे Kullback-Leibler divergence का उपयोग करके प्रत्येक दस्तावेज़ संभाव्यता वितरण की तुलना करें

क्या किसी एक विधि को दूसरे के लिए पसंद करने का कोई सहज कारण है (100 शब्दों के औसत दस्तावेज़ आकार को मानते हुए)?

जवाबों:


23

पाठ दस्तावेज़ों के लिए, फ़ीचर वैक्टर बहुत उच्च आयामी और किसी भी मानक प्रतिनिधित्व (शब्द या TF-IDF आदि) के तहत विरल हो सकता है। इस तरह के प्रतिनिधित्व के तहत सीधे दूरी को मापना विश्वसनीय नहीं हो सकता है क्योंकि यह ज्ञात तथ्य है कि बहुत अधिक आयामों में, किसी भी दो बिंदुओं के बीच की दूरी समान दिखना शुरू हो जाती है। इससे निपटने का एक तरीका यह है कि पीसीए या एलएसए ( लेटेंट सिमेंटिक एनालिसिस ; जिसे लेंटेंट सिमेंटिक इंडेक्सिंग के रूप में भी जाना जाता है ) का उपयोग करके डेटा की गतिशीलता को कम किया जाए और फिर नई जगह की दूरियों को मापा जाए। पीसीए पर एलएसए जैसी किसी चीज़ का उपयोग करना फायदेमंद है क्योंकि यह "आयामी अवधारणाओं" के संदर्भ में एक सार्थक आयाम दे सकता है, इसके अलावा एक कम आयामी स्थान में दूरी को मापता है।

प्रायिकता के वितरण के आधार पर दस्तावेजों की तुलना आमतौर पर प्रत्येक दस्तावेज़ के विषय वितरण ( लेटेंट डिरिचलेट आवंटन की तरह कुछ का उपयोग करके ) की जाती है, और फिर दस्तावेज़ों के जोड़े के विषय वितरण के बीच कुछ प्रकार के विचलन (जैसे, केएल विचलन) की गणना की जाती है। एक तरह से, यह वास्तव में पहले एलएसए करने और फिर वैक्टर (कोसाइन समानता के बजाय) के बीच केएल-विचलन का उपयोग करके एलएसए अंतरिक्ष में दूरी को मापने के समान है।

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

साथ ही संबंधित थ्रेड यहां देखें


धन्यवाद। क्या एलडीए को आपको विषयों को जानने की आवश्यकता है? हमारे मामले में हम नहीं जानते हैं कि प्रत्येक दस्तावेज़ किस विषय का है और हम क्लस्टरिंग (EM- जी-मीन्स या GAAC) करने के लिए समानता के उपाय का उपयोग कर रहे हैं
Joel

एलएसए के लिए @ ebony1 अच्छा संदर्भ है, मैं एक ऐसी ही जवाब कुछ समय पहले में किए गए stats.stackexchange.com/questions/369/...
CHL

1
@Joel: नहीं, LDA यह नहीं मानता है कि आप पहले से प्रत्येक दस्तावेज़ के लिए विषय जानते हैं। BTW, सिर्फ स्पष्ट होने के लिए, LDA प्रत्येक दस्तावेज को विषयों के मिश्रण के रूप में प्रस्तुत करता है, न कि केवल एक विषय द्वारा। इसलिए प्रत्येक विषय दस्तावेजों में कुछ अंश में योगदान देगा (और अलग-अलग अंशों का योग 1 होगा)। मूल रूप से, LDA मानता है कि दस्तावेज़ में प्रत्येक शब्द किसी न किसी विषय से उत्पन्न होता है।
आबनूस १

@ebony - धन्यवाद! सवाल को दोहराते हुए और खुद को दोहराते हुए, क्या एलडीए को आपके विचारशील विषयों की संख्या जानने की आवश्यकता है?
जोएल

हाँ। लेकिन एलडीए (एचडीपी-एलडीए) के वेरिएंट हैं जिन्हें विषयों की संख्या निर्दिष्ट करने की आवश्यकता नहीं है। इस पेपर को देखें: cse.buffalo.edu/facademy/mbeal/papers/hdp.pdf
ebony1

0

आप इस ऑनलाइन सेवा को cosine दस्तावेज़ समानता http://www.scurtu.it/documentSimilarity.html के लिए आज़माना चाह सकते हैं

import urllib,urllib2
import json
API_URL="http://www.scurtu.it/apis/documentSimilarity"
inputDict={}
inputDict['doc1']='Document with some text'
inputDict['doc2']='Other document with some text'
params = urllib.urlencode(inputDict)    
f = urllib2.urlopen(API_URL, params)
response= f.read()
responseObject=json.loads(response)  
print responseObject

2
कृपया अधिक जानकारी प्रदान करें।
शीआन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.