इसी तरह के दस्तावेज खोजने के लिए वेक्टर स्पेस मॉडल cosine tf-idf


10

दस लाख से अधिक दस्तावेजों का कोष रखें

दिए गए दस्तावेज़ के लिए वैसा ही उपयोग करना चाहते हैं जैसा कि वेक्टर अंतरिक्ष मॉडल में cosine का उपयोग करते हुए किया जाता है

d1d2/(||d1||||d2||)

इस tf-idf के रूप में लंबे दस्तावेज़ों के प्रति पूर्वाग्रह को रोकने के लिए, सभी tf को संवर्धित आवृत्ति का उपयोग करके सामान्य किया गया है :

tf(t,d)=0.5+0.5f(t,d)max{f(t,d):td}

सभी की पूर्व-गणना करें ||d||
भाजक पहले से गणना की के लिए मान लो
किसी दिए गए के लिए तो d1 से अधिक स्कोर करने के लिए 1 लाख जरूरत d2
Have समानता के लिए 0.6 कोज्या की एक सीमा

मैं एक के लिए देख सकते हैं कि ||d1||की एक काफी संकीर्ण सीमा है ||d2||कोज्या के लिए 0.6
की एक कोज्या के लिए इसी तरह के लिए एक खोज में उदाहरण के लिए 0.6 और एक7.7631 के बाद | | d 2 | | 7.0867 से 8.8339 तक जहांकॉशनकी दहलीज के बाहर 0.6 | | d 2 | | 0.7223 से लेकर 89.3395 तक है||d1||||d2||
||d2||
यह मानक tf दस्तावेज़ के सामान्यीकरण के साथ था
यह एक बहुत देख रहा है जिसके पास कोसाइन 0.6 मैच होने का मौका नहीं है ||d2||

अंत में सवाल:
एक देने के लिए और cosine> = = 0.6 की सीमा का निर्धारण कैसे किया जा सकता है | | d 2 | | एक मौका है? जो | | d 2 | | क्या मैं सुरक्षित रूप से समाप्त कर सकता हूं? ||d1||||2||
||2||

मैं भी में पदों की संख्या पता और d 2 अगर वहाँ अवधि गिनती रेंज।12

वाया प्रयोग
और | | d 2 | | < | | | | / .8 सुरक्षित लगता है, लेकिन उम्मीद है कि सीमा है जो सुरक्षित साबित हो रही है ||2||>.8||1||||2||<||1||/.8

कुछ बहुत ही अनूठे शब्दों के साथ कुछ परीक्षण मामलों को बनाया, कुछ को इतना अनोखा और कुछ को सामान्य। सुनिश्चित करें कि आप सबसे अनूठा शब्द ले सकते हैं और तुलना में उस आवृत्ति को बढ़ा सकते हैं। अंशांक (डॉट उत्पाद) ऊपर जाएगा और इसलिए || तुलना || और एक कोसाइन 1 के बहुत पास मिलेगा।

संबंधित की तरह और सवाल नहीं।
मैं समूहों में समूह दस्तावेज़ों के लिए tf-idf का उपयोग कर रहा हूं। मैं जिस ग्राहक आधार को बेच रहा हूं उसका उपयोग निकटवर्ती समूहों के पास करने के लिए किया जाता है। वहाँ मैं सबसे छोटी अवधि की गिनती के रूप में एक संबंधित दृष्टिकोण ले रहा हूं और 3x तक की गणना के खिलाफ इसका मूल्यांकन कर रहा हूं। तो 10 की एक पद गणना 10 से 30 के बीच लगती है (4-9 में पहले से ही 10 पर उनका शॉट था)। यहाँ मैं एक को याद कर सकते हैं इसे दूसरे में उठाया है। मैं 10% काम कर रहा हूं और सबसे बड़ा अनुपात 1.8 है।

इस विश्लेषण में खामियों की पहचान करें,
AN6U5 द्वारा उठाई बाहर इस विश्लेषण में एक दोष नहीं है के रूप में
यह अब एक कोज्या है अगर दस्तावेज़ भारित पर सामान्यीकृत है
भी d1⋅d2≤d1⋅d1 निष्कर्ष नहीं निकाल सकता और मैथ्यू द्वारा उठाई बाहर के रूप में
मैं कर रहा हूँ अभी भी कुछ के लिए उम्मीद मुझे देना कठिन बाध्य लेकिन लोगों को कि इस सामग्री को पता लगता है मुझे बता रहे हैं कोई एक
मैं नहीं चाहता कि सवाल तो बदलने के लिए सिर्फ इस पर ध्यान न दें चाहते
मैं कुछ विश्लेषण करना होगा और हो सकता है दस्तावेज़ सामान्यीकरण पर एक अलग प्रश्न पोस्ट
के लिए इस प्रश्न का उद्देश्य कच्चे tf पर दस्तावेज़ को सामान्यीकृत किया गया है
क्षमा करें, लेकिन मैं अभी तक अच्छे नहीं हूं कि समीकरण बनाने के लिए कभी भी मार्कअप का उपयोग किया जाता है
तो मेरे अंकन में
? d1 = sqrt (राशि (w1 x w1))
d1 dot d2 = sum (w1 X w2)
मान लें कि d1 छोटा दस्तावेज़ है,
जो सबसे अच्छा d1 डॉट d2 है जिसे हासिल किया जा सकता है, d1 dot d1 है,
यदि d1 की शादी 100 पाऊल 20 से है
और d2 की शादी 100 पाऊल 20 पेटी से है। 1
सामान्यीकृत
d1 से शादी की जाती है 1 पॉल 1/5
डी 2 शादी है 1 पॉल 1/5 पीटर 1/100
स्पष्ट रूप से शादी और पॉल में दोनों दस्तावेजों में एक ही आईडी है
सबसे अच्छा संभव d1 डॉट d2 d1 डॉट d1 है d1 के
लिए अधिकतम संभव मैच d1
cos = d1 डॉट है d1 / || d1 || || d2 ||
चौकोर दोनों तरफ
cos x cos = (d1 dot d1) X (d1 डॉट d1) / ((d1 डॉट d1) X (d2 डॉट d2)) cos X cos = (d1 dot d1) / (d2 dot d2)
वर्ग लेते हैं दोनों पक्ष की जड़
= || d1 || / || d2 ||
है || d2 || कॉस से बंधे नहीं?
अगर मैं सिर्फ उपयोग करता हूँ || d2 || > = cos || d1 || और || डी २ || <= || d1 || / क्योंकि मुझे कम्प्यूटेशनल गति की आवश्यकता है


आपका तर्क जो c o s = द्वारा निर्धारित बाउंड के साथ समाप्त होता है | | | |काम नहीं करता है क्योंकि "सबसे अच्छा d1 डॉट d2 जो प्राप्त किया जा सकता है वह d1 डॉट d1 है" गलत है। जबकि12सीरों=||1||||2||, यह मामला नहीं है1211। वैक्टर के इस विशेष वर्ग के लिए, यह पर्याप्त मामलों में काम कर सकता है कि यह एक सभ्य सन्निकटन है, लेकिन यह स्थापित करने के लिए काफी कठिन होगा कि यह हमेशा मामला हो। 12||1|| ||2||11||1|| ||1||1211
मैथ्यू ग्रेव्स

@MatthewGraves मुझे लगता है कि मैं आपसे सहमत हूं। मेरी विशेषज्ञता नहीं है, लेकिन मैं अभी भी इसे हैक कर रहा हूं।
पपराज़ो

जवाबों:


4

दुर्भाग्य से, गणित यह दिखाने के लिए सरल बनाता है कि आप अपनी लंबाई के आधार पर वैक्टर की कॉस्मिक समानता की तुलना को सख्ती से उचित नहीं ठहरा सकते।

प्रमुख बिंदु यह है कि कॉस्मिक समानता मीट्रिक लंबाई के आधार पर सामान्य हो जाती है, जिससे केवल यूनिट वैक्टर को माना जाता है। मुझे पता है कि यह जरूरी जवाब नहीं है जो आप चाहते थे, लेकिन गणित स्पष्ट रूप से दिखाता है कि कोसाइन समानता मैट्रिक्स वेक्टर लंबाई के लिए अज्ञेय है।

गणित को अधिक विस्तार से देखें:

आप एक cosine समानता वाले मीट्रिक को लागू कर रहे हैं और आवश्यकता है कि मीट्रिक 0.6 से बड़ा हो:

similarity=cos(θ)=AB||A||||B||0.6

लेकिन तल पर स्केलर की लंबाई ऊपर के क्रॉस उत्पादों में वितरित की जा सकती है (वितरण संपत्ति):

AB||A||||B||=A||A||B||B||=A^B^

अब एक और बी वैक्टर कि के रूप में एक ही दिशा में बिंदु हैं एक और बी पर वे लंबाई एक के लिए सामान्यीकृत किया गया है। तो कॉस्मिक समानता मेट्रिक की परिभाषा मूल वैक्टर है, उन्हें एक लंबाई में सामान्य करें, और फिर यूनिट वैक्टर के डॉट उत्पाद को मापें।A^B^AB

वजह:

similarity=cos(θ)=d1d2||d1||||d2||=d1^d2^0.6

केवल वैक्टर के उन्मुखीकरण पर निर्भर करता है और उनकी परिमाण (यानी लंबाई) पर नहीं।

आप जो कर रहे हैं, उसके साथ इस पर पुनर्विचार करें:

रैखिक बीजगणित के परिणाम क्या दिखाते हैं, इसके बावजूद आप अभी भी एक सांख्यिकीय महत्वपूर्ण परिणाम देख रहे हैं। व्यावहारिक रूप से बोलते हुए आप पा सकते हैं कि आंकड़े बताते हैं कि लंबाई प्रतिबंध आपके डेटा के लिए मान्य हैं। उदाहरण के लिए, आप की खोज की जा सकती है कि ट्वीट्स कोज्या समानता कभी नहीं जब टालस्टाय की 'वार एंड पीस' के साथ तुलना में। यदि आपके आंकड़े उपयोग करने के लिए अच्छे लगते हैं | | d 2 | | > .8 | | | | और | | d 2 | | < | | | |0.6||d2||>.8||d1|| तब मैं आपको इसके साथ जाने का सुझाव देता हूं क्योंकि इस प्रकार के चंदवा प्रतिबंध कंप्यूटिंग समय बचाने में बहुत उपयोगी हैं।||d2||<||d1||/.8

आप संभवतः यूक्लिडियन दूरी पर विचार करके दूरी मेट्रिक्स के साथ जो कर रहे हैं उसे आप समेट सकते हैं। जहां कॉस्मिक समानता केवल दो वैक्टरों के बीच के कोण पर आधारित -1 और 1 के बीच का मान लौटाती है, यूक्लिडियन दूरियां उन मानों को लौटाएंगी जो दो वैक्टरों की लंबाई पर निर्भर करती हैं। कुछ अर्थों में, आप यूक्लिडियन दूरी के पहलुओं को कॉस्मिक समानता के साथ जोड़ रहे हैं।

यह आवश्यक रूप से अच्छी समझ में आता है कि सापेक्ष लंबाई एक दूसरे से 25% के भीतर होती है, जिससे यह समूह-द्वारा कैनोपी बनाने के लिए यूक्लिडियन दूरी के एक पहलू को जोड़ती है, जो गणना समय में कटौती करता है, फिर लंबाई अज्ञेय ब्रह्माण्ड समानता का उपयोग किया जा सकता है। अंतिम निर्धारक।

ध्यान दें कि 1 / .8 = 1.25, इसलिए d2> =। 8d1 d2 <= d1 / .8 की तुलना में एक सख्त प्रतिबंध है। मेरा सुझाव है कि d2> = = 75d1 और d2 <= 1.25d1 का उपयोग करें क्योंकि यह सममित है।

उम्मीद है की यह मदद करेगा!


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

@ मैथ्यू ग्रेव्स, सब मैं कह रहा हूं कि कॉशन समानता सदिश लंबाई के लिए अज्ञेय है। वह पूछ रहा है कि वेक्टर की लंबाई में अंतर कैसे परिणामी कोसिनिटी को प्रभावित कर सकता है और जवाब है: वे नहीं कर सकते।
AN6U5

1
अनुभवजन्य सहसंबंध को अनदेखा नहीं किया जा सकता है। केवल सांविधिक होने पर लाश की यादृच्छिकता को खत्म करने का एक तरीका है। रजिस्टर करने के लिए अप वोट के लिए मेरे पास इस साइट पर पर्याप्त प्रतिनिधि नहीं है।
पापाराज़ो

यहाँ मैं सहमत नहीं हूँ। यह लंबाई के आधार पर सामान्य नहीं करता है। यह एकल सबसे सामान्य शब्द पर सामान्य करता है। एक लंबा दस्तावेज़ केवल पतला कर सकता है। मैं यह समायोजित करने के लिए तैयार हूं कि एक सामान्य समर्थन प्राप्त करने के लिए सामान्यीकरण कैसे किया जाता है।
पेपराराज़ो

आपके प्रश्न को संशोधित करने के लिए धन्यवाद। यह बेहतर है कि आप क्या हासिल करने की कोशिश कर रहे हैं। ध्यान दें कि आपका संशोधित सामान्यीकरण वास्तव में इसे एक ब्रह्मांडीय समानता नहीं बनाता है , क्योंकि यह कड़ाई से परिभाषित है। मैं कुछ अतिरिक्त संपादनों का सुझाव दूंगा ताकि इसे बाहर निकाला जा सके। ध्यान रखें और शुभकामना।
AN6U5

3

||मैं||||di||||मैं||

कुछ बीजगणित के माध्यम से काम करने के लिए, मुझे कुछ और शब्द प्रस्तुत करने चाहिए (और कुछ का नाम बदलने के लिए)

1[टी1,टी2,][w1,w2,][1,2,]0.5टीमैं10wi6D1=||d1||

d1एक्स, ऐसा है कि 1+एक्स न्यूनतम (या अधिकतम) है एक्स बाधाओं के अधीन है कि:

एक्स=Σमैंwमैं2(टीमैं+एक्समैं)2

0.6डी1एक्सΣमैंwमैं2टीमैं(टीमैं+एक्समैं) (1)

0.5टीमैं+एक्समैं1

क्योंकि हमने कच्चे tf वजन का उपयोग नहीं किया था एक्स, एक्समैं=0 मैंसमाधान स्थान में है। मैं अधिक जटिल बाधा को भी अनदेखा कर रहा हूं जो कम से कम एक हैमैं+एक्समैं=1, क्योंकि हम उस रैखिक को व्यक्त नहीं कर सकते। हम इसे वैसे ही छोड़ देंगे और आशा करते हैं कि आशावादी उनमें से एक को 1 पर सेट कर रहा है।

सहज रूप से, यह संभव के सेट की तरह लगता है एक्सउत्तल होना चाहिए, लेकिन यहां तक ​​कि अगर हम पहले से ही द्विघात प्रोग्रामिंग के दायरे में हैं । ध्यान दें कि हम कम से कम हल कर सकते हैंएक्स2 कम से कम के बजाय एक्स, चूंकि एक्स>0, लेकिन हम शायद इस पद्धति का उपयोग अधिकतम करने के लिए नहीं कर सकते हैं एक्स (यानी कम से कम -एक्स)। लेकिन शुक्र है कि अगर यह आसानी से हल हो जाएगापीहै सकारात्मक semidefinite । तो क्या हैपी? हमें सही रूप में (1) को फिर से लिखने की जरूरत है, जो दोनों पक्षों को चुकता करके शुरू होता है:

00.36डी12Σमैंwमैं2(टीमैं+एक्समैं)2-Σमैं,जेwमैं4टीमैंटीजे(टीमैं+एक्समैं)(टीजे+एक्सजे)

हम इसे फिर से लिख सकते हैं 0एक्सटीपीएक्स+क्षटीएक्स+आर कहाँ पे पीमैं,जे=0.36डी12-wमैं2टीमैंटीजे अगर मैं=जे तथा -wमैं2टीमैंटीजे अन्यथा।

यह मेरे लिए गैर-स्पष्ट है पी सकारात्मक सकारात्मक होना चाहिए, लेकिन यह किसी भी व्यक्ति के लिए जाँचना आसान होगा 1। यदि हां, तो इसे QP सॉल्वर में पॉप करें और आपको एक कम बाउंड मिलेगाएक्स। यदि नहीं, तो हम परेशानी में हैं।

क्या हम एक व्यावहारिक ऊपरी सीमा भी प्राप्त कर सकते हैं? मुझे यकीन नहीं है। स्पष्ट रूप से कुछ परिमित ऊपरी सीमा है, क्योंकि हम अधिकतम संभव गणना कर सकते हैंएक्स आइडीएफ वेक्टर से wसरलता। लेकिन तथ्य यह है कि न्यूनतम tf वजन 0 के बजाय 0.5 है मेरी प्रतिकूलताओं को फेंक रहा है कि कैसे एक प्रतिकूल बनाने के लिएएक्स अधिकतम के साथ एक्स, और इसलिए सबसे अच्छा तरीका जो मैं लेकर आ रहा हूं वह धीरे-धीरे खत्म होने वाला है, जो वास्तविक वैश्विक अधिकतम नहीं मिल सकता है या हो सकता है लेकिन संभवतः करीब होगा।


मैं सहमत नहीं हूँ || d || के साथ एक दुर्लभ उपाय के रूप में सेवा करने के लिए लगता है। यह सामान्यीकृत है। "मेरी एक छोटी मेम थी" छोटा होगा || "शादी में एक सफेद सा मेमना था"। और "oddxxA oddxxB oddxxC" में छोटा होगा || "oddxxA oddxxB oddxxC oddxxD" की तुलना में लगभग समान अनुपात में। और उन दो तुलनाओं में समान कॉस होगा।
पेपराराज़ो

@ फ़्रीबी, क्या आप उस तुलना के बारे में निश्चित हैं? माना जाता है कि आईडी के लिए 'ए' के ​​लिए 0, 'के लिए 0.5' और 'मैरी' के लिए 1, 'छोटे' और 'व्हाइट' के लिए 1, और 'मेमने' के लिए 2 हैं, मैं "मैरी के लिए थोड़ा मेमने" और 2.55 के लिए 2.4 की गणना करता हूं। "मैरी के पास एक सफेद सा मेमना था", लेकिन "ए मैरी के पास थोड़ा सा मेमना था"। यही है, आदर्श को कम करने का एकमात्र तरीका सबसे लगातार शब्द की आवृत्ति में वृद्धि है, न कि नए शब्दों को जोड़कर। या हम एक ही सूत्र का उपयोग नहीं कर रहे हैं?
मैथ्यू ग्रेव्स

मैं सोच रहा था कि आप भारित (आईडीएफ के साथ) दस्तावेज़ को सामान्य कर सकते हैं न कि कच्ची आवृत्ति। इससे चीजें बदल जाएंगी। यह मुझे भारित पर सामान्य बनाने के लिए अधिक समझ में आता है। महत्वपूर्ण रूप से एक दस्तावेज़ बदल रहा है || सामान बनाने के लिए 'a' सबसे आम शब्द है।
पापाराज़ो

ज़रूर; मैं सिर्फ यह सुनिश्चित करना चाहता हूं कि हम उसी सूत्र के साथ काम कर रहे हैं। मुझे लगता है कि मैं आपसे सहमत हूं कि कच्चे tf * idf के आधार पर सामान्य करने से बेहतर परिणाम प्राप्त होंगे, अर्थात: टी=wटी(0.5+0.5wटी(टी,)एक्स{wटी(टी,):टी}) कहाँ पे wटी=एलजीएन|{डी:टी}|। (कुछ अस्पष्ट लेकिन उम्मीद के बीच स्वीकार्य टक्कर के साथवजन के वेक्टर मैं, तथा उस वेक्टर से जुड़े दस्तावेज़।) मुझे आज रात इस बारे में और सोचना होगा कि क्या इससे बाउंड में सुधार होगा या नहीं (लेकिन इसमें बहुत हद तक बीजगणित शामिल है)।
मैथ्यू ग्रेव्स

0

मैं एक उत्तर देता हूं लेकिन स्पष्ट रूप से मैं बोनस किसी और को दूंगा

मुझे लगता है कि दस्तावेज़ tf सामान्यीकृत होने पर अधिकतम अंश होता है

d1⋅d2 / (|| d1 |||| d2 ||)

मान लें कि d1 में समान या कम शर्तें हैं (या बस d को कम शब्दों में लें)
अधिकतम संभव सामान्यीकृत tf है 1
इसलिए अधिकतम संभव अंश योग (tf1, i * idf, i * 1 * idf, i)

|| d2 || = sum (tf1, i * idf, i * 1 * idf, i) / || d1 || / .6

एक न्यूनतम के रूप में मैं उस पर काम कर रहा हूं, लेकिन स्पष्ट रूप से एक न्यूनतम है।
यदि आप मिलान करने जा रहे हैं तो आप || d ||

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