著作権が消滅した作品や著者が許諾した作品のテキストを公開しているインターネット上の電子図書館「青空文庫」。
公開されている作品のテキストデータは公式サイトから個別にダウンロードすることが可能ですが、実は青空文庫のGitHubリポジトリからもダウンロードすることができます。
作品を個別に鑑賞するためではなく、テキストデータを機械学習などの目的で利用する場合、ファイルを一度にダウンロードできるGitHubリポジトリからのダウンロードが便利かもしれません。
今回は青空文庫のデータをGitHubリポジトリからダウンロードする方法、およびデータの利用方法などを説明します。
青空文庫データの一括保存方法
基本的には青空文庫のリポジトリも通常のソフトウェアプロジェクトと同様に、「git clone」を利用してローカルにコピーすることができます。
git clone https://github.com/aozorabunko/aozorabunko.git
ただしリポジトリの容量は13GB(記事執筆時)とかなり大きく、この方法では途中でcloneが止まってしまう事もあるようです。その場合最新だけで良いならば以下のような方法もあります。
git clone --depth 1 https://github.com/aozorabunko/aozorabunko.git
もしくはsvnを使って「svn checkout」する方法もあるようです。
svn checkout https://github.com/aozorabunko/aozorabunko
svnの場合途中で失敗しても「svn cleanup」と「svn checkout」を繰り返すことでダウンロードが継続できます(gitの場合最初からとなります)。
その他GitHubのダウンロードボタンを利用する方法もあります。
なお手元の環境ではかなり時間がかかりましたが、通常の「git clone」で成功しました。
青空文庫リポジトリの構造
青空文庫リポジトリの構造は以下のようになっています。
▲「cards > 作品番号 > fiels」の下に存在するzipファイルにテキストデータが保存されています。
個別にzipファイルを解凍していけば作品のテキストファイルを取り出すことができるわけですが、どこかのフォルダにまとめて一気に解凍したい場合、例えば以下のようなコマンドが使用できます。
find cards -name '*.zip' -exec cp {} text \; cd text unzip '*.zip'
テキストファイルの文字コードはShift-JISです。UTF-8に変換したい場合nkfなどで可能です。
まとめ
青空文庫プロジェクトには公式のGitHubリポジトリが存在し「git clone」を利用してローカルにコピーすることができます。研究や仕事のために大量のテキストデータが必要な場合、まとめてコピーできるのは便利です。
なお青空文庫のGitHubからのダウンロードに関しては、公式FAQで以下のように説明されています。
青空文庫のデータ一式は github にも置かれ、毎日更新されています。公開サーバーで削除したものを消してないという難もありますが、あるがままの状態でかまわなければご利用ください。