Google app engine 谷歌应用程序引擎标准上的NLTK stopwords

Google app engine 谷歌应用程序引擎标准上的NLTK stopwords,google-app-engine,nltk,Google App Engine,Nltk,我正在尝试在我的Flask应用程序中使用NLTK,该应用程序基于Google应用程序引擎标准。但我无法找到一种在GAE标准上下载/加载NLTK stopwords的简洁方法 我看到了Django()的这个解决方案,它建议下载数据,与GAE上的所有其他文件一起托管,并将nltk.data.path链接到它。然而,这似乎相当骇客,我也想保持我的总GAE目录大小低 我试图在GAE Flexible中复制这种情况。在这里,我只需将“runpython-mnltk.downloader all-d/usr

我正在尝试在我的Flask应用程序中使用NLTK,该应用程序基于Google应用程序引擎标准。但我无法找到一种在GAE标准上下载/加载NLTK stopwords的简洁方法

我看到了Django()的这个解决方案,它建议下载数据,与GAE上的所有其他文件一起托管,并将nltk.data.path链接到它。然而,这似乎相当骇客,我也想保持我的总GAE目录大小低

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


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

我知道你想在GAE标准中使用NLTK stopwords,但我认为你有点混淆了,因为不管怎样,你都需要将文件放在文件夹中或内存中

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

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

总而言之,在我看来,到目前为止提到的所有方法都不太成熟,我会推荐其中任何一种


话虽如此,如果你真的不想把这个文件放在你的代码库中,你也可以把它存储在谷歌云存储中并检索它。通过这种方式,您可以在每次需要对其执行操作时检索它,或者只检索一次,然后将其存储在memory/tmp文件夹中。但是,此选项的代价是应用程序延迟、ram使用以及必须不断检查实例是否以前下载过它。

为什么不从NLTK源代码复制列表并粘贴到您自己的代码中?(当然是属性)我只是对使用GAE Flexible犹豫不决,因为我需要在Docker中为我的远程DB集群找出端口业务。我几乎不明白Docker是怎么工作的。我可以部署简单的FlaskAPI,但仅此而已。是的,docker需要一些配置。我建议您继续使用GAE standard,只要它符合您的需要,它也更便宜。