google-app-engine - 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 标准有什么好的解决方案吗?
解决方案
我知道您想在 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 文件夹中。然而,这个选项是以应用程序延迟、内存使用以及必须不断检查实例之前是否下载过它为代价的。
推荐阅读
- java - 从 url Java 解析 JSON 对象数组
- python - Custom loss function error: tensor does not have a grad_fn
- docker - Kubernetes(docker)在docker compose中访问Kafka
- python - 使用 SHAP 时如何解释多类分类问题的 base_value?
- python - RuntimeError:输入类型(torch.cuda.FloatTensor)和权重类型(torch.cuda.HalfTensor)应该相同
- flutter - 颤振:如何正确使用异步和等待冻结并等待某些功能完成,然后再执行下一行代码
- python - 如何优化代码以对 DataFrame 进行分组、排序和应用“差异”(目前在小型数据集上运行速度非常慢)
- java - GSON 没有使用通用键/值反序列化正确嵌套的映射
- laravel - 数据透视表的laravel关系问题
- django - 一个客户端的 Django SaaS 多个用户