После добавления nltk.download ('words') Google Cloud Run - PullRequest
1 голос
/ 01 ноября 2019

У меня запущено приложение Google Cloud Run на GCP. После добавления следующей модификации произошел сбой приложения:

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

Я подозреваю, что мне нужно вручную установить эти файлы на стороне сервера GCP, но я не знаю, как это сделать.

Журнал Cloud Run выглядит следующим образом: я не знаю, как загрузить ресурс для Cloud Run, обычно я использую 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

Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 09 ноября 2019

Это то, что я на самом деле сделал, и это сработало. Поскольку я использую Docker и GCP, мне нужно обновить Dockerfile, чтобы 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 не будет повторно инициировать образ докера достаточно часто, поэтому я должен вручную вставить новый образ докера в репозиторий изображений GCP,и разверните его из Cloud Run!

0 голосов
/ 01 ноября 2019

Команда nltk.downloader попытается открыть графический интерфейс загрузчика NLTK, который не будет работать в App Engine.

Вместо этого вам нужно будет следовать инструкциям "ручной установки": https://www.nltk.org/data.html#manual-installation

...