फीचर हैशिंग को समझना


10

विकिपीडिया सुविधा हैशिंग का वर्णन करते समय निम्नलिखित उदाहरण प्रदान करता है ; लेकिन मैपिंग परिभाषित शब्दकोश के अनुरूप नहीं लगती है

उदाहरण के लिए, शब्दकोश के अनुसार toपरिवर्तित किया जाना चाहिए 3, लेकिन यह 1इसके बजाय एन्कोडेड है ।

क्या वर्णन में कोई त्रुटि है? फीचर हैशिंग कैसे काम करता है?

ग्रंथ:

John likes to watch movies. Mary likes too.
John also likes to watch football games.

शब्दकोश का उपयोग करके परिवर्तित किया जा सकता है

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, 
"football": 7, "games": 8, "Mary": 9, "too": 10}

मैट्रिक्स के लिए

[[1 2 1 1 1 0 0 0 1 1]
 [1 1 1 1 0 1 1 1 0 0]]

जवाबों:


10

मैट्रिक्स का निर्माण निम्न तरीके से किया जाता है:

  • पंक्तियों लाइनों का प्रतिनिधित्व करते हैं
  • कॉलम सुविधाओं का प्रतिनिधित्व करते हैं

और हर प्रविष्टि मैट्रिक्स (i, j) = k का अर्थ है:

पंक्ति i में, इंडेक्स j वाला शब्द k बार दिखाई देता है।

तो toसूचकांक 3 पर मैप किया जाता है। यह पंक्ति 1 में ठीक एक बार दिखाई देता है। इसलिए m (1,3) = 1।

और ज्यादा उदाहरण

  • likesis indexed to index 2. यह पहली पंक्ति में ठीक दो बार दिखाई देता है। तो एम (1,2) = 2
  • also is indexed to index 6. यह पंक्ति 1 में नहीं दिखता है, लेकिन पंक्ति 2 में एक समय है। इसलिए m (1,6) = 0 और m (2,6) = 1।

फीचर हैशिंग के संदर्भ में, हमारे पास कोई शब्दकोष नहीं है। हमारे पास केवल एक हैश फ़ंक्शन है। क्या यह इसी अर्थ में काम करता है कि आप (1) फीचर के हैश मान की गणना करते हैं और (2) हैश फ़ंक्शन द्वारा दिए गए इंडेक्स को हर बार जब आप डेटा बिंदु देखते हैं? उदाहरण के लिए, जैसा कि @ user20370 नीचे कहा गया है, यदि आप अपनी सुविधाओं को 13 बिट्स के साथ एन्कोड करने का निर्णय लेते हैं और "पसंद" का हैश मान 5674 है, तो क्या सूचकांक 5674 1 से बढ़ जाता है? और यदि आप कम बिट्स का उपयोग करते हैं, तो क्या आप केवल 2 ^ (# बिट्स) द्वारा 5674 को मॉडिफाई करते हैं और उस इंडेक्स को बढ़ाते हैं?
विवेक सुब्रमण्यन

1
@VivekSubramanian हाँ। चुनौती टक्करों के बिना हैश-फ़ंक्शन को खोजने की है (यानी अलग-अलग शब्द, लेकिन समान हैश मूल्य), या शायद ही कभी होने वाली टक्करों के साथ। यह कंप्यूटर विज्ञान ( en.wikipedia.org/wiki/Perfect_hash_function ) में अनुसंधान का एक क्षेत्र है ।
स्टीफेन

4

जैसा कि स्टीफ़न ने कहा है, उदाहरण मैट्रिक्स एक पाठ में किसी शब्द के प्रकट होने की संख्या को बताता है। मैट्रिक्स में एन्कोडिंग की स्थिति शब्द (मैट्रिक्स पर कॉलम स्थिति) और पाठ (मैट्रिक्स पर पंक्ति स्थिति) द्वारा दी गई है।

अब, हैशिंग ट्रिक उसी तरह से काम करती है, हालांकि आपको शुरू में प्रत्येक शब्द के लिए कॉलम की स्थिति वाले शब्दकोश को परिभाषित करने की आवश्यकता नहीं है।

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

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

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