添加后 nltk.download('words') Google 云 运行

After adding nltk.download('words') Google Cloud Run

我在 GCP 上有一个 Google Cloud 运行 应用程序 运行。添加以下修改后,应用程序崩溃了:

nltk.download('stopwords')
nltk.download('averaged_perceptron_tagger')
nltk.download('maxent_ne_chunker')
nltk.download('words')

我怀疑我需要在 GCP 服务器端手动安装这些文件,但我不知道该怎么做。

云运行的日志如下,我不知道怎么下载云的资源运行,一般我用的是App Engine,有一个集群运行 落后。我不知道如何调试它。请帮忙!

19-11-01 18:08:00.524 PDT Resource [93mpunkt[0m not found.
2019-11-01 18:08:00.524 PDT Please use the NLTK Downloader to obtain the resource:
2019-11-01 18:08:00.524 PDT
2019-11-01 18:08:00.524 PDT [31m>>> import nltk
2019-11-01 18:08:00.524 PDT >>> nltk.download('punkt')
2019-11-01 18:08:00.524 PDT [0m
2019-11-01 18:08:00.524 PDT For more information see: https://www.nltk.org/data.html
2019-11-01 18:08:00.524 PDT
2019-11-01 18:08:00.524 PDT Attempted to load [93mtokenizers/punkt/PY3/english.pickle[0m
2019-11-01 18:08:00.524 PDT
2019-11-01 18:08:00.524 PDT Searched in:
2019-11-01 18:08:00.524 PDT - '/home/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/local/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/local/share/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/local/lib/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/share/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/local/share/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/lib/nltk_data'
2019-11-01 18:08:00.524 PDT - '/usr/local/lib/nltk_data'
2019-11-01 18:08:00.524 PDT - ''
2019-11-01 18:08:00.524 PDT**********************************************************************
2019-11-01 18:08:00.524 PDT
2019-11-01 18:08:00.527 PDTPOST500498 B2.2 sChrome 78 https://model-zsairbvdca-uc.a.run.app/upload/documents
2019-11-01 18:08:01.329 PDTGET404437 B4 msChrome 78 https://model-zsairbvdca-uc.a.run.app/favicon.ico

请帮忙

nltk.downloader 命令将尝试打开 NLTK 下载器 GUI,这在 App Engine 上不起作用。

相反,您需要遵循 "manual installation" 说明:https://www.nltk.org/data.html#manual-installation

这就是我实际所做的,并且奏效了。由于我正在使用 Docker 和 GCP,我需要更新 Docker 文件以便 GCP 知道如何构建图像:

RUN python -m nltk.downloader all -d /usr/local/nltk_data

我从GCP得到的日志是这样的:

2019-11-08 18:39:32.900 PST Attempted to load [93mtokenizers/punkt/PY3/english.pickle[0m
2019-11-08 18:39:32.900 PST
2019-11-08 18:39:32.900 PST Searched in:
2019-11-08 18:39:32.900 PST - '/home/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/local/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/local/share/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/local/lib/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/share/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/local/share/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/lib/nltk_data'
2019-11-08 18:39:32.900 PST - '/usr/local/lib/nltk_data'
2019-11-08 18:39:32.900 PST - ''

这里真正的问题不是把 nltk 数据放在哪里,而是 GCP 不会足够频繁地重新启动 docker 图像,所以我必须手动推送新的 docker 图像到 GCP 图像存储库,并从云端部署它 运行!