मैं एक पाठ (बहुवचन, एकवचन, उपसर्ग, आदि) में शब्दों की सूची के सभी संभावित संयोजनों को खोजना चाहता हूं। वर्तमान में मैंने निम्नलिखित फ़ंक्शन को परिभाषित किया है जो मेरे टेक्स्ट में एक शब्द खोजने के लिए रेगेक्स पैटर्न का उपयोग करता है। लेकिन यह मेरे पाठ ("जो एक राष्ट्र है") के अंतिम वाक्य में "राष्ट्र" शब्द से मेल नहीं खाता है, जब तक कि मैं अवधि को स्थान ("जो एक राष्ट्र है") से प्रतिस्थापित नहीं करता। इसी तरह, यह "राष्ट्रीयता" या "राष्ट्र" शब्दों से मेल नहीं खाता। मैं एक पैटर्न का उपयोग करना चाहता हूं ताकि मैं टेक्स्ट में चयनित शब्दों की सूची में किसी भी शब्द से मेल खाने के लिए अपने कोड का विस्तार कर सकूं। क्या यह जांचने का कोई तरीका है कि ये मिलान टेक्स्ट में रेगेक्स पैटर्न के साथ मौजूद हैं या नहीं?

text = '''
we are the natio 
we love other nations. 
other nationalities are good too, we are that. who is a nation.
'''

def WordsinSentence(word,sentence):    
    pattern = re.compile(' '+word+' |^'+word+' | '+word+' $')
#     stem = tokenize_and_stem(sentence)
#     stemmed_sent = ' '.join(stem)
    if re.search(pattern,sentence.lower()):
        return True
0
Zia 14 जुलाई 2021, 07:01
क्यों न केवल शब्दों को स्थान के आधार पर विभाजित करें, फिर in (इसमें शामिल हैं) द्वारा जांचें?
 – 
Lei Yang
14 जुलाई 2021, 07:08

1 उत्तर

सबसे बढ़िया उत्तर

सभी मैचों को प्राप्त करने के लिए रेगेक्स 'ढूंढें' विधि का प्रयोग करें।

def WordsinSentence(word,sentence):    
    pattern = re.compile(word)
    found = re.findall(pattern,sentence.lower())
    if found:
        return True
    else:
        return False

इसके बारे में यहां और जानें: पायथन रेगेक्स फाइंडॉल

0
Keshav Bajaj 14 जुलाई 2021, 07:47