Специалистам по анализу данных и инженерам по машинному обучению часто бывает сложно развернуть свои проекты и модели, над настройкой которых они так усердно работали (с точностью 99,89%). Для некоторых это означает научиться использовать Flask для развертывания своей модели. Обычно это непросто, поскольку большинство из них не являются веб-разработчиками.

Моя ситуация была похожей, пока я не встретил Streamlit; отличный новый способ легко развертывать приложения DS / ML, не будучи профессионалом в веб-разработке. Я был шокирован тем, насколько легко развернуть мою модель и проекты Data Science с помощью Streamlit. Для меня Streamlit - это потрясающий фреймворк, которого я ждал, который можно сравнить с Shiny для пользователей R. Но что делает Streamlit таким классным?

Ниже приведены некоторые из причин, по которым Streamlit является крутым;

  1. Это БЕСПЛАТНО с открытым исходным кодом; Круто, правда? Я знаю. Он бесплатный и с открытым исходным кодом, поэтому вы можете использовать его, коммерциализировать и делиться им.
  2. УЧИТЬСЯ ЛЕГКО; Кривая обучения для Streamlit равна нулю, потому что это чистый питон без обратных вызовов или скрытого состояния. Итак, если вы знаете Python, вы знаете Streamlit. Я создал 3 классных приложения для машинного обучения за день. Все, что мне нужно было сделать, это обратиться к их замечательной официальной документации. НИКАКИХ МУЛЬТФИЛЬМ !!
  3. Работает со ВСЕМ; Streamlit работает с большинством, если не со всеми фреймворками машинного обучения; от Tensorflow и Pytorch до Scikit-learn, до Seaborn, Altair, Plotly и многих других.
  4. Простота установки; установка Streamlit аналогична установке любого другого пакета python PERIOD! Вы можете сделать это с помощью pip.
  5. Впереди еще больше; У них также есть планы добавить развертывание в один клик. Так что ждите большего.

Итак, теперь вы понимаете, почему я одержим этим фреймворком?

В этой и ряде других статей я проведу вас через весь этап создания и развертывания 3 потрясающих приложений ML с Streamlit. Мы начнем с многоязычного сентиментального анализа. Сентиментальный анализ, также известный как анализ мнений; это ветвь обработки естественного языка, которая включает извлечение настроений в тексте. Пакет VADER позволяет легко проводить сентиментальный анализ на Python.

Мы будем использовать следующие пакеты;

pip install streamlit # the awesome framework
pip install vaderSentiment # for sentimental analysis
pip install googletrans # for language translation

Теперь, когда мы установили наши пакеты, давайте протестируем нашу установку Streamlit, запустив приложение hello world;

streamlit hello # run the hello app

вы должны увидеть запуск и запуск приложения в браузере по умолчанию по адресу http: // localhost: 8501. Ура! ваше первое приложение Streamlit. Но теперь давайте построим свою.

Сначала давайте создадим папку и файл, который вы можете вызвать в нем app.py. Затем импортируйте библиотеки и инициализируйте их с помощью следующего кода в файле app.py;

import streamlit as st
from googletrans import Translator
from vaderSentiment.vaderSentiment import \ SentimentIntensityAnalyzer
analyser = SentimentIntensityAnalyzer() # initialize it
translator = Translator() # initialize

Итак, мы импортировали Streamlit и дали ему псевдоним st, а также импортировали Translator из googletrans и SentimentIntensityAnalyzer из vaderSentiment, а затем инициализировали их.

Затем мы воспользуемся методом Streamlit .markdown, чтобы написать текст в формате Markdown, который будет служить заголовками и подзаголовками для наших посетителей. Кстати, Markdown - это язык разметки, похожий на HTML, но более крутой, без всех многочисленных тегов, которые вы должны объявлять при использовании HTML.

st.markdown(‘# Machine Learning App Registry’)
st.markdown(
 ‘#### These are projects from Artificial Intelligence Movement(AIM) Led by [Boadzie Daniel](http://boadzie.surge.sh/)')
st.markdown(‘## App 1: Multilingual Sentimental Analysis’)
st.write(‘Sentimental Analysis is a branch of Natural Language Processing \
 which involves the extraction of sentiments in text. The VADER package makes it easy to do Sentimental Analysis’)

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

# The sentiment analyzer function
def sentiment_analyzer_scores(sentence):
   trans = translator.translate(sentence).text # extracting   translation text
   score = analyser.polarity_scores(trans) # analyzing the text
   score = score[‘compound’]
   if score >= 0.05:
      return ‘The sentiment of your text is Positive’
   elif score > -0.5 and score < 0.05:
      return ‘The sentiment of your text is Neutral’
   else:
      return ‘The sentiment of your text is Negative’
   return score

Это потрясающий мозг нашего приложения. Мы создали функцию, которая принимает предложение в качестве аргумента, переводит предложение, анализирует настроение и возвращает оценку с соответствующим удобочитаемым сообщением. Круто, правда? Я знаю!

Теперь, как нам отобразить эту функцию во внешнем интерфейсе, используя данные, полученные от пользователя? Удивительно, но Streamlit делает это до смешного просто.

sentence = st.text_area(‘Write your sentence’) # we take user input
if st.button(‘Submit’): # a button for submitting the form
   result = sentiment_analyzer_scores(sentence) # run our function  on it
   st.balloons() # show some cool animation
   st.success(result) # show result in a Bootstrap panel

В приведенном выше коде мы сохраняем ввод пользователя в переменной под названием предложение, затем мы используем условие для визуализации сентиментального значения на панели Bootstrap, усыпанной красивой воздушной анимацией при нажатии кнопки отправки. .

Теперь мы можем запустить наше приложение вот так

streamlit run app.py # if app is the name of your file

и приложение должно запуститься в нашем браузере по умолчанию по адресу http: // localhost: 8501. (Полный код этой и многих других статей можно найти на моей странице GitHub)

И вот так у нас есть готовый многоязычный анализатор настроений, не требующий особого труда! Как это круто? (Приложение работает здесь)

Это лишь одно из многих замечательных приложений DS / ML, которые вы можете создать с помощью Streamlit. В следующих статьях этой серии будут рассмотрены другие приложения, такие как прогнозирование заработной платы, классификатор цветов ириса и другие. Я твердо верю, что Streamlit - это будущее приложений для обработки данных и машинного обучения для разработчиков Python. Таким образом, мы настоятельно рекомендуем вам сесть на борт прямо сейчас (если вы еще этого не сделали), чтобы стать частью этого удивительного путешествия.