理想的 Web 應用開發設計全端。但專業分工下,ML/NLP 工程師不見得有時間專研,因此某種 (不是 jupyter notebook
) 符合下列條件的前端是需要的。
我們一開始先用你熟悉的方式快速上手 web apps 的概念
Streamlit
與 Gradio 都是選項之一。Streamlit
是一個 python-based web application 架構,可以很快上手建立原型,探索互動經驗,與機器學習模型成果。
我們先學習來如何安裝、創建一個 web app 來感覺一下。妳需要安好:
python 3.7 (or later)
VS code
常用指令快速鍵 (可參考別人並建立自己的清單),例如
Cmd+j
(Ctrl+j
) 開啟/關閉終端機
Cmd+b
開啟/關閉檔案總管
Cmd+SHIFT
切換檔案;Cmd+SHIFT+p
執行常用任務
目的在於加速開發速度,而已。
參考:語言計算技能入門
mkdir nlpWeb
cd nlpWeb
那就開始進入Streamlit
的世界了。
pip install streamlit
# check four demos
streamlit hello &
mkdir plot_demo_app
cd plot_demo_app
touch plot_demo_app.py
import streamlit as st
import time
import numpy as np
複製網頁上的 plotting demo 程式碼到 plot_demo_app
終端機執行 streamlit run plot_demo_app.py
Voila!
如法炮製
myApp
)。myApp.py
)。import streamlit as st
st.write('我的第一個')
streamlit run myApp.py
(可以用 Ctrl+c
關掉)Exploratory data analysis and Visualization
crash course
https://github.com/lopentu/nlp_web
git clone https://github.com/lopentu/nlp_web.git
clone
下來。myApp.py
複製到這個 repo 目錄下。git add .
git commit -m 'added my script'
git push
在
sli.do
(#nlpweb) 打入你的 repo link
The data contains size measurements for three penguin species
penguins.csv
)> mkdir pengu_app
> cd pengu_app
> touch pengu.py
pengu.py
import streamlit as st
import pandas as pd
st.title('Penguins')
# import data
pengu_df = pd.read_csv('penguins.csv')
st.write(pengu_df.head(10))
streamlit run pengu.py
使用 st.selectbox()
讓使用者可以選擇不同變項。
選擇後要執行的函式(如 scatterplot
)。
調整視覺(如:色調與形狀)
st.write() prints out nearly any Python objects
可以使用 jupyter notebook
先確認後 (忽略 st.
),再複製到 streamlit
。
Jupyter notebook
in VS codeData manipulation in Streamlit
pandas
)。Allow the user to filter out penguins based on their gender?
@st.cache()
這一行,有助加速。Visualization is fundamental to Data Science and related fields.
可以利用 streamlit
原生的(Native graphics functions),和第三方的圖形函示庫。包括:
(a) Seaborn + Matplotlab
: 統計製圖
(b) Plotly
:互動式
(c) Bokeh
:特別適合在瀏覽器呈現的互動視覺
(d) Vega-Altair
: 宣告式視覺化
(e) PyDeck
: 與地圖有關
short term memory