आपको 1 (प्रत्येक व्यक्तिगत शब्द) से सभी पड़ोसी क्रमपरिवर्तनों को लेन (टेक्स्ट) (संपूर्ण स्ट्रिंग) तक परीक्षण करने की आवश्यकता है।
text = 'I have a smartphone and a Smart TV'
array = text.lower().split()
key_permutations = [" ".join(array[j:j + i]) for i in range(1, len(array) + 1) for j in range(0, len(array) - (i - 1))]
>>> key_permutations
['i', 'have', 'a', 'smartphone', 'and', 'a', 'smart', 'tv', 'i have', 'have a', 'a smartphone', 'smartphone and', 'and a', 'a smart', 'smart tv', 'i have a', 'have a smartphone', 'a smartphone and', 'smartphone and a', 'and a smart', 'a smart tv', 'i have a smartphone', 'have a smartphone and', 'a smartphone and a', 'smartphone and a smart', 'and a smart tv', 'i have a smartphone and', 'have a smartphone and a', 'a smartphone and a smart', 'smartphone and a smart tv', 'i have a smartphone and a', 'have a smartphone and a smart', 'a smartphone and a smart tv', 'i have a smartphone and a smart', 'have a smartphone and a smart tv', 'i have a smartphone and a smart tv']
अब हम शब्दकोश के माध्यम से स्थानापन्न:: आप पड़ोसी क्रमपरिवर्तन इस तरह से उत्पन्न कर सकते हैं
import re
for permutation in key_permutations:
if permutation in dict:
text = re.sub(re.escape(permutation), dict[permutation], text, flags=re.IGNORECASE)
>>> text
'I have a toy and a junk'
हालांकि इसके लिए आपको अधिक, सबसे लंबे समय तक पहले, तो उलटे क्रम में क्रमपरिवर्तन की कोशिश करना चाहता हूँ विशिष्ट वाक्यांशों के व्यक्तिगत शब्दों पर प्राथमिकता है।
कुंजी में स्पेस है, इसलिए आप –
स्ट्रिंग प्रतिस्थापित नहीं कर सकते हैं, यदि स्ट्रिंग को इस my_dict = {"google": "याहू", "याहू": "google"} और टेक्स्ट "google yahoo से बड़ा है" –