2011-12-18 13 views
6

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

st = StanfordTagger('bidirectional-distsim-wsj-0-18.tagger') 
st.tag('What is the airspeed of an unladen swallow ?'.split()) 
    [('What', 'WP'), ('is', 'VBZ'), ('the', 'DT'), ('airspeed', 'NN'), ('of', 'IN'), ('an', 'DT'), ('unladen', 'JJ'), ('swallow', 'VB'), ('?', '.')] 

यह बहुत अच्छा लगता है, लेकिन मैं सही नामस्थान अपने स्थानीय अजगर + NLTK स्थापना में दिखाने के लिए प्राप्त करने के लिए प्रतीत नहीं कर सकते हैं (मेरे पास है: मैं कोई परेशानी नहीं प्रलेखन here है, जो एक प्रयोग नमूना प्रदान करता है खोजने में कठिनाई हुई नवीनतम NLTK संस्करण, और नीचे अजगर 2.6.x में रूप में अच्छी तरह 2.7.x के रूप में की कोशिश की है):

>>> import nltk 
>>> from nltk import * 
>>> from nltk.tag import stanford 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: cannot import name stanford 

मैं भी इस इंपोर्ट स्टेटमेंट की कोशिश की, एक ही परिणाम के साथ:

>>> from nltk.tag.stanford import StanfordTagger 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: No module named stanford 

इतने पर यहाँ सर्च कर रहे हैं, मैं this question, जहां पोस्टर में ठीक उसी समस्या का सामना कर किया जा रहा है, लेकिन अतीत के साथ नाम स्थान कदम प्राप्त करने में सक्षम है पाया:

समस्या

कि मेरे nltk lib does not को शामिल किया जाता है स्टैनफोर्ड मॉड्यूल। इसलिए मैंने इसे उचित फ़ोल्डर में कॉपी किया और इसे संकलित किया।

लगता है जैसे यह वास्तव में एक ही मुद्दा है, सिवाय इसके कि मैं अपने जीवन के लिए एनएलटीके में मॉड्यूल जोड़ने के लिए कोई दस्तावेज नहीं ढूंढ सकता। एनएलटीके वेब साइट पर जो कुछ भी मैंने पढ़ा है, उसका तात्पर्य है कि स्टैनफोर्ड मॉड्यूल को बेस इंस्टॉल में पहले ही पैक किया जाना चाहिए। तो, दो भागों में एक सवाल:

  1. (विशिष्ट) कोई भी इस विशेष मुद्दे अतीत हो रही है और अजगर से StanfordTagger उपयोग करने के लिए शुरू करने के लिए सुझाव? मुझे पता है कि मैं आसानी से सीधे जार को कॉल कर सकता हूं और फिर पाइथन में आउटपुट की व्याख्या कर सकता हूं - जो कि सभी पायथन रैपर वैसे भी करता है - लेकिन मैं इसे सिद्धांत के बाहर काम करने के लिए प्राप्त करना चाहता हूं, अगर कुछ और नहीं।
  2. (सामान्य) की जांच करने के लिए एक अच्छा पायथनिक दृष्टिकोण क्या है जो पैकेजिंग के मुद्दों या उपरोक्त निर्भरताओं को खो रहा है?

उत्तर

-1

सुझाव: ए। अपने पीसी पर स्थापित nltk निर्देशिका को देखो। मैंने अपनी जांच की और stanford.py वहां नहीं है (यानी nltk/टैग/निर्देशिका में गुम है)। आप इसे तुरंत चलाने के लिए कहां देख सकते हैं:

import distutils.sysconfig 
print distutils.sysconfig.get_python_lib()+'/nltk/tag/' 

बी। यदि यह वहां नहीं है, तो अपने पीसी पर nltk/टैग निर्देशिका में उल्लिखित स्रोत से stanford.py फ़ाइल कॉपी करें (जिसे आप चरण में प्राप्त करते हैं)।

मुझे उम्मीद है कि यह काम करता है।

+0

distutils.sysconfig के सुझाव के लिए धन्यवाद। उसने मुझे बताया कि मुझे पहले से क्या पता था (और आपने पुष्टि की) - कि स्टैनफोर्ड पीओएस टैगर अब एनएलटीके वितरण का हिस्सा नहीं प्रतीत होता है, और प्रलेखन पुराना प्रतीत होता है। आखिर में मैंने पाइथन से इंटरफेसिंग करने के बजाय बैच मोड में स्टैनफोर्ड टैगर का उपयोग करने का फैसला किया, लेकिन यह जानना अच्छा है कि मुझे कुछ भी याद नहीं आया। – Inverseofverse

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