2012-10-25 8 views
9

का उपयोग करते हुए कौज़ल वाक्य निष्कर्षण मैं पानी पर दुर्घटना रिपोर्ट से कारण वाक्य निकाल रहा हूं। मैं यहां एक उपकरण के रूप में एनएलटीके का उपयोग कर रहा हूं। मैंने 20 कारण वाक्य संरचनाओं को ले कर मैन्युअल रूप से अपना regExp व्याकरण बनाया [नीचे उदाहरण देखें]। निर्माण व्याकरण प्रकारएनएलटीके पायथन

grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}''' 

अब व्याकरण परीक्षण सेट पर 100% याद है की है, लेकिन एक कम सटीक (मैं 50 कारण और 50 गैर कारण वाक्य के साथ अपने ही खिलौना डाटासेट बनाया गया)। मैं के बारे में पूछना चाहते हैं:

  1. कैसे NLTK प्रशिक्षित करने के लिए regexp व्याकरण वाक्य का विशेष प्रकार निकालने के लिए स्वचालित रूप से निर्माण करने के लिए।
  2. क्या किसी ने कभी भी मौलिक वाक्यों को निकालने का प्रयास किया है। उदाहरण कारण वाक्य हैं:

    • गांव में खराब स्वच्छता था, एक परिणाम के रूप में, वह स्वास्थ्य समस्या थी।

    • पानी अपने गांव में अशुद्ध था, इस कारण से, उसे परजीवी से का सामना करना पड़ा।

    • गांव में खराब स्वच्छता के कारण उन्हें स्वास्थ्य समस्याएं थीं। मैं केवल बड़े टेक्स्ट से उपरोक्त प्रकार के वाक्यों को निकालना चाहता हूं। , Mr.Jacob पर्किन्स "NLTK 2.0 कुकबुक साथ अजगर पाठ प्रसंस्करण":

उत्तर

6

पुस्तक के लेखक के साथ एक संक्षिप्त चर्चा की थी। उन्होंने कहा, "वाक्यों के लिए एक सामान्यीकृत व्याकरण बहुत कठिन है। मैं इसके बजाय देखता हूं कि आप सामान्य टैग पैटर्न पा सकते हैं, और उन का उपयोग करें। लेकिन फिर आप अनिवार्य रूप से regexp मिलान द्वारा वर्गीकरण कर रहे हैं। पार्सिंग आमतौर पर वाक्यांशों को निकालने के लिए उपयोग की जाती है। वाक्य, या वाक्य के गहरे पार्स पेड़ों का उत्पादन करने के लिए, लेकिन आप वाक्यों को पहचानने/निकालने की कोशिश कर रहे हैं, यही कारण है कि मुझे लगता है कि वर्गीकरण एक बेहतर तरीका है। जब आप इसे कोशिश करते हैं तो टैग किए गए शब्दों को विशेषताओं के रूप में शामिल करें, व्याकरण के बाद महत्वपूर्ण हो सकता है। " उनके सुझाव लेने मैं कारण वाक्य मैं था को देखा और मुझे पता चला है कि इन वाक्यों की तरह

consequently 
as a result 
Therefore 
as a consequence 
For this reason 
For all these reasons 
Thus 
because 
since 
because of 
on account of 
due to 
for the reason 
so, that 

शब्द है इन शब्दों को जोड़ने के कारण और एक वाक्य में प्रभाव है। और अब इन कनेक्टरों का उपयोग करना कारणों को निकालना आसान है।