データ前処理ナレッジ共有コミュニティ

誰？
▸ 三宅 智久▸ 株式会社リクルート
R&D イノベーティブテクノロジー研究戦略室
Megagonプロジェクトグループ 所属▸ もともとWebエンジニア、後にPM▸ Contact▸ miyaketomohisa[at]megagon.ai▸ facebook.com/miyaketomohisa

誰？

Megagon?

▸ 三宅 智久▸ 正式名称 Megagon Labs

▸ 株式会社リクルート
R&D イノベーティブテクノロジー研究戦略室
Megagonプロジェクトグループ 所属▸ もともとWebエンジニア、後にPM▸ Contact▸ miyaketomohisa[at]megagon.ai▸ facebook.com/miyaketomohisa

http://www.megagon.ai/▸ 旧Recruit Institute of Technology
アメリカ、シリコンバレーに拠点を構えるリクルートグループの先端技術研究所▸ 研究所所長は元GoogleのAlon Halevy▸ 自然言語処理、データベースなどのスペシャリストが所属

Agenda1. データ前処理の課題
2. BigGorillaとは？
3. 主要なライブラリ4. 包括的なチュートリアルデータソース

多岐にわたったタスクが存在し閉じられていてデータ獲得不可避でデータ抽出

予測

工数が大きく

データ洗浄

決定的なデータ統合

データ前処理可視化

分析

Agenda1. データ前処理の課題
2. BigGorillaとは？
3. 主要なライブラリ
4. 包括的なチュートリアル

とは？

BigGorilla.org▸ Megagon Lab.とウィスコンシン大学によりス
タート▸ データ前処理にまつわる問題を解決するためのWEBコミュニティ＝集合知を作り上げる▸ 4つのカテゴリからなるオープンソースPython
ライブラリデータベース▸ チュートリアル▸ 相談できるフォーラム▸ 誰でも投稿可能

データ収集
データ抽出
データ洗浄
スキーマ
マッチング＆マージング

エンティティマッチング

その他
ワークフロー管理などなぜ「BigGorilla」なのか…

データキュレーションにおける問題は”800ポンド(362kg)のゴリラ”
https://www.youtube.com/watch?v=7I2uQei_j_4

Michael Stonebraker(Postgres, MIT, Cambrigde)

Agenda1. データ前処理の課題
2. BigGorillaとは？
3. 主要なライブラリ
4. 包括的なチュートリアル

INNOVATIVE TOOLS

主要ライブラリ

Magellan▸ https://sites.google.com/site/anhaidgroup/projects/magellan▸ ウィスコンシン大学 Prof.AnHaiとWalmartLabs、Megagon Lab. らによって開発。
▸ 以下3つによって構成▸ py_entitymatching: 複数フィーチャ（カラム）類似度を計算しテーブルをジョイン▸ py_stringsimjoin: 2つデータセットを類似度に基づきペアリング▸ py_stringmatching: 文字列トークナイザと類似度計算

Magellan
テーブル A

テーブル B

year

movie

2001.8.2

Lord of theRings

leading_actor

E.Woodyear

1989

movie

leading_actor

Back to theMicheal J Fox
Future Ⅱ

2008.6.27

Wall E

B.Burtt2010

Inception

Leonardo
DiCaprio

1989.3.1

Back to the
Future Part 2

M.J.Fox2008

Wall-EBen Burtt

FlexMatcher▸ https://pypi.org/project/flexmatcher/▸ 複数のテーブルスキーマ結合を機械学習を用いて行なう
テーブル A

テーブル Byear

movie

imdb_rating

Title

Producedmovie_rating

2001

Lord of theRings

8.8

The Godfather

1972

9.2

2010

Inception

8.7

The Matrix

1999

8.7

En2Kana▸ 英単語とカタカナをマッチングさせるための辞書と変換ライブラリ。
▸ 英単語を発音記号に変換（翻字）することで、カタカナと精度高くマッチングさせることが可能。

英字表記

カタカナ表記Angelエンジェル▸ 元言語と発音記号の辞書があれば、英語以外の言語も対応化。
▸ 活用例：▸ データ名寄せ、ゆらぎ解消▸ 検索エンジン「ゼロ件ヒット」問題▸ オープンソース化に向けて準備中。

発音

発音に準じたカタカナ

参考ローマ字読みéɪndʒəl

エインジェルアンゲル

KOKO▸ https://github.com/biggorilla-gh/koko▸ 平叙文から、ルーズな条件文で文字列を取り出すことができるエクストラクションツールUsagi▸ https://github.com/biggorilla-gh/usagi▸ 複数データベースのメタデータを横断検索できるエンタープライ
ズ向けデータディスカバリーシステム。リクルート内では「Meta-Looking（メタルキング）」として稼働。

Agenda1. データ前処理の課題
2. BigGorillaとは？
3. 主要なライブラリ
4. 包括的なチュートリアル

INTRODUCTORY TUTORIAL

チュートリアル包括的チュートリアル▸ https://www.biggorilla.org/data-preparationusing-koko▸ Wikipediaの「航空機事故一覧」からhtmlをスクレーピング＆データ整形▸ 前述のKOKOを使用し、航空会社名を抽出▸ 航空会社, 日付, 便名, 事故現場の地名をデータフ
レーム(構造化データ)に格納https://en.wikipedia.org/wiki/List_of_accidents_and_incidents_involving_commercial_aircraft

・・・包括的チュートリアル：続き▸ https://www.biggorilla.org/schema-matching-entity-linking▸ 前半で作成したテーブルと、出処の違う飛行機事故データベース(下記)を前述のFlexmatcherを用いてスキーママッチング。

Date2584 08/28/1972

182 06/24/1929

980 12/23/1948

Time

14:30

NaN

NaN

かなりリッチなデータベース

Location

Operator

Papua, New
GuineaMilitary - Royal
Australian Air
Force

St. Paul,Minnesota

Near Madrid,
Spain

Northwest
Orient Airlines

Iberia Airlines

Flight #NaN

NaN

NaN

RouteTypeLae - Port
Moresbyde HavillandCanada DHC-4
Caribou

St. Paul Minneapolis

Madrid Barcelona

Ford 5-AT-B TriMotor

Douglas DC-3
(C-47-DL)

Registration

A4-233NC7416

EC-ABK

cn/In

AboardFatalities

29

NaN

85-AT-002

4256

27

GroundSummary

25

While traveling0 through avalley, the pilot
re...

1

Crashed near
0 Indian Moundspark shortly
after ...

27

Crashed into
0 Pandols
Mountain while
en route.

スキーママッチング

Date2584 08/28/1972

182 06/24/1929

980 12/23/1948

Time

14:30

NaN

NaN

Location

Operator

Papua, New
GuineaMilitary - Royal
Australian Air
ForceSt. Paul,
Minnesota

Near Madrid,SpainNorthwest
Orient Airlines

Iberia Airlines

Flight #NaN

NaN

NaN

RouteTypeLae - Port
Moresbyde Havilland
Canada DHC-4
Caribou

St. Paul Minneapolis

Madrid Barcelona

Ford 5-AT-B TriMotor

Douglas DC-3
(C-47-DL)

Registration

A4-233NC7416

EC-ABK

cn/In

AboardFatalities

29

NaN

85-AT-002

4256

27

GroundSummary

25

While traveling0 through avalley, the pilot
re...

1

Crashed near
0 Indian Moundspark shortly
after ...

27

Crashed into
0 Pandols
Mountain while
en route.

エンティティマッチング▸ スキーママッチングによって発見された「共通の項目」を比較対象に、py_entitymatchingを用いてエンティティ（行）を突き合わせる＝名寄せ_id

l_id

r_id

l_Airline

l_Datel_Location

October 31,
1994,

Roselawn,
Indiana,
Chicago

4184

597

597

269

American664
Eagle

491

491

200

513 Aeroflot

October 11,
1984

Tupolev,
Omsk, Russia

444 Aeroflot

January 13,
1977,

Tupolev,
Tu-104

405

405

160

l_Flight

r_Operator

AmericanEagle

r_Flight #r_Location_sim_score

r_Fatalities

4184

Roselawn,
Indiana68

0.03352 Aeroflot

3352

Near Omsk,
Russia174

0.03843 Aeroflot

Near Alma Ata,
3843 Kazakastan,
USSR

960.0

おさらい▸ データ前処理は、不可避・膨大・決定的、かつノウハウが手に入りにくい。
▸ BigGorillaは、その手に入りくかった知識の共有・獲得の場である。
▸ 一般的なツールから、ニッチながら強力な道具までリストアップされており、その模範的な組み合わせ方、使い方が参照できる。
▸ 誰でも投稿できる。
▸ 役立ちそうなツールを「知ってる」「作った」という方はぜひ投稿してください。

ご清聴
ありがとうございました。