【问题标题】:How to download all nltk data in google cloud app engine?如何在谷歌云应用引擎中下载所有 nltk 数据?
【发布时间】:2017-05-25 18:11:04
【问题描述】:

我有一个使用以下链接部署的 django 应用程序,

https://cloud.google.com/python/django/flexible-environment

但是当我使用 nltk 进行文本处理时,我遇到了错误。

*********************************************************************
  Resource 'taggers/maxent_treebank_pos_tagger/PY3/english.pickle'
  not found.  Please use the NLTK Downloader to obtain the
  resource:  >>> nltk.download()
  Searched in:
    - '/root/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
    - ''

所以我知道我缺少来自 nltk 的数据。我在网上查看了大量代码,但无法在谷歌应用引擎中下载数据。下面是我的requirements.txt供大家参考。

Django==1.10.6
gunicorn==19.7.0
nltk==3.0.5

如果有办法,请告诉我。 提前致谢。

【问题讨论】:

  • 亲爱的 alvas,感谢您的回复。但是您分享的帖子通常是如何安装nltk数据。我想将它安装在 Google Cloud 上的 Google App Engine 上。不过感谢您的帮助。
  • 不一样吗,仔细阅读答案,可以设置下载路径或者阅读nltk_data目录。是否有一个静态磁盘可以将资产保存在应用引擎上?或者它是一个无服务器后端。如果它是微服务器,那么我认为 nltk 可能无法正常运行,除非应用引擎链接到云 NAS。
  • 另外,更新你的 NLTK,最新的nltk 不应该再使用maxent 模型;P v 3.0.5 对于任何严重的使用来说真的太低了,它应该是 v 3.2。 4
  • 是的,你是对的。没有我可以去修改的静态磁盘。这就是我无法下载数据的原因。

标签: python django google-app-engine google-cloud-platform nltk


【解决方案1】:

我为获取 nltk 数据做了一个解决方法。 首先,我将所需的 nltk 数据文件复制到我的 Django 应用程序文件夹中。 在 settings.py 中,为了访问该文件夹,我创建了一个变量。

nltk_dir = os.path.join(BASE_DIR,'first_app','nltk_data')

然后在我使用 nltk.data.path.append() 的地方引用这个目录变量 所以它基本上附加到 nltk 中 data.py 中的路径列表。

url = settings.nltk_dir
nltk.data.path.append(url)

因此,我可以检索 nltk 数据。:)

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 2014-10-30
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2015-02-01
    相关资源
    最近更新 更多