Образец руководства для начала работы с Flask и PythonAnywhere
Создание вашего первого веб-приложения для суммирования текста и его развертывание с помощью PythonAnywhere.
Вступление
Резюмирование текста относится к технике сокращения длинных фрагментов текста. Намерение состоит в том, чтобы создать связное и четкое резюме, содержащее только основные моменты, изложенные в документе.
Автоматическое суммирование текста - одна из самых сложных и интересных задач в области машинного обучения и обработки естественного языка (НЛП).
В этой статье мы собираемся создать простое приложение для суммирования текста с использованием Flask, фреймворка веб-приложений Python. Если вы любите читать, но у вас нет времени на длинный текст, то наше приложение станет для вас лучшим решением.
В этом руководстве мы сможем создать веб-приложение Text Summarizer с помощью Flask и некоторых замечательных пакетов NLP, таких как SpaCy, NLTK, Gensim и Sumy, и разместить его на PythonAnywhere. Мы назовем это приложение Summerise.
Оглавление
- Подходы к обобщению текста
- Пакеты НЛП, которые мы использовали в этом приложении
- Создание нашего веб-приложения с помощью Flask
- Разверните наше приложение с помощью PythonAnywhere
- Что дальше?
Подходы к обобщению текста
Есть две основные категории того, как резюмировать текст в НЛП:
Резюме на основе извлечения. Эти методы включают извлечение ключевых фраз из исходного текста и их комбинирование для создания резюме. Вот почему определение правильных предложений для резюмирования важно в экстрактивном методе.
Резюме на основе абстракции: эти методы генерируют совершенно новое резюме с использованием передовых техник НЛП. Когда абстракция применяется для резюмирования текста в задачах глубокого обучения, она может преодолеть грамматические несоответствия извлекающего метода.
Однако алгоритмы реферирования текста, необходимые для абстракции, разработать сложнее, поэтому в этой статье для простоты мы сосредоточимся на технике извлекающего реферирования.
Пакеты НЛП, которые мы использовали в этом приложении
NLTK (набор средств естественного языка) используется для таких задач, как токенизация, лемматизация, стемминг, синтаксический анализ и т. д. В этой библиотеке есть инструменты почти для всех задач НЛП.
Spacy - главный конкурент НЛТК. Эти две библиотеки можно использовать для одних и тех же задач.
Gensim - это модуль, который предоставляет функции для обобщения текстов. Подведение итогов основано на ранжировании текстовых предложений с использованием разновидности алгоритма TextRank.
Сумы - простая библиотека и утилита командной строки для извлечения резюме из простого текста. Пакет содержит простую структуру оценки текстовых резюме.
Создание нашего веб-приложения с помощью Flask
В этом руководстве мы шаг за шагом покажем вам, как создать простое приложение Python Flask.
Flask - это микрофреймворк для Python, основанный на Werkzeug, Jinja 2 и добрых намерениях.
Мы предполагаем, что пользователь уже имел опыт работы со следующим:
- Pip & virtualenv.
- HTML, CSS и Bootstrap.
Настройка среды разработки
Прежде чем мы начнем с технических материалов, нам нужно сначала настроить нашу среду. Однако, возможно, у вас уже есть то, что нам действительно нужно, если вы с этим знакомы.
Но если это не так, это не проблема, потому что я собираюсь описать, что вам нужно для настройки среды.
В общем, что нам понадобится:
- Загрузите 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-адрес вашего приложения. Если вы хотите загрузить свой собственный проект, выполните следующие действия:
- В разделе Код страницы меню Интернет щелкните Перейти в каталог рядом с Исходным кодом.
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 - отличный фреймворк специально для тех, кто только начинает работать в этой области. И я действительно надеюсь, что этот пост помог вам понять концепцию создания и развертывания веб-приложения для суммирования текста.
Я постараюсь осветить технику резюмирования абстрактного текста в одной из будущих статей. Между тем, не стесняйтесь использовать раздел комментариев ниже, чтобы сообщить мне свои мысли или задать любые вопросы, которые могут у вас возникнуть по этой статье.
Приятного чтения, удачного обучения и удачного программирования.
Прежде чем ты уйдешь
Соответствующий исходный код можно найти здесь.