我正在使用带有python 3的NLTK。我想从知道文件名的文件中加载自定义pickle。
我目前在一个目录中有泡菜:
/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修改路径的情况下直接导入资源?
谢谢! Ĵ
答案 0 :(得分:1)
由于它们是您的资源,因此无需通过nltk的data.load
API即可加载它们。腌制资源可以简单地打开:
with open("/path/to/english.pickle", "rb") as resource:
sent_tokenizer = pickle.load(resource)