【问题标题】:NLTK stopwords on Google App Engine StandardGoogle App Engine Standard 上的 NLTK 停用词
【发布时间】:2020-04-02 08:51:02
【问题描述】:

我正在尝试在 Google App Engine 标准的 Flask 应用中使用 NLTK。但我无法找到一种简洁的方法来下载/加载 GAE 标准上的 NLTK 停用词。

我看到了 Django (How to download all nltk data in google cloud app engine?) 的这个解决方案,它建议下载数据,将其与 GAE 上的所有其他文件一起托管,并将 nltk.data.path 链接到它。但是,这似乎很老套,我还想保持我的 GAE 目录总大小很小。

我试图在 GAE Flexible 中复制这种情况。在那里,我只需将“RUN python -m nltk.downloader all -d /usr/local/nltk_data”添加到我的 Dockerfile 中。

GAE 标准有什么好的解决方案吗?

【问题讨论】:

  • 为什么不直接从 NLTK 源代码中复制列表并将它们粘贴到您自己的代码中呢? (当然要注明出处)

标签: google-app-engine nltk


【解决方案1】:

我知道您想在 GAE 标准中使用 NLTK 停用词,但我认为您有点混淆了,因为您需要将文件放在文件夹中或内存中。

如您所说,在 GAE Flexible 中,您可以将 RUN python -m nltk.downloader all -d /usr/local/nltk_data 放入 Dockerfile。事实上,该命令将下载 NLTK 停用词文件并将其放入您的容器文件夹结构中。从这个意义上说,它完全等同于自己保存文件(如您链接的线程中所建议的那样)或让 Docker 为您保存文件,最终都将文件放在一个文件夹中。

gaefan 建议的替代方案也意味着存储 NLTK 停用词数据,尽管这次将内联在应用程序代码中,而不是在单独的文件中。

总而言之,到目前为止提到的所有方法对我来说都不是 hacky,我会推荐其中任何一种。

话虽如此,如果您真的不想将文件放在代码库中,不妨将其存储在 Google Cloud Storage 中并检索它。这样,您可以在每次想要对其进行操作时检索它,也可以只检索一次,然后将其存储在 memory/tmp 文件夹中。但是,此选项是以应用程序延迟、内存使用以及必须不断检查实例之前是否下载过它为代价的。

【讨论】:

  • 我只是对使用 GAE Flexible 犹豫不决,因为我需要为我的远程数据库集群找出 Docker 中的端口业务。我几乎不明白 Docker 是如何工作的。我可以部署简单的 Flask API,仅此而已。
  • 是的,docker 需要一些配置。我会建议保持 GAE 标准,只要它符合您的需求,它也更便宜。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
相关资源
最近更新 更多