BigGorillaついて概要を調べてみた

データの前処理に興味があり資料を探していたところ、
リクルート人工知能研究所、データ統合および準備のオープンソースエコシステム「BigGorilla」を提供開始 | リクルートホールディングス – Recruit Holdingsというプレスリリースを見つけました。
一見してどういうものなのかよくわからなかったので、概要を調べてみました。
(BigGorillaついて概要を調べてみた – Qiitaより転載しています。)

BigGorillaとは

BigGorilla – Data Integration & Preparation in Python

  • データ前処理におすすめのライブラリが入ったpythonの環境
  • 一部独自実装したライブラリ付き

ネーミングと公式サイトの図から、巨大なフレームワークのような印象でしたが、 いわばライブラリ詰め合わせですね。
(BigGorilla特有のクラスを継承するといったことはない模様)
実際に前処理をやるには、普通にpythonでプログラミングする必要がありそうです。

インストール方法

$ anacondaいれて
$ conda env create biggorilla/py3gorilla
# pyenvを使用している場合は、condaのactivateコマンドをフルパスで指定する必要がある。source activate Py3Gorillaだとシェルが落ちる。
$ source /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/Py3Gorilla/bin/activate Py3Gorilla

参考: さあ、はじめよう | BigGorilla

  • 追記: 2017/07/12時点で試したところ、この方法だと以下のエラーがでて入らなかったです。
  • (6月にアップデートされたファイル名がおかしいせいか、古い方のymlが適用されている気がします。おそらくこれからアップデートで直ると思われます。)
  • 2017/07/21追記: ファイルアップデートされていました。これでドキュメントどおりに入ります。

7/12時点で、無理やりインストールした作業記録

$ conda env create biggorilla/py3gorilla
Collecting urllib==1.21.1
Downloading urllib-1.21.1.tar.gz (226kB)
100% |████████████████████████████████| 235kB 640kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/setup.py", line 191
s.connect((base64.b64decode(rip), 017620))
^
SyntaxError: invalid token
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/
CondaValueError: Value error: pip returned an error.

Files :: Anaconda Cloudからymlをダウンロードしてurllibを指定している行を削除すると、インストールすることはできました。

### 一旦環境を消す
$ conda env remove -n Py3Gorilla

# ローカルで修正したymlファイルを指定して、環境再作成
$ conda env create --name test --file ~/Downloads/Py3Gorilla.yml

# pyenvを使用している場合は、condaのactivateコマンドをフルパスで指定する必要がある。source activate Py3Gorillaだとシェルが落ちる。
$ source /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/test/bin/activate test

# 動作確認用のnotebookを落としてきて起動
$ anaconda download biggorilla/hi_gorilla
$ jupyter notebook hi_gorilla.ipynb

何ができるの? どんなライブラリが入っているか見てみる

Files :: Anaconda Cloudにインストールされるパッケージの一覧があったので、眺めてみます。
公式サイトのコンポーネント一覧でいろいろ紹介されていますが、インストールされるもののはごく一部のようです。
サイトの説明に比べて、意外とミニマムな構成という印象を受けました。
入ってないものは自分でpip installします。

データ収集

  • urllib httpアクセス標準ライブラリ
  • requests urllibよりリッチなhttpsアクセスライブラリ
  • scrapy スクレイピング
  • (tweepy入ってない)

データ抽出

  • beautifulsoup4 webページの読み込み、解析
  • lxml xmlパーサー
  • nltk 自然言語処理(形態素解析とか)

スキーママッチング&マージング

  • FlexMatcher(リクルート研究所製)

データマッチング&マージング

  • Magellan(ウィスコンシン大学開発)
  • py-entitymatching, py-stringmatchingというライブラリの一部として提供されている

データ変換

  • xlrd Excel操作
  • 標準のjson,csv
  • pandas
  • (pdf系入ってない)

スキーママッピング

  • 商用ツールがされててるだけで入ってない?

ワークフロー管理

  • これも入ってない?

その他

依存関係なのか、scikit-learnやjupyter-notebookがはいってる。

独自実装しているライブラリについて

プレスリリースによると、独自で実装しているのは次の3つのライブラリです。


現在、RITはKOKOおよびFlexMatcherというパッケージにて上記b)およびd)を開発しており、 Doan教授のチームではMagellanというパッケージにてf)を開発しています。

FlexMatcher

  • リクルート研究所製スキーママッチングライブラリ
  • 2つのデータ間でデータ項目名が違っても、自動で対応関係を見つけてくれる
  • データの内容を教師データにして、類似度を推定している?
  • (個人的に興味あり)

Magellan

  • ウィスコンシン大学開発データマッチングライブラリ
  • 表記ゆれがあるデータを一つにしたり、住所の名寄せのようなことができる?

KOKO

終わりに

  • 次回は、conda envして実際に環境構築してみたいと思います
  • 余裕があれば、FlexMatcherとMagellanを使ってみたいです。
Please follow and like us:

One thought on “BigGorillaついて概要を調べてみた

  1. […] 前回に引き続き、BigGorilla環境の構築を行いました。 またFlexMatcherのサンプ... designrule.jp/biggorilla%e7%92%b0%e5%a2%83%e3%81%ae%e6%a7%8b%e7%af%89%e3%83%a1%e3%83%a2

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です