আমি একটি বানান-পরীক্ষক লেখার চেষ্টা করছি যা একটি দুর্দান্ত বৃহত অভিধানের সাথে কাজ করা উচিত। কোন শব্দটি ভুল বানান শব্দের নিকটবর্তী হয় তা নির্ধারণ করতে ডামেরাউ-লেভেনস্টাইন দূরত্ব ব্যবহার করে আমার অভিধানের ডেটা ইনডেক্স করার জন্য আমি একটি কার্যকর উপায় চাই ।
আমি এমন একটি ডেটা স্ট্রাকচারের সন্ধান করছি যা আমাকে মহাকাশ জটিলতা এবং রানটাইম জটিলতার মধ্যে সেরা সমঝোতা দেয়।
ইন্টারনেটে আমি যা পেয়েছি তার উপর ভিত্তি করে, কী ধরণের ডেটা স্ট্রাকচার ব্যবহার করতে হবে সে সম্পর্কে আমার কয়েকটি লিড রয়েছে:
trie
এটি আমার প্রথম চিন্তা এবং বাস্তবায়ন করা বেশ সহজ দেখায় এবং দ্রুত অনুসন্ধান / সন্নিবেশ সরবরাহ করা উচিত। দামেরাউ-লেভেনস্টাইন ব্যবহার করে আনুমানিক অনুসন্ধানের বিষয়টি এখানেও কার্যকর করা উচিত be স্পেস জটিলতার ক্ষেত্রে এটি খুব কার্যকরী বলে মনে হচ্ছে না কারণ আপনার সম্ভবত পয়েন্টার স্টোরেজ সহ প্রচুর ওভারহেড রয়েছে।
প্যাট্রিসিয়া ট্রে
এটি নিয়মিত ট্রির চেয়ে কম জায়গা ব্যয় করে বলে মনে হচ্ছে আপনি মূলত পয়েন্টার সংরক্ষণের ব্যয়টি এড়িয়ে যাচ্ছেন, তবে আমার কাছে খুব বড় অভিধানের ক্ষেত্রে ডেটা বিভাজন সম্পর্কে আমি কিছুটা উদ্বিগ্ন।
প্রত্যয় গাছ
আমি এটি সম্পর্কে নিশ্চিত নই, মনে হয় কিছু লোক পাঠ্য খনির ক্ষেত্রে এটি দরকারী বলে মনে করে তবে আমি স্পষ্টভাবে নিশ্চিত নই যে এটি একটি বানান পরীক্ষকের জন্য পারফরম্যান্সের ক্ষেত্রে কী দেবে।
টার্নারি অনুসন্ধান ট্রি
এগুলি দেখতে সুন্দর লাগছে এবং জটিলতার দিক থেকে প্যাট্রিসিয়া ট্রাইসের কাছাকাছি হওয়া উচিত (আরও ভাল?) তবে আমি প্যাট্রিশিয়া ট্রাইজের চেয়ে আরও খারাপ হতে পারলে খণ্ডিতকরণ সম্পর্কে নিশ্চিত নই।
ফাটল গাছ
এটি হাইব্রিডের মতো বলে মনে হচ্ছে এবং চেষ্টা এবং এর মতো এর থেকে কী কী লাভ হবে তা আমি নিশ্চিত নই, তবে আমি বেশ কয়েকবার পড়েছি যে এটি পাঠ্য খনির জন্য খুব দক্ষ।
এই প্রসঙ্গে কোন ডেটা স্ট্রাকচারটি ব্যবহার করা সবচেয়ে ভাল এবং অন্যগুলির তুলনায় এটি কী আরও ভাল করে তোলে সে সম্পর্কে আমি কিছু প্রতিক্রিয়া পেতে চাই। যদি আমি এমন কিছু ডেটা স্ট্রাকচার মিস করছি যা বানান-পরীক্ষকের পক্ষে আরও বেশি উপযুক্ত হবে তবে আমিও খুব আগ্রহী।