Приложение Python Flask в IBM cloud/bluemix с библиотекой Textblob, создающей исключение - textblob.exceptions.MissingCorpusError
Я пытаюсь запустить приложение фляги Python с некоторой функцией анализа текста (используя TextBlob) в IBM cloud/Bluemix. Я получаю следующую ошибку после развертывания приложения с помощью команды cf push (см. Ниже). Согласно документации на сайте TextBlob, это Исключение выдается, когда пользователь пытается использовать функцию, для которой требуется набор данных или модель, которых у пользователя нет в их системе.
error:
Error while running the app:
textblob.exceptions.MissingCorpusError
MissingCorpusError:
Looks like you are missing some required data for this feature.
To download the necessary data, simply run
python -m textblob.download_corpora
or use the NLTK downloader to download the missing data:
http://nltk.org/data.html
If this doesn't fix the problem, file an issue at
https://github.com/sloria/TextBlob/issues.
Теперь мой вопрос: я добавил Flask,Textblob и NLTK в мой файл require.txt, как показано ниже. Пожалуйста, предложите, как я могу запустить команду python -m textblob.download_corpora, чтобы сделать этот отсутствующий набор данных / модель доступным для среды bluemix. Если команда не запущена упомянуто выше, есть ли другой способ, которым мы можем сделать эту работу. Примечание: это приложение отлично работает в локальной системе.
requirement.txt content:
Flask==0.12.2
cloudant==2.4.0
textblob==0.15.1
nltk==3.3
Это ошибка / предупреждение, которое я получаю, когда приложение развертывается с помощью команды push.
-----> Downloading NLTK corpora...
! nltk.txt not found, not downloading any corpora
Правка, заданная Хенриком: Когда я запускаю команду python -m textblob.download_corpora, в моей системе загружаются приведенные ниже корпорации. Я упоминаю тот же список в файле nltk.txt
`[nltk_data] Downloading package brown to
[nltk_data] C:\Users\MohanaKrishnaV\AppData\Roaming\nltk_data...
[nltk_data] Package brown is already up-to-date!
[nltk_data] Downloading package punkt to
[nltk_data] C:\Users\MohanaKrishnaV\AppData\Roaming\nltk_data...
[nltk_data] Package punkt is already up-to-date!
[nltk_data] Downloading package wordnet to
[nltk_data] C:\Users\MohanaKrishnaV\AppData\Roaming\nltk_data...
[nltk_data] Package wordnet is already up-to-date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data] C:\Users\MohanaKrishnaV\AppData\Roaming\nltk_data...
[nltk_data] Package averaged_perceptron_tagger is already up-to-
[nltk_data] date!
[nltk_data] Downloading package conll2000 to
[nltk_data] C:\Users\MohanaKrishnaV\AppData\Roaming\nltk_data...
[nltk_data] Package conll2000 is already up-to-date!
[nltk_data] Downloading package movie_reviews to
[nltk_data] C:\Users\MohanaKrishnaV\AppData\Roaming\nltk_data...
[nltk_data] Package movie_reviews is already up-to-date!
Finished.
А вот так выглядит мой nltk.txt
brown wordnet
averaged_perceptron_tagger
brown
sentence_polarity
sentiwordnet
subjectivity
words
punkt
maxent_treebank_pos_tagger
movie_reviews
conll2000
Я добавил дополнительные корпусы в свой nltk.txt, как показано ниже, надеюсь, это не проблема
sentence_polarity
sentiwordnet
subjectivity
words
Вот как выглядит журнал ошибок:
-------> Buildpack version 1.5.22
-----> Installing pip-pop (0.1.1)
Downloaded [https://buildpacks.cloudfoundry.org/dependencies/manual-
binaries/pip-pop/pip-pop-0.1.1-d410583a.tar.gz]
-----> Installing pipenv (4.0.1)
Downloaded [https://buildpacks.cloudfoundry.org/dependencies/manual-
binaries/pipenv/pipenv-4.0.1-148f753f.tar.gz]
$ pip install -r requirements.txt
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-----> Downloading NLTK corpora...
-----> Downloading NLTK packages: brown wordnet
averaged_perceptron_tagger
brown
sentence_polarity
sentiwordnet
subjectivity
words
punkt
maxent_treebank_pos_tagger
movie_reviews
[nltk_data] Downloading package brown to
[nltk_data] /tmp/contents525031002/deps/0/python/nltk_data...
[nltk_data] Package brown is already up-to-date!
[nltk_data] Error loading wordnet : Package 'wordnet\r' not found in
[nltk_data] index
Error installing package. Retry? [n/y/e]
Traceback (most recent call last):
File "/tmp/contents525031002/deps/0/python/lib/python2.7/runpy.py", line
174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/tmp/contents525031002/deps/0/python/lib/python2.7/runpy.py", line
72, in _run_code
exec code in run_globals
File "/tmp/contents525031002/deps/0/python/lib/python2.7/site-
packages/nltk/downloader.py", line 2272, in <module>
halt_on_error=options.halt_on_error)
File "/tmp/contents525031002/deps/0/python/lib/python2.7/site-
packages/nltk/downloader.py", line 681, in download
choice = input().strip()
EOFError: EOF when reading a line
Exit status 0
Staging complete
Uploading droplet, build artifacts cache...
Uploading build artifacts cache...
Uploading droplet...
Uploaded build artifacts cache (64.3M)
Uploaded droplet (105.6M)
Uploading complete
Stopping instance 6cbf3cbc-aef1-4a73-a7ab-d562a606fe5b
Destroying container
Successfully destroyed container
Вот как я нажимаю на мое приложение: cf login >> [Я предоставляю свои данные для входа] >>cf push
1 ответ
Кажется, что у вас нет nltk.txt
в корневом каталоге вашего развернутого приложения. Пакеты сборки Cloud Foundry Python имеют встроенную поддержку NLTK. Текстовый файл содержит информацию о том, какие корпуса необходимо установить во время развертывания.
Пример содержимого nltk.txt
:
wordnet averaged_perceptron_tagger brown sentence_polarity
Убедитесь, что это одна строка, без дубликатов и без странных символов...