मान लीजिए, हमें दो सूचियाँ दी गई हैं; 'वाक्यांश' जिसमें कुछ चयनित वाक्यांश होते हैं और 'वाक्य' जिनमें कई वाक्य होते हैं जिनमें दूसरी सूची के वाक्यांश शामिल हो सकते हैं या नहीं भी हो सकते हैं। हमें यह पता लगाना है कि क्या पहली सूची के विभिन्न वाक्यांश दूसरी सूची में दिखाई देते हैं और पहली सूची के वाक्यांशों को दूसरी सूची में उनकी उपस्थिति के आधार पर क्रमबद्ध करना है। हम क्रमबद्ध सूची 'वाक्यांश' को आउटपुट के रूप में लौटाते हैं।
इसलिए, यदि इनपुट वाक्यांशों की तरह है =['मजबूत', 'टिकाऊ', 'कुशल'], वाक्य =['उत्पाद टिकाऊ और कुशल है', 'मजबूत और टिकाऊ', 'यह कुशल है', 'पसंद करें' क्योंकि यह कुशल है'], तो आउटपुट ['कुशल', 'टिकाऊ', 'मजबूत']
होगावाक्यांश 'कुशल' वाक्य 0, 2, और 4 में प्रकट होता है। इसमें सबसे अधिक उपस्थिति है, इसलिए यह आउटपुट की शुरुआत में है। वाक्यांश 'टिकाऊ' और 'मजबूत' क्रमशः वाक्य 0 और 1 और 1 में प्रकट होते हैं। तो, ये वाक्यांश आउटपुट में अगला स्थान प्राप्त करते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- cnt :=एक नया नक्शा
- वाक्यांशों में प्रत्येक सुविधा के लिए, करें
- cnt[फीचर] :=0
- वाक्य में प्रत्येक प्रतिक्रिया के लिए, करें
- p :=एक नई सूची जिसमें प्रतिक्रिया के शब्द शामिल हैं
- s :=p से एक नया सेट
- प्रत्येक i के लिए, करते हैं
- अगर मैं सीएनटी में मौजूद हूं, तो
- cnt[i] :=cnt[i] + 1
- अगर मैं सीएनटी में मौजूद हूं, तो
- res :=cnt में प्रत्येक k के लिए जोड़े वाली एक नई सूची (k, cnt[k])
- गिनती k के आधार पर सूची को क्रमबद्ध करें
- गिनती मान k शामिल किए बिना सूची res लौटाएं
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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']