2010-08-08 13 views
11

का उपयोग कर काल। अभी के लिए मैं NLTK का उपयोग कर रहा हूं, एक पीओएस (पार्ट-ऑफ-स्पीच) टैगिंग करें, और फिर पिछले काल प्राप्त करने के लिए 'वीबीडी' कहें। हालांकि यह पर्याप्त सटीक नहीं है, इसलिए मुझे लगता है कि मुझे आगे जाने और चंकिंग का उपयोग करने की आवश्यकता है, फिर विशिष्ट तनाव पैटर्न के लिए वीपी-भाग का विश्लेषण करें। क्या कोई ऐसा अस्तित्व है जो ऐसा करता है? कोई और पढ़ना उपयोगी हो सकता है? NLTK book ज्यादातर एनपी-चंक्स पर केंद्रित है, और मुझे वीपी-चंक्स पर काफी कुछ जानकारी मिल सकती है।का पता लगाने अंग्रेज़ी क्रिया मैंने पहले भी एक अंग्रेजी पाठ गिनती क्रिया वाक्यांशों उस में, वर्तमान और भविष्य काल को देखते हुए एक तरह से देख रहा हूँ NLTK

+0

आपके तर्क में कोई दोष है। यदि एक चंकर एनपी का पता लगा सकता है, तो यह वीपी का पता लगाने में सक्षम होना चाहिए। –

+0

बेशक, लेकिन मुझे अधिकतर वीपी विश्लेषण में दिलचस्पी है - अलग-अलग काल के बीच अंतर कैसे करें। –

उत्तर

9

तुमको सटीक उत्तर जो chunker आप उपयोग करना चाहते पर निर्भर करता है, लेकिन सूची comprehensions आप एक लंबा रास्ता ले जाएगा। यह आपको एक अस्तित्वहीन चंकर का उपयोग करके क्रिया वाक्यांशों की संख्या प्राप्त करता है।

len([phrase for phrase in nltk.Chunker(sentence) if phrase[1] == 'VP']) 

आप दसियों की संख्या का पता लगाने के लिए एक और अधिक बढ़िया दृष्टिकोण ले सकते हैं।

+0

पॉइंटर के लिए धन्यवाद, यही वह है जिसका मैं उपयोग कर रहा हूं - मेरा अगला सवाल यह है कि क्या तनाव पैटर्न का पता लगाने के लिए कुछ मौजूद है या नहीं। प्रत्येक वीपी के लिए मैं जानना चाहता हूं कि इसमें क्या तनाव है। –

+2

मैं वास्तव में इस दृष्टिकोण के साथ अपनी समस्या को हल करने में कामयाब रहा, इसलिए इसे स्वीकृत उत्तर के रूप में टैग करना। निम्नलिखित आलेख वास्तव में सहायक है: http://streamhacker.com/2009/02/23/chunk-extraction-with-nltk/ –

+0

हाय माइकल, यह सुनकर बहुत अच्छा लगा कि चीजें आपके लिए अच्छी तरह से काम कर रही हैं! –

1

आप या तो Berkeley Parser या Stanford Parser के साथ ऐसा कर सकते हैं। लेकिन मुझे नहीं पता कि पाइथन इंटरफ़ेस या तो उपलब्ध है या नहीं।

+0

बहुत बहुत धन्यवाद, यह एक विकल्प हो सकता है - हालांकि मैं पहले से ही एनएलटीके का उपयोग कर रहा हूं, यह स्विच करने के लिए काफी काम हो सकता है। हालांकि देखो। –

+1

एनएलटीके में स्टैनफोर्ड पार्सर के लिए एक इंटरफ़ेस है। 'टैगर = nltk.tag.stanford.POSTagger ('मॉडल/जर्मन-fast.tagger', 'स्टैनफोर्ड-postagger.jar')' आप पहले UTF-8 में तार एन्कोड करने के लिए हो सकता है: इस प्रकार आप इसे उपयोग कर सकते हैं (कम से कम जर्मन मॉडल के लिए)। –

+2

बर्कले को गलत तरीके से लिखा गया था। मैं उत्तर के लिए टाइपो फिक्स का सुझाव नहीं दे सकता। – Streeter

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