ধরুন, আমাদের দুটি তালিকা দেওয়া হয়েছে; 'বাক্যাংশ' যেটিতে কয়েকটি নির্বাচিত বাক্যাংশ এবং 'বাক্য' রয়েছে যাতে বেশ কয়েকটি বাক্য থাকে যা অন্য তালিকার বাক্যাংশগুলি থাকতে পারে বা নাও থাকতে পারে। প্রথম তালিকার বিভিন্ন বাক্যাংশগুলি দ্বিতীয় তালিকায় উপস্থিত হয়েছে কিনা তা আমাদের খুঁজে বের করতে হবে এবং দ্বিতীয় তালিকায় তাদের উপস্থিতির উপর ভিত্তি করে প্রথম তালিকার বাক্যাংশগুলিকে সাজাতে হবে। আমরা আউটপুট হিসাবে সাজানো তালিকা 'বাক্যাংশ' ফেরত দিই।
সুতরাং, যদি ইনপুটটি বাক্যাংশের মতো হয় =['শক্তিশালী', 'টেকসই', 'দক্ষ'], বাক্য =['পণ্যটি টেকসই এবং কার্যকর', 'শক্তিশালী এবং টেকসই', 'এটি দক্ষ', 'এটি পছন্দ করে' কারণ এটি দক্ষ'], তাহলে আউটপুট হবে ['দক্ষ', 'টেকসই', 'শক্তিশালী']
'দক্ষ' বাক্যাংশটি 0, 2 এবং 4 বাক্যে প্রদর্শিত হয়। এটির সবচেয়ে বেশি উপস্থিতি রয়েছে, তাই এটি আউটপুটের শুরুতে। বাক্যাংশ 'টেকসই' এবং 'শক্তিশালী' যথাক্রমে 0 এবং 1 এবং 1 বাক্যে উপস্থিত হয়। সুতরাং, এই বাক্যাংশগুলি আউটপুটে পরবর্তী অবস্থানগুলি অর্জন করে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- cnt :=একটি নতুন মানচিত্র
- বাক্যাংশের প্রতিটি বৈশিষ্ট্যের জন্য, করুন
- cnt[feature] :=0
- বাক্যে প্রতিটি প্রতিক্রিয়ার জন্য, করুন
- p :=একটি নতুন তালিকা যাতে একটি প্রতিক্রিয়ার শব্দ থাকে
- s :=p থেকে একটি নতুন সেট
- s এর প্রতিটি i এর জন্য, করুন
- যদি আমি cnt-এ উপস্থিত থাকি, তাহলে
- cnt[i] :=cnt[i] + 1
- যদি আমি cnt-এ উপস্থিত থাকি, তাহলে
- res :=cnt-এ প্রতি k-এর জন্য জোড়া (k, cnt[k]) সমন্বিত একটি নতুন তালিকা
- গণনার উপর ভিত্তি করে তালিকাটি সাজান k
- গণনা মান k অন্তর্ভুক্ত না করেই তালিকার রেজাল্ট ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(phrases, sentences): cnt = {} for feature in phrases: cnt[feature] = 0 for response in sentences: p = response.split() s = set(p) for i in s: if i in cnt: cnt[i] += 1 res = [[k, cnt[k]] for k in cnt] res.sort(key = lambda x:(-x[1], phrases.index(x[0]))) return [i[0] for i in res] print(solve(['strong', 'durable', 'efficient'], ['the product is durable and efficient', 'strong and durable', 'it is efficient', 'like it because it is efficient']))
ইনপুট
['strong', 'durable', 'efficient'], ['the product is durable and efficient', 'strong and durable', 'it is efficient', 'like it because it is efficient']
আউটপুট
['efficient', 'durable', 'strong']