首页 > 解决方案 > Google App Engine Standard 上的 NLTK 停用词

问题描述

我正在尝试在 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 标准有什么好的解决方案吗?

标签: google-app-enginenltk

解决方案


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

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

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

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

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


推荐阅读