ফিচার হ্যাশিং বোঝা যাচ্ছে


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) = কে এর অর্থ:

লাইন আইতে, সূচী j সহ শব্দটি k বার প্রদর্শিত হয়।

সুতরাং toসূচক 3. ম্যাপ করা হয় এটা লাইন 1. মিটার (1,3) = সুতরাং 1 ঠিক এক সময় মনে হচ্ছে।

আরও উদাহরণ

  • likesসূচক 2 এ ম্যাপ করা হয় এটি প্রথম লাইনে ঠিক দু'বার প্রদর্শিত হয়। সুতরাং মি (1,2) = 2
  • also সূচক ma এ ম্যাপ করা হয়েছে It এটি লাইন 1 এ প্রদর্শিত হবে না, তবে একবার লাইনে 2 So তাই এম (1,6) = 0 এবং এম (2,6) = 1।

বৈশিষ্ট্যটির হ্যাশিংয়ের প্রসঙ্গে যদিও আমাদের কাছে একটি অভিধান নেই। আমাদের কেবল একটি হ্যাশ ফাংশন রয়েছে। আপনি কি (1) বৈশিষ্ট্যের হ্যাশ মূল্য গণনা এবং (2) হ্যাশ ফাংশন দ্বারা প্রদত্ত সূচকটি প্রতিবার 1 বার যখন আপনি একটি ডাটা পয়েন্ট দেখেন তা বৃদ্ধি করে কি এই অর্থে একই কাজ করে? উদাহরণস্বরূপ, @ ব্যবহারকারী20370 হিসাবে নীচে বলা হয়েছে, আপনি যদি 13 টি বিট সহ আপনার বৈশিষ্ট্যগুলি এনকোড করার সিদ্ধান্ত নেন এবং "পছন্দগুলি" এর হ্যাশ মান 5674 হয়, তবে সূচকটি 5674 কি 1 দ্বারা বাড়বে? এবং আপনি যদি কম বিট ব্যবহার করেন, আপনি কি কেবলমাত্র 74 5674 কে 2 ^ (# বিট) মোড করেন এবং সেই সূচকটি বৃদ্ধি করেন?
বিবেক সুব্রমনিয়ান

1
@ বিবেক সুব্রহ্মণিয়ান হ্যাঁ চ্যালেঞ্জ হ'ল সংঘর্ষ ছাড়াই হ্যাশ-ফাংশন সন্ধান করা (অর্থাত্ বিভিন্ন শব্দ, তবে একই হ্যাশ মান), বা সংঘর্ষের ঘটনা খুব কমই ঘটে। এটি কম্পিউটার বিজ্ঞানের গবেষণার একটি ক্ষেত্র ( en.wikedia.org/wiki/ Perfect_hash_function )।
স্টিফেন

4

স্টিফেন যেহেতু উল্লেখ করেছেন, উদাহরণ ম্যাট্রিক্স একটি পাঠ্যে কোনও শব্দ প্রদর্শিত হওয়ার বারটিকে এনকোড করে। ম্যাট্রিক্সে এনকোডিংয়ের অবস্থান শব্দটি (ম্যাট্রিক্সের কলামের অবস্থান) এবং পাঠ্য (ম্যাট্রিক্সের সারি অবস্থান) দ্বারা দেওয়া হয়।

এখন, হ্যাশিং ট্রিক একইভাবে কাজ করে, যদিও আপনাকে প্রথমে প্রতিটি শব্দের কলামের অবস্থান সম্বলিত অভিধানটি সংজ্ঞায়িত করতে হবে না।

আসলে এটি হ্যাশিং ফাংশন যা আপনাকে সম্ভাব্য কলাম পজিশনের পরিসর দেয় (হ্যাশিং ফাংশন আপনাকে ন্যূনতম এবং সর্বাধিক মান প্রদান করবে) এবং আপনি ম্যাট্রিক্সে যে শব্দটি এনকোড করতে চান তার সঠিক অবস্থান। সুতরাং উদাহরণস্বরূপ, আসুন কল্পনা করুন যে "লাইকস" শব্দটি আমাদের হ্যাশিং ফাংশন দ্বারা 5674 নম্বরে নিয়ে গেছে, তারপরে 5674 কলামে "পছন্দগুলি" শব্দের সাথে সম্পর্কিত এনকোডিং থাকবে।

এই জাতীয় ফ্যাশনে আপনাকে পাঠ্য বিশ্লেষণের আগে অভিধান তৈরি করতে হবে না। আপনি যদি নিজের পাঠ্য ম্যাট্রিক্স হিসাবে একটি স্পারস ম্যাট্রিক্স ব্যবহার করেন তবে আপনাকে ম্যাট্রিক্সের আকারটি ঠিক কী হবে তা নির্ধারণ করতে হবে না। কেবল টেক্সটটি স্ক্যান করে, ফ্লাইয়ে, আপনি শব্দগুলি হ্যাশিং ফাংশন দ্বারা কলাম পজিশনে রূপান্তরিত করবেন এবং আপনার পাঠ্য ম্যাট্রিক্সটি ডেটা (ফ্রিকোয়েন্সি, অর্থাত) পপুলেটেড হবে সেই অনুসারে আপনি কোন দলিলটি ক্রমান্বয়ে বিশ্লেষণ করছেন (সারি অবস্থান) to

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.