unstructured: 非構造化データを簡単に扱うためのPythonライブラリ

unstructured: 非構造化データを簡単に扱うためのPythonライブラリ AI

非構造化データは、テキスト、画像、音声など、定義された形式がないデータのことを指します。
このようなデータは情報量が豊富である一方で、その扱いはしばしば複雑です。

Pythonのunstructuredライブラリは、非構造化データを簡単かつ効率的に扱うためのツールを提供します。
そのため、データ分析や機械学習プロジェクトにおいて重宝されます。

本記事の内容

  • unstructuredとは?
  • unstructuredのインストール
  • unstructuredの動作確認

それでは、上記に沿って解説していきます。

unstructuredとは?

unstructuredは非構造化データを扱うためのPythonライブラリです。
テキスト、画像、音声など、あらゆる形式の非構造化データの操作を簡単にするために設計されています。

このライブラリは、機械学習やデータ分析プロジェクトにおいて非常に有用であり、
非構造化データから価値ある情報を効率的に抽出する手助けをします。

データの読み込み、前処理、分析を行うための豊富な機能が備わっています。
それにより、開発者が複雑なデータ処理タスクを容易に、そして迅速に実施できるようにします。

unstructuredのインストール

現時点におけるunstructuredの最新バージョンは、以下となります。

更新頻度は高く、よくメンテナンスされています。

システム要件としては、Python 3.9以降とあるぐらいです。

OSは、問わずにWindowsでもmacOSでもインストール可能になります。
もちろん、Linuxにもインストール可能です。

インストールするには、次のコマンドを実行します。

pip install unstructured

ただし、上記でインストールした場合は以下のファイルのみが扱える対象になります。

  • plain text files
  • HTML
  • XML
  • JSON
  • Emails

出来る限り多くのファイルを処理したい場合は、以下のコマンドを用います。

pip install "unstructured[all-docs]"

そうすると、以下のファイルを扱えるようになります。

"csv", "doc", "docx", "epub", "image", "md", "msg", "odt", "org", "pdf", "ppt", "pptx", "rtf", "rst", "tsv", "xlsx"

ただ、Pythonが動く環境でそれぞれのファイルを処理できることが前提です。
そのため、Windowsでフルに対応しようとなると、結構大変な作業になります。

フルで対応する方法は、以下のページで解説があります。

Full Installation - Unstructured 0.13.0 documentation

大変な作業であるためなのか、Dockerを利用したインストールが提供されています。

Docker Installation - Unstructured 0.13.0 documentation

とりあえず、まずデフォルトのインストールをオススメします。
必要になれば、その都度対応すれば良いと思います。

unstructuredの動作確認

デフォルトで取得可能なHTMLを対象に動作確認を行います。
以下は、サイトからページの内容を取得するサンプルコードです。

from unstructured.partition.html import partition_html

url = "https://www.cnn.co.jp/fringe/35216284.html"
elements = partition_html(url=url)
print("\n\n".join([str(el) for el in elements]))

上記を実行すると、該当するページの記事内容が取得できています。
該当ページのようにarticleタグがあれば、その要素内のテキストを取得しています。

articleタグがない場合は、bodyタグの中身を全部取るようです。

例えば、Example Domain(https://example.com/)のソースは以下となっています。

このページを対象とした場合、次のような結果となります。

でも、全然十分ですね。
unstructuredを用いれば、スクレイピングを自分で行う必要がなくなります。

確かに、これは便利です。

タイトルとURLをコピーしました