Специалистам по анализу данных и инженерам по машинному обучению часто бывает сложно развернуть свои проекты и модели, над настройкой которых они так усердно работали (с точностью 99,89%). Для некоторых это означает научиться использовать Flask для развертывания своей модели. Обычно это непросто, поскольку большинство из них не являются веб-разработчиками.
Моя ситуация была похожей, пока я не встретил Streamlit; отличный новый способ легко развертывать приложения DS / ML, не будучи профессионалом в веб-разработке. Я был шокирован тем, насколько легко развернуть мою модель и проекты Data Science с помощью Streamlit. Для меня Streamlit - это потрясающий фреймворк, которого я ждал, который можно сравнить с Shiny для пользователей R. Но что делает Streamlit таким классным?
Ниже приведены некоторые из причин, по которым Streamlit является крутым;
- Это БЕСПЛАТНО с открытым исходным кодом; Круто, правда? Я знаю. Он бесплатный и с открытым исходным кодом, поэтому вы можете использовать его, коммерциализировать и делиться им.
- УЧИТЬСЯ ЛЕГКО; Кривая обучения для Streamlit равна нулю, потому что это чистый питон без обратных вызовов или скрытого состояния. Итак, если вы знаете Python, вы знаете Streamlit. Я создал 3 классных приложения для машинного обучения за день. Все, что мне нужно было сделать, это обратиться к их замечательной официальной документации. НИКАКИХ МУЛЬТФИЛЬМ !!
- Работает со ВСЕМ; Streamlit работает с большинством, если не со всеми фреймворками машинного обучения; от Tensorflow и Pytorch до Scikit-learn, до Seaborn, Altair, Plotly и многих других.
- Простота установки; установка Streamlit аналогична установке любого другого пакета python PERIOD! Вы можете сделать это с помощью pip.
- Впереди еще больше; У них также есть планы добавить развертывание в один клик. Так что ждите большего.
Итак, теперь вы понимаете, почему я одержим этим фреймворком?
В этой и ряде других статей я проведу вас через весь этап создания и развертывания 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. Таким образом, мы настоятельно рекомендуем вам сесть на борт прямо сейчас (если вы еще этого не сделали), чтобы стать частью этого удивительного путешествия.