書籍概要

作ってわかる[入門]Streamlit
Pythonによる実践Webサービス開発

著者
発売日
更新日

概要

Streamlitは,PythonスクリプトをWebサービスに簡単に⽣まれ変わらせるフレームワークで,フリーなコミュニティクラウドを介してサービスを公開することも可能です。機械学習やデータサイエンスとの相性がよいことで知られていますが,Streamlitを使うと,一般的なPythonスクリプトをWebベースで手軽にデータ可視化したり,GUIアプリケーションにすることができます。

本書では,マニュアル作成向けの表形式ページ,ワードクラウドなどができるテキスト分析,AI連携チャットボット,画像処理,顔検出,音声データからのテキスト起こし,そしてデータ可視化など,Streamlitの機能を使いこなすための方法を,それぞれサンプルを題材にしながらわかりやすく解説します。

こんな方におすすめ

  • Pythonスクリプトの可視化,GUI作成を手軽に行ってみたい方
  • Pythonプログラミングの基礎を学んで,次のステップの知識を得たい方

目次

  • はじめに

第1章 Hello World

1.1 目的

  • アプリケーションの仕様
  • 紹介するStreamlitの機能
  • コード

1.2 外部データについて

1.3 外部ライブラリについて

1.4 Streamlitの導入

  • インストール
  • ライセンス
  • サーバ起動
  • 初回の挨拶
  • 利用状況の収集
  • サーバへのアクセス
  • gio エラー
  • ファイアウォールの設定

1.5 サーバの設定

  • 設定の変更方法
  • 設定の確認
  • 利用状況収集をオフ
  • ブラウザ起動をオフ
  • バインドアドレスとポート番号
  • HTTPS アクセス
  • マジックの抑制

1.6 Hello Worldアプリケーション

  • コード
  • インポート
  • タイトル表示
  • スクリプトの実行
  • ビジー
  • 降雪アニメーションの追加
  • 章節見出しコマンド
  • テキストフォーマットコマンド

1.7 Streamlit コミュニティクラウド

  • Streamlit コミュニティクラウドとは
  • アプリケーションの種類と制限
  • 2 つのアカウント
  • Streamlit クラウドアカウントの作成
  • GitHub アカウントとの連携
  • Streamlit へのログイン

1.8 クラウドへのアプリケーションの配置

  • 作成する前に
  • 依存するサードパーティパッケージ
  • 作成
  • アクセス許可
  • 古いアプリケーション
  • アプリケーションの削除
  • モニタリング

1.9 付録:風船アニメーションアプリケーション

  • 風船アニメーション
  • コード
  • コードの表示と実行

第2章 チートシート

2.1 目的

  • アプリケーションの仕様
  • 紹介するStreamlitの機能
  • コード

2.2 外部データについて

2.3 外部ライブラリについて

2.4 チートシートアプリケーション

  • コード
  • マークダウン
  • HTML
  • マジック
  • 一般出力コマンド
  • ページ設定
  • ロゴマークの表示
  • 段組みコンテナ
  • 段組みコンテナのバリエーション
  • with文
  • 詳細折り畳みコンテナ

2.5 付録:マルチリンガルアプリケーション

  • 言語の切り替え
  • コード
  • 実行例
  • クエリ文字列の解析
  • リクエストヘッダの解析
  • Accept-Language
  • acceptlang

第3章 テキスト分析

3.1 目的

  • アプリケーションの仕様
  • 青空文庫テキストのダウンロードと整形
  • ワードクラウド
  • 感情分析
  • キャッシング
  • 紹介するStreamlit の機能
  • コード

3.2 外部データについて

  • 青空文庫
  • IPA 品詞リスト
  • IPA フォント
  • 感情分析モデル

3.3 外部ライブラリについて

  • Requests
  • Janome
  • WordCloud
  • Pillow
  • Transformers

3.4 青空文庫ダウンローダー

  • 手順
  • コード
  • 実行例
  • データダウンロード
  • Zipからのテキスト抽出
  • 余分な情報の除去
  • 文単位の分割

3.5 ワードクラウド生成器

  • 手順
  • コード
  • 時間測定
  • 実行例
  • 単語分割
  • 指定の品詞の単語のみを抽出
  • 頻度辞書の作成
  • ワードクラウド画像生成
  • IPA品詞リスト

3.6 感情分析器

  • 手順
  • コード
  • 実行例

3.7 テキスト分析アプリケーション

  • コード
  • キャッシング
  • st.cache_data とst.cache_resource
  • タブコンテナ
  • テキスト入力フィールド
  • イベントとプログラムの流れ
  • パスワード入力フィールド
  • フィールド幅の調整
  • エラーメッセージ表示
  • 例外メッセージ表示
  • 処理の停止
  • レベルに応じたメッセージの表示
  • 項目選択メニュー
  • 画像の表示
  • チェックボックス
  • 要素を1 つしか収容しないコンテナ
  • プログレスバー
  • 棒グラフ

3.8 付録:スライドショーアプリケーション

  • スライドショー
  • コード

第4章 チャットボット

4.1 目的

  • アプリケーションの仕様
  • ルビ振りボット
  • セラピーボット
  • 通訳ボット
  • 紹介するStreamlitの機能
  • コード

4.2 外部データについて

4.3 外部ライブラリについて

  • KAKASI
  • イライザ
  • Transformers

4.4 ルビ振りボット

  • 手順
  • コード
  • 実行例
  • ルビ振り

4.5 セラピーボット

  • コード
  • 実行例

4.6 通訳ボット

  • コード
  • 実行例

4.7 チャットボットアプリケーション

  • コード
  • サイドバーコンテナ
  • プルダウンメニュー
  • 状態管理
  • ボットの選択
  • チャット入力フィールド
  • チャット入力フィールドの配置
  • 履歴の表示
  • チャット専用コンテナ

第5章 画像処理

5.1 目的

  • アプリケーションの仕様
  • ファイルアップロード
  • フォーマット変換とダウンロード
  • リサイズ
  • ポスタリゼーション
  • 紹介するStreamlit の機能
  • コード

5.2 外部データについて

5.3 外部ライブラリについて

  • Pillow

5.4 メインページ

  • ファイルの構成
  • アクセスURL
  • コード
  • ページの構成

5.5 画像のアップロード

  • 機能
  • コード
  • ファイルのアップロード
  • 画像のダウンロード
  • ウィジェットのkey オプション
  • イベントコールバック

5.6 画像の変換とダウンロード

  • 機能
  • コード
  • 水平線
  • ポップオーバー
  • ポップオーバーと詳細折り畳み
  • ラジオボタン
  • 画像フォーマットの変換
  • ダウンロードボタン

5.7 リサイズ

  • 機能
  • コード
  • スライダー
  • 画像へのアクセス
  • リサイズ

5.8 ポスタリゼーション

  • 機能
  • コード
  • 数値入力フィールド
  • 最頻値フィルタ
  • 減色

5.9 付録:マルチページアプリケーション

  • マルチページ(データ共有なし)
  • ファイル名の構造
  • LaTeX
  • JSON
  • メトリック

第6章 カメラ映像処理

6.1 目的

  • アプリケーションの仕様
  • 画像キャプチャ
  • 紹介するStreamlit の機能
  • コード

6.2 外部データについて

  • SSD モデル
  • Haar 特徴検出器
  • カメラについて

6.3 外部ライブラリについて

  • OpenCV
  • NumPy

6.4 画像変換

  • 機能
  • コード
  • バイト列をnp.ndarray 画像に変換
  • UploadedFile からnp.ndarray 画像に変換
  • URL からnp.ndarray 画像に変換
  • サイズ制限

6.5 顔検出

  • コード
  • モデルファイルを読み込む
  • 入力画像の準備
  • 計算開始
  • 検出結果の解釈

6.6 顔領域の処理

  • コード
  • 矩形の描画
  • スマイリーの張り付け

6.7 アニメ絵化

  • ノンフォトリアリスティックレンダリング
  • コード
  • スタイライゼーション

6.8 カメラ映像処理アプリケーション

  • コード
  • 入力切り替え
  • カメラスナップショット
  • OpenCV 画像の表示
  • キャプション

6.9 付録:Haar特徴検出器を用いた顔検出

  • コード
  • 実行例
  • Haar 特徴検出器ファイルの読み込み
  • 画像のモノクロ化
  • コントラスト調整
  • 計算開始

第7章 テキスト起こし

7.1 目的

  • アプリケーションの仕様
  • 紹介するStreamlit の機能
  • コード

7.2 外部データについて

  • OpenAI Whisper モデル
  • テスト音声データ

7.3 外部ライブラリについて

  • OpenAI Whisper
  • FFmpeg

7.4 テキスト起こし

  • コード
  • 実行例
  • モデルデータの読み込み
  • テキスト起こし
  • 言語の指定方法
  • FP16 の警告

7.5 テキスト起こしアプリケーション

  • コード
  • ボタン
  • クリックイベント
  • キャッシュのクリア
  • オーディオプレイヤー
  • 一時ファイル

7.6 付録:句読点の挿入

  • マスク言語モデル
  • コード
  • 入力テキストの分解
  • 欠落の推定
  • 実行例

第8章 データアプリケーション

8.1 目的

  • アプリケーションの仕様
  • グラフ
  • 地図
  • 紹介するStreamlitの機能
  • コード

8.2 外部データについて

  • 総務省統計局
  • 人口データの構成
  • 都道府県庁所在地データ

8.3 外部ライブラリについて

  • pandas

8.4 表データの読み込みと整形

  • 手順
  • コード
  • 実行例
  • Excel を読み込む
  • 行見出しを整形する
  • 列見出しを整形する
  • 行見出しのリストを得る
  • 特定の行だけを抽出する
  • 転置する
  • CSV を読み込む
  • 表を結合する

8.5 データアプリケーション

  • コード
  • リンク付きボタン
  • データフレームの表示
  • グラフの選択
  • 折れ線グラフと棒グラフ
  • 都道府県の選択と転置
  • 地図
  • 年の選択

8.6 付録:選択型スライダー

  • オブジェクトを選択肢にする
  • コード
  • 実行例
  • 色名と値の対応

第9章 ブラックジャック

9.1 目的

  • アプリケーションの仕様
  • ルール
  • 紹介するStreamlit の機能
  • コード

9.2 外部データについて

9.3 外部ライブラリについて

9.4 ブラックジャック

  • コード
  • 実行例
  • トランプの表現
  • トランプの裏面
  • 山札
  • 手札

9.5 ブラックジャックアプリケーション

  • コード
  • 状態管理
  • 状態1:プレイ中
  • 強制再実行
  • 状態2:プレイヤーのどぼん
  • 状態3:勝負

付録A GitHub

A.1 アカウント作成

  • GitHub トップページ
  • メールアドレス、パスワード、ユーザ名を設定
  • アカウント検証
  • ログアウト
  • ログイン

A.2 リポジトリの作成

  • リポジトリ名
  • ソースファイルの追加
  • さらにファイルの追加
  • ファイルの削除

付録B マークダウン記法

B.1 見出し

B.2 テキスト

  • 普通のテキスト(段落)
  • 絵文字
  • テキストの彩色
  • Google マテリアルアイコン
  • テキストの装飾
  • 文字のエスケープ

B.3 引用文

B.4 リスト

B.5 コード

B.6 リンク

B.7 横線

B.8 表

付録C Streamlitコマンドリスト

付録D HTMLタグリスト

  • 索引

サポート

ダウンロード

本書のサンプルコードをダウンロードできます。適宜展開してご利用ください。

  • パスワードはviiページ下部に記載しています。
  • パスワードは欧文を数字に変更している箇所がありますのでご留意ください。

(2025年3月3日更新)

ReadersPackage.zip(5MB)

商品一覧