OpenRefine(旧称:
Google Refine、さらに以前はFreebase Gridworks)は、データクレンジング、変換、およびデータラングリングのためのスタンドアロンのオープンソース
デスクトップアプリケーションです。見た目はスプレッドシートアプリケーションに似ていますが、よりデータベースに近い動作をします。
基本的な機能と操作
OpenRefineは、各列(カラム)の下にセルを持つデータの各行に対して様々な操作を行います。これは、リレーショナルデータベースのテーブルに非常によく似ています。1つのOpenRefineプロジェクトは1つのテーブルで構成されています。ユーザーは、ファセットと呼ばれるフィルタリング条件を定義して、表示する行を絞り込むことができます。例えば、特定の列が空でない行のみを表示するなどの操作が可能です。
スプレッドシートとは異なり、OpenRefineのほとんどの操作は、表示された行全体に対して実行されます。例えば、あるカラム下のすべてのセルの内容を一括で変換したり、既存のカラムに基づいて新しいカラムを作成することができます。すべての操作はプロジェクト内に保存された単一のデータセットに対して実行され、同じ操作を別のデータセットに繰り返し適用することが可能です。
セルには数式が保存されず、数式はデータ変換に一度だけ使用されます。データ変換には、General Refine Expression Language (GREL) というDSLや、
Jython(Python)やClojureなどの
言語を使用できます。
プログラムにはウェブインターフェースが組み込まれていますが、これはローカルマシン上で動作します。OpenRefineを実行すると、ローカルウェブサーバーが起動し、ブラウザでウェブUIが自動的に開きます。
ソフトウェアの使用例
- - 乱雑なデータのクリーニング: 部分的にしか構造化されていないテキストファイルを扱う際に、変換、ファセット、クラスタリング機能を使用して、構造化されたデータを作成できます。
- - データの変換: 正規化や非正規化などの処理を行いながら、異なるデータ形式に変換できます。
- - ウェブサイトのデータのパース: OpenRefineにはURL取得機能、jsoup HTMLパーサ、DOMエンジンが搭載されており、ウェブサイトからデータを抽出できます。
- - (を返す)ウェブサービスからのデータ取得: 住所のジオコーディングを地理座標系に変換するなど、ウェブサービスからデータを取得し、データセットに追加できます。
- - Wikidataとの名前合わせ: セル内の文字列をWikidataのエンティティにマッピングすることで、データの照合(名寄せ)を行うことができます。
対応するインポートとエクスポートの形式
インポート:
- - TSV、CSV
- - 任意の区切り文字または固定長で区切られたテキストファイル
- - XML
- - RDF triples (RDF/XML, Notation3)
- -
- - Google Spreadsheets、Google Fusion Tables
標準化されていないテキスト形式の場合、行全体をカラムに分割せずにインポートし、後からOpenRefineのツールを使ってカラムを抽出できます。また、アーカイブ(.zip, .tar.gz, .tgz, .tar.bz2, .gz, .bz2)やURLからの直接インポートも可能です。ウェブページをインプットとする場合は、URLのリストを指定して、URL取得機能を使用できます。
エクスポート:
- - TSV
- - CSV
- - Microsoft Excel
- - HTML table
- - Templating exporter: カスタムテンプレートを定義し、MediaWikiのテーブルなどの形式で出力できます。
- - OpenRefineプロジェクト全体は、.tar.gzアーカイブ形式でエクスポートできます。
歴史
OpenRefineは、MetawebによってFreebase Gridworksとして開発が始まり、2010年1月にオープンソース化されました。2010年7月16日に
GoogleがMetawebを買収し、2010年11月10日にFreebase Gridworksは
Google Refineに改名され、バージョン2.0がリリースされました。2012年10月2日、元の開発者であるDavid Huynhが
Googleでの
Google Refineのサポート終了を発表した後、コードベースはオープンソースプロジェクトに移管され、OpenRefineと改名されました。
脚注
公式ウェブサイト