HOME/ AINOW編集部 /データサイエンスタスクに必要なデータセットを入手するさまざまな方法
2022.06.28

データサイエンスタスクに必要なデータセットを入手するさまざまな方法

最終更新日:

著者のParul Pandey氏はAIスタートアップWeights & Biasesでデータサイエンティストとして働いており、同氏の記事は度々AINOWで紹介してきました(同氏の詳細は同氏公式サイトを参照)。同氏がMediumに投稿した記事『データサイエンスタスクに必要なデータセットを入手するさまざまな方法』では、データサイエンスプロジェクトで活用するデータセットを入手あるいは作成する方法が紹介されています。
Pandey氏は、データの取得あるいは作成の方法として以下のような8項目を紹介しています。

データサイエンスプロジェクトで活用するデータセットを入手あるいは作成する8つの方法
  1. 高度なGoogle検索:検索演算子を用いたGoogle検索をしてデータセットを取得
  2. データセット専門サイト:データセットを集めた専門サイトからデータセットを取得
  3. 現実世界のデータセット:臨床試験データのような現実世界のデータセットを取得
  4. ツールによる画像のダウンロード:各種Chrome拡張機能で画像を一括ダウンロード
  5. HTMLテーブルからのデータ抽出:Googleスプレットシート関数IMPORTHTMLの活用
  6. PDFからのデータ抽出:PythonライブラリのCamelotを利用したデータ抽出
  7. XMLファイルからのデータ抽出:Pythonのモジュールのxml.etree.ElementTreeを利用してXMLファイルを解析してデータ抽出
  8. Pandasメソッドの利用:Pythonのライブラリpandasに含まれるread_clipboard()を使ってクリップボードにコピーしたデータを読み込む

以上の方法を活用するにあたっては、データサイエンスプロジェクトの特徴やデータサイエンスチームのスキルレベルを考慮したうえで最適なものを選ぶとよいでしょう。

なお、以下の記事本文はParul Pandey氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。また、翻訳記事の内容は同氏の見解であり、特定の国や地域ならびに組織や団体を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。
以下の翻訳記事を作成するにあたっては、日本語の文章として読み易くするために、意訳やコンテクストを明確にするための補足を行っています。

ニーズに合ったデータセットを探すためのリソース

これまで(Mediumに投稿するために)書いてきた記事のリストを見ていると、データサイエンスタスクのためのデータセットを入手するというコンセプトに関連するものがかなりあることがわかった。そんな記事には良いデータセットを公開しているウェブサイトを見つけることに的を絞ったものもあれば、カスタムデータセットを作成する方法に注目したものもある。この記事は、さまざまな記事で取り上げた多種多様な(データセットを入手するための)コンセプトをまとめたものだ。元の記事のリンクをたどりながら、複数の(データセット入手に関する)テクニックをまとめたものと考えられる。

・・・

1.高度なGoogle検索

画像は著者が作成

データセットを検索する方法として、Google検索は圧倒的に一般的だ。しかし、検索クエリをカスタマイズすることで正確な結果を得られ、それもより速くできることをご存じだっただろうか。以下の記事では、インターネット上での検索を最適化する3つの方法が見れる。

リンク:高度なGoogle検索

(※訳註1)『データを探すためにより効率的にGoogle検索を使う』には、以下のような3つの高度な検索方法が紹介されている。

データセット検索に使えるGoogle検索の高度なテクニック
  • 検索演算子「filetype」を使って検索するファイルを指定する。
  • 検索演算子「site」を使って検索するウェブサイトを指定する。
  • 「検索オプション」ページからさまざまなファイル形式を指定する。

以上のほかにもGoogle検索ヘルプページ『ウェブ検索の精度を高める』にさまざまな検索演算子が掲載されている。また、レンタルサーバー企業Kinstaが運営するブログの記事『Google検索の便利なコマンド40選─2022年に知らなきゃ損の検索演算子(調査、競合分析、SEOに便利)』にも検索演算子が詳細に解説されている。

・・・

2.データ分析タスクのためのデータセットを探すのに便利なサイト

画像は著者が作成

Google検索は素晴らしいが、良質なデータセットを保有する専門サイトもある。以下の記事では、そのようなデータセット(を集めたサイト)を5つリストアップし、アクセス方法を動画で詳しく説明している。ご心配なさらずともUCI Machine Learning RepositoryKaggle datasetsData.govのような一般的なものは除外し、あまり知られていないものを紹介している。

リンク:データ分析タスクに必要なデータセットを探すのに便利なサイト

(※訳註2)『データ分析タスクに必要なデータセットを探すのに便利なサイト』では、以下のような5つのウェブサイトが紹介されている。

データセットの取得に役立つ5つのサイト

・・・

3.探索的データ分析のスキルを磨くための5つの現実世界のデータセット

現実世界のデータセット

データセットを探さずにすぐに分析に入りたい場合は、この記事が役に立つだろう。理想的な探索的データ分析と可視化を行うのに理想的な5つのデータセットを挙げた。給与データセットや臨床試験レポート、あるいは航空交通データなどを分析できる。嬉しいことにこれらのデータセットのすべてがKaggleで利用可能であるため、ノートブックを動かすだけで始められる。

リンク:探索的データ分析のスキルを磨くための5つの現実世界のデータセット

(※訳註3)『探索的データ分析のスキルを磨くための5つの現実世界データセット』では、以下のような現実世界に関するデータセットが紹介されている。

探索的データ分析のスキルを磨くための5つの現実世界データセット

・・・

4.カスタム画像データセットの作成

画像は著者が作成

もしあなたがディープラーニングに取り組んでいて、データセットを使ったプロジェクトに取り組みたいなら、この記事では画像の一括ダウンロードをかなり簡単にする5つのブラウザ拡張機能を紹介している。ただし、著作権に違反するような画像はダウンロードしないように注意しよう。

リンク:カスタム画像データセットの作成

(※訳註4)『ディープラーニングプロジェクトのためのカスタム画像データセットを作成する』では、インターネットから画像をダウンロードする方法に関して以下のような5つが紹介されている。

画像をダウンロードするのに便利な5つのツール
  • Fatkun Batch Download Image解像度やリンクでダウンロードする画像をフィルタリングできるChrome拡張機能
  • Imageyeピクセルの幅と高さにもとづいて画像をフィルタリングChrome拡張機能
  • Download All Imagesウェブページにあるすべての画像をダウンロードし、ZIPファイルにまとめてくれるChrome拡張機能
  • ImageAssistant Batch Image Downloader画像のURLを一括抽出したり、拡張子や解像度サイズによってフィルタリングできるChrome拡張機能
  • GitHubコードを使う方法:GitHubで公開されているPractical-Deep-Learning-for-Coders-2.0を使って画像をダウンロードする方法。Fastaiのライブラリをインストールする必要がある。

・・・

5.HTMLの表からデータを抽出する

画像は著者が作成

インターネット上で公開されているデータセットは、時としてHTMLの表形式で提供されている。そのような表は一般的に長く、ウェブページ全体に広がっていたりする。また、HTMLフォームで利用可能なデータは動的である。すなわち、一定の間隔でデータが更新されている。その結果、(HTMLの表を)Excelシートにコピーペーストすることは必ずしも便利というわけでない。スクレイピングという手もあるが、もっと簡単な方法がある。GoogleスプレットシートにはIMPORTHTMLという便利な関数があり、この関数はHTMLページ内のテーブルやリストからデータを取り込むのに最適だ。以下の記事では、テーブル(とリスト)をGoogleスプレットシートに取り込むためのエンドツーエンドのプロセスについて説明している。

リンク:GoogleスプレットシートにHTMLテーブルを簡単にインポートする方法

(※訳註5)Googleスプレットシートの関数IMPORTHTMLについては、Google公式ヘルプページも参照のこと。なお、以上の『GoogleスプレットシートにHTMLテーブルを簡単にインポートする方法』では、IMPORTHTMLとQUERY関数を併用して表の指定箇所からデータを抽出する方法も解説している。

・・・

6.PDFからデータを抽出する

画像は著者が作成

PDFから表形式のデータを抽出するのは骨が折れる。しかし、さらに大きな問題は多くのオープンデータがPDFファイルとして提供されていることだ。こうしたオープンデータは、分析して重要な洞察を得るのに非常に重要なものである。だが、PDFに記載されたデータにアクセスすることがボトルネックになる。この記事では、PDFから簡単に表を抽出できるオープンソースのPythonライブラリ、Camelotについて説明する。また、コーディングはしたくないがライブラリの機能は使いたいという人のために、ExcaliburというWebインターフェースについても説明する。

リンク:Camelotを使ってPDFから表形式データを簡単に抽出

(※訳註6)Pythonのパッケージを集めたPython Package Index(PyPI)のCamelotのページはこちらを参照のこと。また、Sansan株式会社のエンジニアブログ「Sansan Builders Blog」の記事『人事異動のデータ化の取り組み 〜 CamelotによるPDFの表データ抽出』には、Camelotを利用した表データ抽出が解説されている。
Excaliburについては、PyPIのこちらのページを参照のこと。また、ITソリューションを基幹業務とする株式会社オプティムのエンジニアブログ「OPTiM TECH BLOG」の記事『ExcaliburによるPDFテーブルデータ抽出を動かしてみる』にExcaliburの使用事例が紹介されている。
この記事の著者Parul Pandey氏のYouTubeチャンネルには、以下のようなExcaliburを使用した時の動画が公開されている。

・・・

7.XMLファイルからの情報抽出

以上のように私たちは、HTMLの表やPDFファイルの形式でデータを扱うことを学んだ。さらにもう1つ、利用する前に加工が必要な形式としてXMLファイルというデータカテゴリーがある。XMLとは、Extensible Markup Language(拡張可能なマークアップ言語)の略である。その名の通り、機械が読める形式と人間が読める形式で、一連のルールを定義して文書をエンコードするマークアップ言語である。この記事では、XMLデータを解析可能なCSVファイルに変換してから、pandasのライブラリに取り込んでさらに解析するための手順を説明する。

リンク:XMLファイルからPandasのDataFrameに情報を抽出する

(※訳註7)『XMLファイルからPandasのDataFrameに情報を抽出する』では、XMLの解析とデータ抽出にPythonのモジュールxml.etree.ElementTreeを利用している。同モジュールの使い方については、オンラインプログラミング学習サービスを提供する株式会社SAMURAIが運営するブログの記事『【Python入門】ElementTreeを使ってXMLの解析に挑戦しよう!』でも解説されている。

・・・

8.クリップボードからpandasのDataFrameにデータを読み込む

この記事は、pandasのread_clipboard()メソッドという非常に興味深い関数が、クリップボードにコピーされたデータからDataFrameを作成することについて書いている。 このメソッドはクリップボードからテキストを読み込んでread_csv()に渡し、パースされたDataFrameオブジェクトを返すのだ。

クリップボードからpandasのDataFrameへのデータの読み込み:画像は著者が作成

リンク:Pandasを使ってクリップボードからDataFrameへ

(※訳註8)read_clipboardについては、こちらのpandasのAPIレファレンスページも参照のこと。

・・・

結論

この記事では、データセットをダウンロードするための複数の技法を紹介している。これらの技法のいくつかは、あなたが次のプロジェクトで冒険するのに必要なデータセットを見つけるのに役に立つはずだ。また、自分でデータセットを作成したり、ダウンロードしたデータから意味のある分析を行ったりもできる。データセットの可能性は青天井なのだ!


原文
『Different ways of getting datasets for your data science tasks』

著者
Parul Pandey

翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する

あなたにおすすめの記事

動画生成AI『Sora』とは|映像業界にとどまらないインパクトを解説

基調講演だけではない。OpenAI、Microsoft、Metaもビジョンを語ったGTC2024セッションまとめ

ChatGPTもGeminiも忘れて、これらの(信じられない)次世代AIツールをチェックしてみよう!

あなたにおすすめの記事

動画生成AI『Sora』とは|映像業界にとどまらないインパクトを解説

基調講演だけではない。OpenAI、Microsoft、Metaもビジョンを語ったGTC2024セッションまとめ

ChatGPTもGeminiも忘れて、これらの(信じられない)次世代AIツールをチェックしてみよう!