Приложение Python Flask в IBM cloud / bluemix с библиотекой Textblob, создающей исключение - textblob.exceptions.MissingCorpusError

1

Я пытаюсь запустить приложение флага python с помощью некоторой текстовой аналитики (с использованием TextBlob) в IBM cloud/Bluemix.I получить следующую ошибку после развертывания приложения с помощью команды 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

Теги:
flask
ibm-cloud
nltk
textblob

1 ответ

0
Лучший ответ

Кажется, у вас нет nltk.txt в корневом каталоге вашего развернутого приложения. Плагины Cloud Foundry Python имеют встроенную поддержку NLTK. В текстовом файле содержится информация о том, какие корпуса необходимо установить во время развертывания.

Пример содержимого nltk.txt:

wordnet averaged_perceptron_tagger brown sentence_polarity

Убедитесь, что это одна строка, никаких дубликатов и никаких странных символов...

  • 0
    Привет, Хенрик! Я последовал твоей рекомендации, добавив nltk.txt в корневую папку. Также попытался добавить один из наборов данных, как упомянуто в документации CF «Коричневая сеть слов». Этот пакет был установлен, пока я нажимал на приложение. Но проблема осталась, поэтому начал добавив еще несколько наборов данных, особенно те, которые упомянуты в download_corpora (коричневый, пункт, wordnet, conll2000, maxent_treebank_pos_tagger, movie_reviews), так как я не знал, какой набор данных решит мою проблему. Но та же ошибка выскакивает.
  • 0
    Какую копору использует ваше приложение? Можете ли вы увидеть из журналов, что некоторые корпорации загружены? Изменяется ли сообщение об ошибке? Пожалуйста, добавьте команду, показывающую, как вы нажимаете приложение.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню