使用NLTK加载本地资源

时间:2016-11-12 23:39:53

标签: python nltk

我正在使用带有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修改路径的情况下直接导入资源?

谢谢! Ĵ

1 个答案:

答案 0 :(得分:1)

由于它们是您的资源,因此无需通过nltk的data.load API即可加载它们。腌制资源可以简单地打开:

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