データクレンジングツールopenrefine
一般的に機械学習をしたり統計処理を行う場合、破損していたり、不正確だったり、処理しようとする目的に無関係なデータがあると(いわゆるゴミデータの存在)、結果が不正確になり目的が達成できなくなる。これらを防ぐためにデータを正確かつクリーンに処理する方法がデータクレンジングと呼ばれる手法となる。前回までに行った機械学習の前処理や、自然言語処理したデータの後処理でこれらのデータクレンジング処理が必要になる。
自然言語処理等の文字列系のデータの場合だと、このデータクレンジング処理は、同じ意味を表しているのに表記が微妙に異なっていて同一とみなされないものや重複や誤記などを探し出して正規化する処理になる。一般的な例としては、全角文字と半角文字の違いや、空白文字や区切り記号の有無、人名の異体字の誤りや姓名の分割・併合、法人名の表記(株式会社と(株)の違いなど)、住所や電話番号の表記法などが対象となり、それぞれについて表記ルールを決めて修正や削除などを行なっていくようなものである。
これらのデータクレンジングを行うツールの一つとして「openrefine」がある。これは、googleがgooglerefineという名で所有していたオープンソースを2012年よりオープンソースプロジェクトに移行し、OpenRefineと改名されたもので、エクセルに似た表示形式で表を処理する事が特徴となるが、(1)入出力データがTSV,CSV,EXcel,HTML,XML,JSON等多岐にわたる。(2)Clojure等のコードが内部処理で利用できるため、データの変換がよりフレキシブルに行える。(3)文字列の編集距離によるクラスタリングが行える等の特徴がある。ツールは、ダウンロードページより(2021年2月時点ではv3.4.1)各OSに合ったものをダウンロードできる。macの場合はopenrefine-mac-3.4.1.dmgをダウンロードして生成されたディスクイメージからアプリを移動させる。アプリのインストールが完了すると、ダイヤモンドの形をしたアプリアイコンが生成されるのでそれをクリックするとブラウザが自動的に立ち上がりソフトが起動する。(ブラウザが立ち上がらない場合はlocalhost:3333で立ち上がる)
ファイルのインプットは、「ファイルを選択」のボタンからファイルを選び、「NEXT」を押すと入力データが分析されて以下のようなデータのプレビュー画面となる。
ここでデータの処理が誤っていなければ(データの区切りや、headデータ)、「Create Project」のボタンを押すと以下のような最終的な処理の画面に移行する。
詳しい使い方はPackt社より出版されている「Using OpenRefine」にを参考にすると良い。目次としては、1.Diving Into OpenRefine、2.Analyzing and Fixing Data、3. Advanced Data Operation、Linking Datasetsとなっており、ツールのインストールから具体的な利用までが詳細に記載されている。それらの本を読まなくともクレンジング処理自体は複雑ではないので、ボタンを色々触っていると使い方は見えてくる。以下いくつかの例を示す。
エクセルにない便利な使い方としては「column」「Facet」「Text facet」で処理/表示される”facet”画面だ。これは中にある重複された文字を統合して並べて表示するだけでなく「Cluster」ボタンを押して編集距離のmethodを指定することで、近い文字列まで集めて表示してくれる。これらの機能は文字列だけでなく数値等で利用できるので、この機能を使うことで、データクレンジングを効率的に行う事ができる。
また、「column」「edit cells」「transform」にてpythonやclojureで個々のセルをフレキシブルに処理することも可能で、データ型の変換(数値、日時等)や正規化が容易にできる。
上記に紹介した以外にも様々なデータ処理が可能で、機械学習や自然言語処理を行う際に、わざわざコードを書かなくても気軽にクレンジング処理ができるツールになっている。
コメント
[…] 次回はこれら機械学習や自然言語処理に欠かせない前処理ツールであるopenrefineの紹介を行う。 […]
[…] 生テキストからの処理の処理ツールに関しては、openrefineのようなデータクレンジングツールや類似性の評価のツール等がある。 […]
[…] データクレンジングツールOpenRefine LODで利用されるツール […]
[…] データクレンジングツールOpenRefine […]
[…] データクレンジングツールOpenRefine 自然言語等でのデータクリーニングツール […]
[…] データクレンジングツールOpenRefine 自然言語等でのデータクリーニングツール […]