「PyCon APAC 2018 in Singapore」参加レポート

Day1:プライバシーを機械学習でどう守るか?/機械学習の基礎と応用

この記事を読むのに必要な時間:およそ 6 分

セッション:“Build a Data-Driven Web App That Everyone Can Use”―Galuh Sahid, Data Engineer at Midtrans

(横山直敬)

こんにちは,横山です。初の海外カンファレンス参加ということで,英語でも理解できそうな入門的な内容のトークを聴きました。1つ目は機械学習モデルを組み込んだWebアプリの作成について紹介します。

データサイエンティストが自身の作った機械学習モデルを他の人に使ってもらいたいと考えたときに,どのような方法を取るでしょうか? スクリプトファイルを配って各自で実行してもらうということが考えられますが,リポジトリからダウンロードしてPythonコマンドで実行するといったいろいろな手間が発生します。機械学習モデルを組み込んだWebアプリを作ることで,そのような手間をかけずに,自分の作ったモデルを使ってもらうことができます。

この発表で作るWebアプリには以下の機能があります。

  • ユーザーは自分のデータを入力できる
  • 入力されたデータに従ってサードパーティのAPIなどからデータを取得する
  • 自分が作った学習済みモデルに,取得したデータを入力する
  • 学習済みモデルが出力した予測結果をグラフとして画面に表示する

Webアプリを作るには,覚えるべきことがたくさんあるように思えます。ですが,HTMLとPythonだけで作ることができるのです。

機械学習はscikit-learnとPandas,WebアプリはFlask,結果の表示にはmatplotlibを使います。

機械学習モデルを組み込んだWebアプリの作成には,いくつかの注意点があります。

  • 信頼できるデータを読み込んでいることを確認する
  • モデルの作成と予測で使う機械学習ライブラリはバージョンを揃える
  • それぞれのバージョンが異なると,意図しない結果が出ることもある

このような解説に合わせてコード例も提示されました。最後に,Webアプリをさらにインタラクティブにする方法として,ReactやVue.js, D3.jsなどJavaScriptとの組み合わせの提案と,実際に作ったWebアプリの事例の紹介がありました。

セッションの感想

要点を押さえた構成のスライドが読みやすく,コード例も提示されることもあって,英語が飛び交う海外カンファレンスに圧倒されつつあった私にとっても理解しやすい発表でした。

Pythonを学ぶWebサービスに携わっているため,Webと機械学習の融合には学習の応用の可能性として興味を感じました。

Flaskは軽量Webフレームワークで覚えやすいですし,機械学習についてもチュートリアルが充実しているので発表で得た学びを自分の手で試してみたいと思いました。

セッション:Teaching Computers ABCs: A Quick Intro to Natural Language Processing―Lory Nunez, Data Scientist/Data Engineer at J.P. Morgan

(横山直敬)

引き続き,横山です。2つ目に聴いた,自然言語処理のユースケースについての発表について紹介します。

自然言語処理のテクニックやツール,ユースケース,そしてオープンソースライブラリを使って自然言語処理アプリケーションを作る方法について解説する内容でした。

自然言語処理を使うことによって,テキストデータからさまざまな情報を得ることができます。

自然言語処理の手法として,Embedding(単語埋め込み・ベクトル化とも呼ばれる)というものがあります。この発表で紹介されたEmbeddingの手法は以下の2種類です。

単語の出現頻度で考える手法
単語数カウント・TF-IDF
ある単語の周辺に出現する別の単語の確率的に扱う手法
Word2vec

この発表ではEmbeddingを応用した2つのWebアプリをユースケースとして紹介しました。

  • Wikipediaのテキストをもとに人名同士の類似度を表示するWebアプリ
  • 災害時のツイートの内容から緊急度を予測するWebアプリ

発表時のみの公開のようで,記事執筆時点ではアクセスできませんでした。

また,自然言語処理の応用する際の自然言語処理の流れ(データ取得,データ解析,前処理,ベクトル化,機械学習,モデルの評価)とそれぞれの部分で使われるライブラリが,コード例を交えながら解説されました。代表的なライブラリとしては以下のようなものがあります。

  • データ取得: json, Beautiful Soup
  • データ解析: re, scikit-learn
  • 前処理: NLTK, gensim
  • ベクトル化: gensim, scikit-learn
  • 機械学習: scikit-learn
  • モデルの評価: scikit-learn

セッションの感想

Embeddingの仕組みを表す図表やサンプルアプリの紹介を交えた説明があり,自然言語処理の初学者や未経験者にとってもEmbeddingがどのような手法なのかイメージしやすい発表でした。

日本語の文章を扱う自然言語処理では,単語を区切る処理が必要になります。そのためのライブラリを導入する必要があり,少し複雑になります。日本語での自然言語処理に興味のある方も,まずはここで解説された手法やライブラリを用いて,英文を対象にした自然言語処理から入門してみるのがよいでしょう。

著者プロフィール

taisa(たいさ)

Cocolive株式会社 CTO。SIerを経てアライドアーキテクツにてWeb広告・SNSマーケティング関連のWebサービス開発を経験し,副部長としてマネージメントしながらテックリードとして複数のWebサービス立ち上げに従事。その他にPyCon関連のコミュニティ活動や「AIPyハンズオン」勉強会の主催を行っている。共著本に『React,Angular,Vue.js,React Nativeを使って学ぶ はじめてのフロントエンド開発』がある。

Twitter:@taisa831
GitHub:@taisa831
Blog:https://github.com/taisa831


清田史和(きよたふみかず)

PyCon JP 2012-2016実行員で最近は地元の九州でのPythonの普及活動SnapDishサービス開発を手がけている。

Vuzz Inc.取締役CTO,株式会社ナチュラルコーヒー代表取締役,学校法人北部学園ほくぶ幼稚園 理事長


横山直敬(よこやまなおたか)

株式会社ビープラウド所属。SIerを経てPythonエンジニアとなる。Python学習プラットフォームPyQの開発チームにて問題作成やシステム改善に携わっている。また,Pythonコミュニティにも参加しており,PyCon JP2017-2018スタッフ,みんなのPython勉強会運営メンバーを務めている。

Twitter:@NaoY_py
GitHub:NaoY-2501
Blog:http://nao-y.hatenablog.com/


寺田学(てらだまなぶ)

株式会社CMSコミュニケーションズ代表取締役/一般社団法人PyCon JP代表理事。

Pythonの魅力を伝えるべく,初心者向けや機械学習分野のPython講師を精力的に務めている。

Twitter:@terapyon
GitHub:@terapyon
Blog:https://www.cmscom.jp/blog

バックナンバー

「PyCon APAC 2018 in Singapore」参加レポート

コメント

コメントの記入