1

我关注了这个线程上的所有内容,但我无法在 Google App Engine 上使用 NLTK。

我非常需要GAE上的NLTK,请帮忙。我面临以下问题。

>>> import nltk
>>> sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning', '...', 'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']
>>> tagged = nltk.pos_tag(tokens)

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    tagged = nltk.pos_tag(tokens)
  File "C:\Python27\lib\site-packages\nltk\tag\__init__.py", line 99, in pos_tag
    tagger = load(_POS_TAGGER)
  File "C:\Python27\lib\site-packages\nltk\data.py", line 605, in load
    resource_val = pickle.load(_open(resource_url))
  File "C:\Python27\lib\site-packages\nltk\data.py", line 686, in _open
    return find(path).open()
  File "C:\Python27\lib\site-packages\nltk\data.py", line 467, in find
    raise LookupError(resource_not_found)
LookupError: 
**********************************************************************
  Resource 'taggers/maxent_treebank_pos_tagger/english.pickle' not
  found.  Please use the NLTK Downloader to obtain the resource:
  >>> nltk.download()
  Searched in:
    - 'C:\\Users\\Anshu/nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
    - 'C:\\Python27\\nltk_data'
    - 'C:\\Python27\\lib\\nltk_data'
    - 'C:\\Users\\Anshu\\AppData\\Roaming\\nltk_data'
**********************************************************************
>>> 
4

2 回答 2

0

1) 转到您的云控制台

2)运行以下命令:

pip install -U textblob
python -m textblob.download_corpora

它将与语料库一起下载 nltk 数据。现在只需再次部署您的应用程序,它就会工作。

于 2020-04-12T21:58:36.990 回答
0

如果有人正在寻找一个快速的答案(英文的分词器非常小,所以它适合谷歌应用引擎):

  1. 从http://www.nltk.org/nltk_data下载 Punkt Tokenizer 模型
  2. 在 app.yaml 所在的位置创建一个名为 /nltk_data/tokenizers/punkt/PY3 的目录
  3. 从 Punkt Tokenizer Models 文件 (punkt.zip) 的 PY3 目录中提取 english.pickle
  4. 将english.pickle 复制到./nltk_data/tokenizers/punkt/PY3/
  5. 只需在 app.yaml 中添加以下行: env_variables: NLTK_DATA: './nltk_data/'
于 2019-12-10T22:12:03.540 回答