Образец руководства для начала работы с Flask и PythonAnywhere

Создание вашего первого веб-приложения для суммирования текста и его развертывание с помощью PythonAnywhere.

Вступление

Резюмирование текста относится к технике сокращения длинных фрагментов текста. Намерение состоит в том, чтобы создать связное и четкое резюме, содержащее только основные моменты, изложенные в документе.

Автоматическое суммирование текста - одна из самых сложных и интересных задач в области машинного обучения и обработки естественного языка (НЛП).

В этой статье мы собираемся создать простое приложение для суммирования текста с использованием Flask, фреймворка веб-приложений Python. Если вы любите читать, но у вас нет времени на длинный текст, то наше приложение станет для вас лучшим решением.

В этом руководстве мы сможем создать веб-приложение Text Summarizer с помощью Flask и некоторых замечательных пакетов NLP, таких как SpaCy, NLTK, Gensim и Sumy, и разместить его на PythonAnywhere. Мы назовем это приложение Summerise.

Оглавление

  1. Подходы к обобщению текста
  2. Пакеты НЛП, которые мы использовали в этом приложении
  3. Создание нашего веб-приложения с помощью Flask
  4. Разверните наше приложение с помощью PythonAnywhere
  5. Что дальше?

Подходы к обобщению текста

Есть две основные категории того, как резюмировать текст в НЛП:

Резюме на основе извлечения. Эти методы включают извлечение ключевых фраз из исходного текста и их комбинирование для создания резюме. Вот почему определение правильных предложений для резюмирования важно в экстрактивном методе.

Резюме на основе абстракции: эти методы генерируют совершенно новое резюме с использованием передовых техник НЛП. Когда абстракция применяется для резюмирования текста в задачах глубокого обучения, она может преодолеть грамматические несоответствия извлекающего метода.

Однако алгоритмы реферирования текста, необходимые для абстракции, разработать сложнее, поэтому в этой статье для простоты мы сосредоточимся на технике извлекающего реферирования.

Пакеты НЛП, которые мы использовали в этом приложении

NLTK (набор средств естественного языка) используется для таких задач, как токенизация, лемматизация, стемминг, синтаксический анализ и т. д. В этой библиотеке есть инструменты почти для всех задач НЛП.

Spacy - главный конкурент НЛТК. Эти две библиотеки можно использовать для одних и тех же задач.

Gensim - это модуль, который предоставляет функции для обобщения текстов. Подведение итогов основано на ранжировании текстовых предложений с использованием разновидности алгоритма TextRank.

Сумы - простая библиотека и утилита командной строки для извлечения резюме из простого текста. Пакет содержит простую структуру оценки текстовых резюме.

Создание нашего веб-приложения с помощью Flask

В этом руководстве мы шаг за шагом покажем вам, как создать простое приложение Python Flask.

Flask - это микрофреймворк для Python, основанный на Werkzeug, Jinja 2 и добрых намерениях.

Мы предполагаем, что пользователь уже имел опыт работы со следующим:

Настройка среды разработки

Прежде чем мы начнем с технических материалов, нам нужно сначала настроить нашу среду. Однако, возможно, у вас уже есть то, что нам действительно нужно, если вы с этим знакомы.

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

В общем, что нам понадобится:

  1. Загрузите Anaconda для соответствующей вам операционной системы. Для Windows вы захотите установить версию Python 3, и мы рекомендуем графический установщик. Есть 64-битная версия и 32-битная версия, которые зависят от вашего компьютера. Фактически, Anaconda будет поставляться с множеством пакетов для анализа данных. После того, как вы скачали Anaconda, вы сможете запускать Python из командной строки после завершения процесса установки.

2. Поскольку вы уже настроили Anaconda и Python, все в порядке. Теперь давайте настроим нашу среду разработки. Мы видим, что у нас есть Visual Studio в Anaconda Navigator. Вам просто нужно нажать кнопку запуска.

Давайте покажем вам, как установить полезное расширение для веб-разработки:

  • В Visual Studio Code перейдите к расширениям и установите пакет расширений Web Development Essentials. Это пакет расширений с расширениями, которые чрезвычайно полезны для веб-разработчиков (пример: Live server, Bracket Pair Colorizor, Auto Rename Tag и т. Д.)

3. Теперь мы настраиваем виртуальную среду с помощью инструмента командной строки или терминал существует в коде VS (настраивать виртуальную среду необязательно, но мы рекомендуем использовать ее, потому что вы сможете безопасно запускать наш код). . Поэтому для удобства мы уже создали файл requirements.txt, который вы можете использовать для установки с одной строкой, которую будут использовать все библиотеки.

Чтобы использовать этот файл в командной строке, вам нужно cd (сменить каталог) туда, где вы сохранили распакованную версию этого кода.

Итак, перейдем к нашей командной строке, найдем requirements.txt и покажем вам, как создать виртуальную среду, а затем легко установить все библиотеки, необходимые для проекта.

Давайте активируем нашу виртуальную среду и установим пакеты, которые понадобятся нам для этого проекта:

Для справки код этого проекта доступен на моем GitHub.

Запуск приложения

Настройте папку проекта, как показано ниже. В папке шаблонов будет файл index.html, который будет отображаться на веб-сайте. app.py - это файл, в который будет помещена вся наша логика Flask. Не называйте файлы flask.py, потому что это конфликтует с самим Flask. Статическая папка будет содержать папки css, js, images и video.

Чтобы отобразить приложение локально, запустите $python app.py на своем терминале и перейдите по адресу http://127.0.0.1:5000, чтобы увидеть свое приложение.

Разверните наше приложение с помощью PythonAnywhere

Вы хотели развернуть свои веб-приложения Python на живом сервере? Теперь это возможно с помощью PythonAnywhere, который дает нам доступ к серверу Linux через серверный терминал, к которому мы можем получить доступ из нашего интернет-браузера. В этой части мы рассмотрим шаги по настройке PythonAnywhere. Давайте начнем!

1. Настройка учетной записи:

Мы можем легко подписаться на бесплатный тарифный план на PythonAnywhere (Учетная запись для начинающих), что даст нам доступ к 500 МБ дискового пространства. Если нам нужно больше ресурсов сервера, мы можем перейти на один из платных планов.

2. Перейдите в пункт меню Интернет и нажмите кнопку Добавить новое веб-приложение, нажмите Далее, затем нажмите Flask и щелкните последнюю версию Python, а затем снова щелкните Далее, чтобы принять путь к проекту.

Вот и все. Вы можете посетить свое веб-приложение на https://yourusername.pythonanywhere.com. (измените имя пользователя на свое фактическое имя пользователя PythonAnywhere). Это URL-адрес вашего приложения. Если вы хотите загрузить свой собственный проект, выполните следующие действия:

  1. В разделе Код страницы меню Интернет щелкните Перейти в каталог рядом с Исходным кодом.

2. Удалите файл flask_app.py.

3. Используйте кнопку Загрузить файл, чтобы загрузить свой собственный app.py файл Python и создать шаблоны и статический каталог в каталогах. и загрузите туда свои файлы.

4. В разделе Код страницы меню Интернет щелкните файл конфигурации WSGI . Замените flask_app на app и сохраните файл.

5. Перейдите в консоли, щелкните в Bash и установите все библиотеки, необходимые для этого проекта.

6. Перейдите на страницу меню Интернет и нажмите кнопку Обновить.

Теперь ваше приложение Flask должно работать на https://yourusername.pythonanywhere.com. Если у вас возникнут проблемы, просто проверьте файл журнала ошибок.

Запустить приложение



Что дальше?

Автоматическое суммирование текста - горячая тема для исследований, и в этой статье мы рассмотрели только основные и простые советы по этой теме. В следующий раз мы рассмотрим технику резюмирования абстрактного текста, в которой глубокое обучение играет большую роль. Кроме того, мы также можем заняться следующими задачами:

Специальные алгоритмы резюмирования:

  • Резюмирование текста с использованием RNN и LSTM
  • Резюмирование текста с использованием генеративных состязательных сетей (GAN)

Добавьте больше трюков:

  • Подсчитайте количество слов в тексте
  • Рассчитайте время, когда резюмируете текст

Интерфейсный дизайн:

  • Сделайте внешний вид нашего приложения более привлекательным.

Заключение

Я думаю, что Flask - отличный фреймворк специально для тех, кто только начинает работать в этой области. И я действительно надеюсь, что этот пост помог вам понять концепцию создания и развертывания веб-приложения для суммирования текста.

Я постараюсь осветить технику резюмирования абстрактного текста в одной из будущих статей. Между тем, не стесняйтесь использовать раздел комментариев ниже, чтобы сообщить мне свои мысли или задать любые вопросы, которые могут у вас возникнуть по этой статье.

Приятного чтения, удачного обучения и удачного программирования.

Прежде чем ты уйдешь

Соответствующий исходный код можно найти здесь.