2014-05-16 4 views
5

मैंने अभी अपना पहला एनएलटीके प्रोजेक्ट शुरू किया और उचित सेटअप के बारे में उलझन में हूं। मुझे पंकट टोकनाइज़र और अधिकतम पॉज़ टैगर जैसे कई संसाधनों की आवश्यकता है। मैंने स्वयं उन्हें GUI nltk.download() का उपयोग करके डाउनलोड किया। मेरे सहयोगियों के लिए मैं निश्चित रूप से चाहता हूं कि यह चीजें स्वचालित रूप से डाउनलोड हो जाएं। मुझे डॉकू में इसके लिए कोई बेवकूफ कोड नहीं मिला है।मैं कैसे जांच करूं कि एक एनएलटीके संसाधन पहले से ही मेरे कोड को चलाने वाली मशीन पर स्थापित है या नहीं?

क्या मुझे बस nltk.data.load('tokenizers/punkt/english.pickle') और कोड में शामिल करना चाहिए? क्या यह स्क्रिप्ट चलाने पर हर बार संसाधन डाउनलोड करने जा रहा है? क्या मैं उपयोगकर्ता को (यानी मेरे सह-डेवलपर्स) को फीडबैक प्रदान करने के लिए डाउनलोड कर रहा हूं और यह इतना समय क्यों ले रहा है? नौकरी करने के लिए वहाँ गियर होना चाहिए, है ना? :)

// संपादित करें मेरे सवाल explify करने के लिए:
मैं कैसे परीक्षण करते हैं (पंक्ट Tokenizer) की तरह एक nltk संसाधन पहले से ही मेरे कोड चल मशीन पर स्थापित है या नहीं, और अगर यह नहीं है इसे स्थापित?

+0

मुझे यह निर्धारित करने में समस्या हो रही है कि आप क्या पूछ रहे हैं। आपके वर्तमान दृष्टिकोण का प्रदर्शन करने वाला एक संक्षिप्त, टेस्टेबल कोड उदाहरण बहुत उपयोगी होगा। –

+1

मुझे प्रश्न को रेफ्रेम करने दें: मैं कैसे जांच करूं कि एक nltk संसाधन (जैसे Punkt Tokenizer) पहले से ही मेरे कोड को चलाने वाली मशीन पर स्थापित है या नहीं, और यदि यह नहीं है तो इसे इंस्टॉल करें? – Zakum

+0

अपनी टिप्पणी से मेल खाने के लिए अपने प्रश्न को संपादित करें। टिप्पणियों में संक्षिप्त प्रश्न डालने से इसे '.zip' एक्सटेंशन के बिना – Spaceghost

उत्तर

8

आप nltk.data.find() समारोह का उपयोग कर सकते, https://github.com/nltk/nltk/blob/develop/nltk/data.py देखें:

>>> import nltk 
>>> nltk.data.find('tokenizers/punkt.zip') 
ZipFilePathPointer(u'/home/alvas/nltk_data/tokenizers/punkt.zip', u'') 

जब संसाधन उपलब्ध नहीं है तो आपको त्रुटि मिल जाएगा:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/nltk-3.0a3-py2.7.egg/nltk/data.py", line 615, in find 
    raise LookupError(resource_not_found) 
LookupError: 
********************************************************************** 
    Resource u'punkt.zip' not found. Please use the NLTK Downloader 
    to obtain the resource: >>> nltk.download() 
    Searched in: 
    - '/home/alvas/nltk_data' 
    - '/usr/share/nltk_data' 
    - '/usr/local/share/nltk_data' 
    - '/usr/lib/nltk_data' 
    - '/usr/local/lib/nltk_data' 
********************************************************************** 

अधिकांश शायद, आप करना चाहते हैं ऐसा कुछ सुनिश्चित करने के लिए कि आपके सहयोगियों के पास पैकेज है:

>>> try: 
...  nltk.data.find('tokenizers/punkt') 
... except LookupError: 
...  nltk.download('punkt') 
... 
[nltk_data] Downloading package punkt to /home/alvas/nltk_data... 
[nltk_data] Package punkt is already up-to-date! 
True 
+1

मेरे लिए काम नहीं कर सकता है – xagg

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

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