Nltk veri dizini koddan nasıl yapılandırılır?
Nltk veri dizini koddan nasıl yapılandırılır?
Yanıtlar:
Sadece öğelerini değiştirin nltk.data.path
, bu basit bir liste.
'/home/aankney/nltk_data'
ilk öğesi nltk.data.path'im var AMA bir sunucudayım ve nltk_data
sunucuyu kullanan diğer kişiler tarafından paylaşılmak istiyorum . Nltk'nin bunu indirme yollarından biri olarak kullanmasını nasıl önleyebilirim?
Http://www.nltk.org/_modules/nltk/data.html kodundan :
``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``.
Sonra kodun içinde:
######################################################################
# 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')
]
Yolu değiştirmek için, olası yollar listesine eklemeniz yeterlidir:
import nltk
nltk.data.path.append("/home/yourusername/whateverpath/")
Veya pencerelerde:
import nltk
nltk.data.path.append("C:\somewhere\farfar\away\path")
nltk/nltk/data
magically_find_nltk_data()
gelen stackoverflow.com/questions/36382937/...
nltk.data.path.append('your/path/to/nltk_data')
Her betiğe ekleme yapmak yerine NLTK, NLTK_DATA ortam değişkenini kabul eder. ( kod bağlantısı )
Açık ~/.bashrc
(veya ~/.profile
metin editörü ile) (örn nano
, vim
, gedit
) ve aşağıdaki satırı ekleyin:
export NLTK_DATA="your/path/to/nltk_data"
source
Çevresel değişkeni yüklemek için yürütün
source ~/.bashrc
Python'u açın ve aşağıdaki satırları yürütün
import nltk
nltk.data.path
Nltk veri yolunuzu zaten orada görebilirsiniz.
Kaynak: @ alvations'ın nltk / nltk # 1997 ile ilgili yanıtı
Uwsgi kullananlar için:
Sorun yaşıyordum çünkü (benden farklı bir kullanıcı olarak çalışan) bir uwsgi uygulamasının daha önce indirmiş olduğum nltk verilerine erişmesini istiyordum. Benim için işe yarayan şey şu satırı eklemekti myapp_uwsgi.ini
:
env = NLTK_DATA=/home/myuser/nltk_data/
Bu NLTK_DATA
, @schemacs tarafından önerildiği gibi ortam değişkenini ayarlar .
Bu değişikliği yaptıktan sonra uwsgi sürecinizi yeniden başlatmanız gerekebilir.
Yolu yazdırmak için yukarıdaki fnjn tavsiyesini kullanın:
print(nltk.data.path)
Windows'ta bu formattaki yol dizelerini gördüm:
C:\\Users\\my_user_name\\AppData\\Roaming\\SPB_Data
Bu yüzden, path.append'i kullandığımda, yolumu python türü eğik çizgi '/' yerine çift ters eğik çizgi '\\' olarak değiştirdim:
nltk.data.path.append("C:\\workspace\\my_project\\data\\nltk_books")
İstisna ortadan kalktı.