कोड से nltk डेटा निर्देशिका कैसे कॉन्फ़िगर करें?
कोड से nltk डेटा निर्देशिका कैसे कॉन्फ़िगर करें?
जवाबों:
बस आइटम बदलें nltk.data.path
, यह एक सरल सूची है।
'/home/aankney/nltk_data'
सूची का पहला तत्व है, लेकिन मैं एक सर्वर पर हूं और सर्वर nltk_data
का उपयोग कर अन्य लोगों द्वारा साझा किया जाना चाहता हूं । मैं nltk को डाउनलोड पथों में से एक के रूप में उपयोग करने से कैसे रोकूँ?
कोड से, http://www.nltk.org/_modules/nltk/data.html :
``nltk:path``: Specifies the file stored in the NLTK data
package at *path*. NLTK will search for these files in the
directories specified by ``nltk.data.path``.
फिर कोड के भीतर:
######################################################################
# Search Path
######################################################################
path = []
"""A list of directories where the NLTK data package might reside.
These directories will be checked in order when looking for a
resource in the data package. Note that this allows users to
substitute in their own versions of resources, if they have them
(e.g., in their home directory under ~/nltk_data)."""
# User-specified locations:
path += [d for d in os.environ.get('NLTK_DATA', str('')).split(os.pathsep) if d]
if os.path.expanduser('~/') != '~/':
path.append(os.path.expanduser(str('~/nltk_data')))
if sys.platform.startswith('win'):
# Common locations on Windows:
path += [
str(r'C:\nltk_data'), str(r'D:\nltk_data'), str(r'E:\nltk_data'),
os.path.join(sys.prefix, str('nltk_data')),
os.path.join(sys.prefix, str('lib'), str('nltk_data')),
os.path.join(os.environ.get(str('APPDATA'), str('C:\\')), str('nltk_data'))
]
else:
# Common locations on UNIX & OS X:
path += [
str('/usr/share/nltk_data'),
str('/usr/local/share/nltk_data'),
str('/usr/lib/nltk_data'),
str('/usr/local/lib/nltk_data')
]
पथ को संशोधित करने के लिए, बस संभव पथों की सूची में संलग्न करें:
import nltk
nltk.data.path.append("/home/yourusername/whateverpath/")
या खिड़कियों में:
import nltk
nltk.data.path.append("C:\somewhere\farfar\away\path")
nltk/nltk/data
magically_find_nltk_data()
से stackoverflow.com/questions/36382937/...
nltk.data.path.append('your/path/to/nltk_data')
प्रत्येक स्क्रिप्ट में जोड़ने के बजाय , NLTK NLTK_DATA पर्यावरण चर को स्वीकार करता है। ( कोड लिंक )
ओपन ~/.bashrc
(या ~/.profile
) पाठ संपादक के साथ (जैसे nano
, vim
, gedit
), और निम्न पंक्ति जोड़ें:
export NLTK_DATA="your/path/to/nltk_data"
source
पर्यावरण चर को लोड करने के लिए निष्पादित करें
source ~/.bashrc
अजगर को खोलें और निम्नलिखित पंक्तियों को निष्पादित करें
import nltk
nltk.data.path
आप अपना nltk डेटा पथ पहले से ही देख सकते हैं।
संदर्भ: @ अल्टेक के उत्तर nltk / nltk # 1997 पर
Uwsgi का उपयोग करने वालों के लिए:
मुझे परेशानी हो रही थी क्योंकि मैं एक uwsgi ऐप (खुद से अलग उपयोगकर्ता के रूप में चलाना) चाहता था कि मेरे पास पहले से डाउनलोड किए गए डेटा को एक्सेस करना है। मेरे लिए क्या काम किया गया था myapp_uwsgi.ini
:
env = NLTK_DATA=/home/myuser/nltk_data/
यह वातावरण चर सेट करता है NLTK_DATA
, जैसा कि @schemacs द्वारा सुझाया गया है।
यह परिवर्तन करने के बाद आपको अपनी uwsgi प्रक्रिया को पुनः आरंभ करने की आवश्यकता हो सकती है।
पथ प्रिंट करने के ऊपर fnjn की सलाह का उपयोग करना:
print(nltk.data.path)
मैंने खिड़कियों पर इस प्रकार के प्रारूप में पथ के तार देखे:
C:\\Users\\my_user_name\\AppData\\Roaming\\SPB_Data
इसलिए मैंने अपना पथ अजगर टाइप फॉरवर्ड स्लैश '/' से स्विच किया, जब मैंने path.append का उपयोग किया तो एक डबल बैकस्लैश '\\' में:
nltk.data.path.append("C:\\workspace\\my_project\\data\\nltk_books")
अपवाद हो गया।