TF-IDF एक नज़र में

luhn1958 में, हंस पीटर लूहन ने अपने लेख “साहित्य सारांशों का स्वचालित निर्माण” में अनुमान लगाया था कि “एक लेख में शब्दों की घटना की आवृत्ति शब्द के महत्व का एक उपयोगी माप प्रदान करती है” जो अब तक जानकारी पुनर्प्राप्ति विज्ञान में सबसे महत्वपूर्ण बातों में से एक है और यह सभी प्रसिद्ध बड़े और छोटे सर्च इंजनों में उपयोग किया जाता है, गूगल और याहू से लेकर कस्टम सर्च समाधानों जैसे कि इलास्टिकसर्च और मैन्टिकोर सर्च तक।

लूहन के अनुमान का महत्व भुलाया नहीं जा सकता और सूचना पुनर्प्राप्ति के क्षेत्र में कई आगे के वैज्ञानिक अध्ययन लूहन के अनुमान पर आधारित थे, हालाँकि उनमें से सभी ने इसका उल्लेख नहीं किया क्योंकि शायद समय के साथ यह स्वयं सिद्ध हो गया।
इस लेख में मैं यह दिखाने की कोशिश करूंगा कि ‘टर्म आवृत्ति’ के लिए खड़ा TF और इसके समकक्ष ‘इनवर्स डॉक्यूमेंट फ्रीक्वेंसी’ के लिए खड़ा IDF आपको जो ढूंढ रहे हैं, उसे खोजने में कैसे मदद करता है।
आइए 5 दस्तावेज़ लें:

1. मेरा कुत्ता मेरे सभी पालतू जानवरों को पसंद नहीं करता, लेकिन मैं और मेरी पत्नी उन्हें सभी को पसंद करते हैं। एक कुत्ता बिल्ली प्रेमी नहीं हो सकता
2. बिल्लियाँ और कुत्ते एक-दूस को पसंद नहीं करते, लेकिन मेरी बिल्ली कुत्तों को पसंद करती है
3. एक कुत्ते को ले जाना दिन की एक अच्छी शुरुआत है

4. सभी बिल्लियाँ चलना पसंद नहीं करतीं, लेकिन कुछ बिल्लियाँ करती हैं
5. सभी कुत्ते चलना पसंद करते हैं, लेकिन मेरा पसंद नहीं करता। यह इतना अजीब है

और विभिन्न प्रश्नों के लिए उन्हें रैंक देने की कोशिश करें (यानि सबसे प्रासंगिक और सबसे कम प्रासंगिक और क्रम ज्ञात करना)।

वजन = 1 यदि शब्द होता है और 0 अन्यथा

प्रश्न: ‘पसंद’
नोट करें कि हमें नहीं पता कि ‘पसंद’ का क्या अर्थ है: ‘A पसंद B की तरह’ या ‘मुझे कुछ पसंद है’। तो हम दस्तावेज़ों को रैंक देने के लिए क्या कर सकते हैं?
जो पहली बात दिमाग में आती है वह यह है कि यदि किसी दस्तावेज़ में शब्द ‘पसंद’ बिल्कुल नहीं है तो यह शायद कम प्रासंगिक है। इस प्रकार क्रम हो सकता है:

1. मेरा कुत्ता सभी पालतू जानवरों को <b>पसंद</b> नहीं करता, लेकिन मैं और मेरी पत्नी उन्हें सभी को पसंद करते हैं। एक कुत्ता बिल्ली प्रेमी नहीं हो सकता
2. बिल्लियाँ और कुत्ते एक-दूसरे को <b>पसंद</b> नहीं करते, लेकिन मेरी बिल्ली <b>पसंद</b> करती है कुत्ते

4. सभी बिल्लियाँ <b>पसंद</b> नहीं करतीं चलना, लेकिन कुछ बिल्लियाँ करती हैं
5. सभी कुत्ते <b>पसंद</b> करते हैं चलना लेकिन मेरा <b>पसंद</b> नहीं करता। यह <b>पसंद</b> इतना अजीब है
3. एक कुत्ते को ले जाना दिन की एक अच्छी शुरुआत है

हमने दस्तावेज़ #3 को अंत में डाल दिया क्योंकि इसमें ‘पसंद’ नहीं है। जहां तक बाकी का सवाल है, हमने उनके क्रम को नहीं बदला क्योंकि उनमें सभी ‘पसंद’ हैं। क्या इस प्रकार की रैंकिंग की गुणवत्ता पर्याप्त अच्छी है? मुझे ऐसा नहीं लगता क्योंकि पहले 4 दस्तावेजों में 2 (#5 और #2) अधिक प्रासंगिक प्रतीत होते हैं क्योंकि वे प्रश्न के शब्द ‘पसंद’ से संबंधित अधिक तथ्य प्रदान करते हैं (याद रखें हमें नहीं पता कि ‘पसंद’ का अर्थ वास्तव में क्या है), लेकिन वे शीर्ष 2 नहीं हैं। तो हम इसके बारे में क्या कर सकते हैं?

वजन = टर्म फ्रीक्वेंसी

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

5. सभी कुत्ते <b>पसंद</b> करते हैं चलना, लेकिन मेरा <b>पसंद</b> नहीं करता। यह <b>पसंद</b> इतना अजीब है | tf = 3
2. बिल्लियाँ और कुत्ते एक-दूसरे को <b>पसंद</b> नहीं करते, लेकिन मेरी बिल्ली <b>पसंद</b> करती है कुत्ते | tf = 2

1. मेरा कुत्ता सभी पालतू जानवरों को <b>पसंद</b> नहीं करता, लेकिन मैं और मेरी पत्नी उन्हें सभी को पसंद करते हैं। एक कुत्ता बिल्ली प्रेमी नहीं हो सकता | tf = 1
4. सभी बिल्लियाँ <b>पसंद</b> नहीं करतीं चलना, लेकिन कुछ बिल्लियाँ करती हैं | tf = 1
3. एक कुत्ते को ले जाना दिन की एक अच्छी शुरुआत है | tf = 0

यह समस्या को हल करता है, अब दस्तावेज़ #5 और #2 सबसे ऊपर हैं।
लेकिन अब हम एक अन्य प्रश्न - ‘मेरा दिन’ पर कोशिश करते हैं:

1. <b>मेरा</b> कुत्ता सभी <b>मेरे</b> पालतू जानवरों को पसंद नहीं करता, लेकिन मैं और <b>मेरी</b> पत्नी उन्हें सभी को पसंद करते हैं। एक कुत्ता बिल्ली प्रेमी नहीं हो सकता | tf = 3
2. बिल्लियाँ और कुत्ते एक-दूसरे को पसंद नहीं करते, लेकिन <b>मेरी</b> बिल्ली कुत्तों को पसंद करती है | tf = 1
3. एक कुत्ते को ले जाना दिन की एक अच्छी शुरुआत है | tf = 1

4. सभी बिल्लियाँ पसंद नहीं करतीं चलना, लेकिन कुछ बिल्लियाँ करती हैं | tf = 0
5. सभी कुत्ते पसंद करते हैं चलना, लेकिन मेरा पसंद नहीं करता। यह इतना अजीब है | tf = 0

दस्तावेज़ #1 और #2 को सबसे उच्च स्थान मिलता है, लेकिन क्या यह सही है? वे ‘दिन’ के बारे में कुछ नहीं कहते, केवल ‘मेरे’ के बारे में: मेरे पालतू जानवर, मेरी पत्नी, मेरी बिल्ली, जो प्रश्न के लिए महत्वपूर्ण हो सकता है, लेकिन शायद नहीं। दस्तावेज़ #3 को निम्न स्थान मिलता है जबकि वह सबसे प्रासंगिक प्रतीत होता है। हम इसे कैसे ऊंचा रखें?
आइए सोचते हैं कि ‘मेरे’ की तुलना में ‘दिन’ और अन्य शब्दों में इतना क्या अंतर है। ‘दिन’ प्रतीत होता है कि यह बहुत अधिक विशिष्ट है जबकि ‘मेरे’ लगभग किसी भी चीज़ पर लागू हो सकता है और दस्तावेज़ों में ‘मेरे’ की अपेक्षा ‘दिन’ और अन्य अधिक विशिष्ट शब्दों की घटनाएँ बहुत कम हैं। यहां ‘डॉक्यूमेंट फ्रीक्वेंसी’ आता है - फॉर्मूला का एक और महत्वपूर्ण भाग और टर्म वेटिंग का एक दूसरा कोने का पत्थर।
ksj1972 में, कैरन स्पार्क जोन्स, एक ब्रिटिश कंप्यूटर वैज्ञानिक, ने अपनी एक अकादमिक पत्र में कहा: “दस्तावेज़ विवरण की पूर्णता उस संख्या की होती है जिसमें यह अन्य शब्दों का समावेश करती है, और एक शब्द की विशिष्टता उस संख्या की होती है जिसमें यह संबंधित होता है”।

हमने पहले भाग को पहले ही कवर कर लिया है, आइए अब देखें कि दस्तावेज़ का क्रम कैसे बदलता है यदि हम दूसरे को गिनते हैं।

वजन = टर्म फ्रीक्वेंसी * (दस्तावेज़ों की संख्या / डॉक्यूमेंट फ्रीक्वेंसी)

प्रश्न: ‘मेरा दिन’।
‘मेरे’ 2 दस्तावेज़ों में है, ‘दिन’ - केवल एक में, इसलिए ‘मेरे’ का IDF (इनवर्स डॉक्यूमेंट फ्रीक्वेंसी) 5 (कुल दस्तावेज़ों की संख्या) / 2 = 2.5, ‘दिन’ - 5/1 = 5।


1. <b>मेरा</b> कुत्ता सभी <b>मेरे</b> पालतू जानवरों को पसंद नहीं करता, लेकिन मैं और <b>मेरी</b> पत्नी उन्हें सभी को पसंद करते हैं। एक कुत्ता बिल्ली प्रेमी नहीं हो सकता 
वजन = 3(tf of 'मेरे') * 2.5(idf of 'मेरे') + 0(tf of 'दिन') * 5 (इसका idf) = 7.5
3. एक कुत्ते को ले जाना दिन की एक अच्छी शुरुआत है 
वजन = 0 * 2.5 + 1 * 5 = 5
2. बिल्लियाँ और कुत्ते एक-दूसरे को पसंद नहीं करते, लेकिन <b>मेरी</b> बिल्ली कुत्तों को पसंद करती है 
वजन = 2.5

4. सभी बिल्लियाँ पसंद नहीं करतीं चलना, लेकिन कुछ बिल्लियाँ करती हैं 
वजन = 0
5. सभी कुत्ते पसंद करते हैं चलना, लेकिन मेरा पसंद नहीं करता। यह इतना अजीब है 
वजन = 0

With the help of IDF we could put the relevant document ‘Walking a dog is a good start of the day’ one position higher, but it’s still not in the very top. What’s the reason? That’s because ‘my’ occurs way too often which outweighs the importance of the ‘day’’s IDF. How can we solve that? We need something which will lower the contribution of the TF. Over years there have been many variants of TF normalization suggested and researched from just log(TF) to so called ’term frequency saturation curve’. For simplicity let’s just take the logarithmic variant.

Weight = log(1+TF) * (N/df)

logThe whole idea of the logarithmic smoothing comparing to a linear function is that the higher the argument the slower it increases, i.e. it grows fast for smaller x and slower for higher x. ‘1+x’ in the function is required to not have 0 in the argument for term frequency = 0 since log(0) is undefined while log(0+1) is 0 which is exactly what we need for tf=0.
Let’s see if it solves the problem:
Query: ‘my day’.

3. Walking a dog is a good start of the <b>day</b>
Weight = log(1+0) * 2,5 + log(1+1) * 5 = 0 + 3,47 = 3,47
1. <b>My</b> dog doesn't like all <b>my</b> pets, but me and <b>my</b> wife do love them all. A dog cannot be a cat lover
Weight = log(1+3) * 2,5 + log(1+0) * 5 = 3,47 + 0 = 3,47

2. Cats and dogs do not like each other, but <b>my</b> cat does like dogs
Weight = 1,73
4. Not all cats like walking, but some cats do
Weight = 0
5. All dogs like walking, but mine doesn't like. It's like so weird
Weight = 0

As we can see the most relevant document is finally on the 1st position, but it shares it with another document with the same weight 3,47. Is it right or wrong? It’s a hard question since we never know for sure what is relevant for the requester. There is a chance that by asking ‘my day’ he or she would consider relevant the second document too since it gives a number of facts for ‘my’ while the 1st document says only about one fact for ‘day’. So it well may be quit fair they get the same weight.
And because this uncertainty it’s probably why it’s typical in search engines to return not a single result, but some number: 10 or 20 or something, so we just let the user make the final decision himself.

Conclusion

In this article I showed in a nutshell the evolution of thinking over TF-IDF weighting formula which proves it works and each its component is important.

There’s a continuation of the TF-IDF called BM25 which is based on the previously mentioned ’term frequency saturation curve’ in particular and just much more probabilistic approaches to defining the weighting fomula (remember again we never know what is really relevant, hence the probabilistic approach). In general it still remains TF-IDF (+ normalization by document length), but its roots are completely different. It will be covered in another article. Stay with us and subscribe to our newsletters to not miss that.

मैंटीकोर सर्च इंस्टॉल करें

मैंटीकोर सर्च इंस्टॉल करें