2016-11-12 52 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)