2012-08-30 31 views
8

विषय की तरह प्रश्न - मैं इसे Google App Engine में ऐप के लिए पायथन में करने की कोशिश कर रहा हूं। मुझे पता है कि PyEnchant लाइब्रेरी प्राकृतिक भाषा पहचान के लिए प्रयोग की जाती है लेकिन मुझे नहीं लगता कि मैं इसे अपनी समस्या और कैसे उपयोग कर सकता हूं।यह कैसे जांचें कि दिया गया शब्द बहुवचन या एकवचन रूप में है या नहीं?

+0

शायद एनएलटीके की जांच करना चाहें http://nltk.org/ –

उत्तर

10

inflect 0.2.4 लाइब्रेरी चेकआउट करें।

बांका 0.2.4

सही ढंग से बहुवचन, एकवचन संज्ञाओं, ऑर्डिनल्स, अनिश्चितकालीन लेख उत्पन्न; संख्याओं को शब्दों में परिवर्तित करें

+1

यह अच्छा है। मुझे पता नहीं था। – David

+5

@ अश्विनी: inflect.py * * plurals उत्पन्न कर सकते हैं, लेकिन यह * plurals का पता लगा सकते हैं? – Hugo

2

आप यह नहीं कहते कि आपकी समस्या अंग्रेजी भाषा वाक्यों के संदर्भ में अलग शब्द या शब्द है या नहीं।

उदाहरण के लिए "भेड़" या तो एकल या बहुवचन हो सकता है। हालांकि:

भेड़ क्षेत्र

में था विलक्षण है और

भेड़ क्षेत्र में थे

बहुवचन है।

उत्तरार्द्ध के लिए आपको भाषण के अंश की आवश्यकता है, जो वाक्यों में संज्ञाओं की भूमिका की पहचान करेगा। कई मुफ्त और वाणिज्यिक हैं और विकिपीडिया में an excellent list है। एनएलटीके शायद पाइथन के लिए प्राकृतिक विकल्प है।

यदि आपके पास केवल अलग-अलग शब्द हैं तो आप कई शब्दकोशों को संदर्भित कर सकते हैं (जैसे Wordnet जो संज्ञाओं के एकवचन और बहुवचन रूपों को इंगित करेंगे)।

5

अश्विनी ने उपयोगी inflect लाइब्रेरी का उल्लेख किया, लेकिन यह नहीं बताया कि एक दिया गया शब्द बहुवचन या एकवचन रूप में है या नहीं।

आप जानते हैं कि शब्द या तो किसी एकल या एक बहुवचन आप उपयोग कर सकते है:

singular_noun(word) 

यह False वापस आ जाएगी अगर शब्द बहुवचन नहीं है, इसलिए अपने शब्द सिद्धांत में विलक्षण होना चाहिए।

शास्त्रीय बहुवचनों के रूप में मेरे उदाहरणों में प्रदर्शित होने वाली कमियों को ध्यान में रखें, जो कि एकवचन या बहुवचन हो सकते हैं, और तथ्य यह है कि यह सामान्य रूप से अपरिचित रूपों के लिए गलत होगा।

import inflect 
inflect = inflect.engine() 

english_words = ["hat", "hats", 
       "hero", "heroes", 
       "cherry", "cherries", 
       "dish", "dishes", 
       "stadium", "stadia", "stadiums", 
       "mitochondrion", "mitochondria", 
       "sheep", "a sheep", "the sheep", 
       "whjkjhkjh", "msipelling"] 

for en in english_words: 
    if inflect.singular_noun(en) is False: 
     print (en, "is singular") 
    else: 
     print (en, "is plural") 

>>> 
hat is singular 
hats is plural 
hero is singular 
heroes is plural 
cherry is singular 
cherries is plural 
dish is singular 
dishes is plural 
stadium is singular 
stadia is singular 
stadiums is plural 
mitochondrion is singular 
mitochondria is singular 
sheep is plural 
a sheep is plural 
the sheep is plural 
whjkjhkjh is singular 
+0

'some_boolean_value गलत है 'विरोधी पैटर्न है, इसके बजाय' some_boolean_value' नहीं 'का उपयोग करें –

संबंधित मुद्दे