कोड से nltk डेटा निर्देशिका कैसे कॉन्फ़िगर करें?


जवाबों:


71

बस आइटम बदलें nltk.data.path, यह एक सरल सूची है।


29
या NLTK_DATA पर्यावरण चर सेट करें।
स्कीमैक्स

मेरे nltk.data.path के पास '/home/aankney/nltk_data'सूची का पहला तत्व है, लेकिन मैं एक सर्वर पर हूं और सर्वर nltk_dataका उपयोग कर अन्य लोगों द्वारा साझा किया जाना चाहता हूं । मैं nltk को डाउनलोड पथों में से एक के रूप में उपयोग करने से कैसे रोकूँ?
ऑस्टिन ए

41

कोड से, 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")

किस निर्देशिका में यह फ़ाइल होगी?
hlin117

यह एनएलटीके के मूल स्रोत कोड में है। निर्देशिका है जहाँ आप स्रोत कोड को बचाने के तो पर जाने के लिए जाओnltk/nltk/data
alvas

पर एक नज़र magically_find_nltk_data()से stackoverflow.com/questions/36382937/...
alvas

28

मैं एपेंड का उपयोग करता हूं, उदाहरण

nltk.data.path.append('/libs/nltk_data/')

14

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 पर


1

Uwsgi का उपयोग करने वालों के लिए:

मुझे परेशानी हो रही थी क्योंकि मैं एक uwsgi ऐप (खुद से अलग उपयोगकर्ता के रूप में चलाना) चाहता था कि मेरे पास पहले से डाउनलोड किए गए डेटा को एक्सेस करना है। मेरे लिए क्या काम किया गया था myapp_uwsgi.ini:

env = NLTK_DATA=/home/myuser/nltk_data/

यह वातावरण चर सेट करता है NLTK_DATA, जैसा कि @schemacs द्वारा सुझाया गया है।
यह परिवर्तन करने के बाद आपको अपनी uwsgi प्रक्रिया को पुनः आरंभ करने की आवश्यकता हो सकती है।


0

एक और उपाय है इससे आगे बढ़ने का।

आयात nltk nltk.download () आयात करें

जब विंडो बॉक्स यह पूछता है कि क्या आप कॉर्पस डाउनलोड करना चाहते हैं, तो आप यह निर्दिष्ट कर सकते हैं कि इसे किस निर्देशिका में डाउनलोड करना है।


0

पथ प्रिंट करने के ऊपर 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")

अपवाद हो गया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.