2016-11-12 69 views
0

我使用的是Python 3的NLTK。我想從知道文件名的文件加載自定義的pickle。使用NLTK加載本地資源

我現在有喜歡的目錄泡菜:

/path/to/project/nltk/tokenizers/punkt/english.pickle 

我想加載此並使用它像這樣:

import nltk 
sent_tokenizer = nltk.data.load('file:/path/to/project/nltk/tokenizers/punkt/english.pickle') 
tokens = sent_tokenizer('A really big hunk of text.') 

然而,似乎NLTK推斷,我不已不具備Python 3版本的資源,並將PY3添加到我所需的路徑中:

LookupError: 
********************************************************************** 
    Resource '/path/to/project/nltk/tokenizers/punkt/PY3/english.pickle 
    ' not found. Please use the NLTK Downloader to 
    obtain the resource: >>> nltk.download() 
    Searched in: 
    - '' 
********************************************************************** 

我希望能夠使用文件的真實路徑,而不是忽略PY3文件夾,並期望NLTK插入它。有沒有辦法直接導入資源沒有NLTK修改路徑?

謝謝! J

回答

1

由於它們是您的資源,因此無需通過nltk的data.load API就可以加載它們。醃漬資源可以簡單地取消:

with open("/path/to/english.pickle", "rb") as resource: 
    sent_tokenizer = pickle.load(resource)