1.はじめに
- 日本語wikipediaのデータをBigQueryに投入した。
- wikiextractorというライブラリと、pandasではなくて polarsを利用した。
2.日本語wikipediaデータを使いたい
- 「最も「ありそうで存在しない漢字」は何か?」を読んで「ありそうでない熟語」をどう作ればいいかなと実験したくなり、その中で日本語wikipediaデータをBigQueryに投入したくなった。
- 他の投稿を見るとMySQLデータをcsvにしてから投入するのが楽そう、と思ったけど、python(というかColaboratory)でやるとしたらどうするのかと検討して下記のような方法を思いついた。
3.日本語wikipediaデータを取得する。
- いろいろなメタデータもあるみたいだけど、本文と見出しがあればいいので、下記のファイルを指定してダウンロード。
!curl -o jawiki-latest-pages-articles.xml.bz2 https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
でOK。
4.データ加工(ライブラリ)
- wikiextractorを使う。
- 直接bz2を指定できるので楽。コマンド一覧を見て、のちの利用を考えて--jsonを指定しておくのがミソでした。抽出に少し時間がかかった。
!pip install wikiextractor
!python -m wikiextractor.WikiExtractor /content/jawiki-latest-pages-articles.xml.bz2 --json
このような感じに抽出結果が適当なサイズに分かれてtextフォルダ以下に入っている
5. データフレームに入れてcsvに吐き出す。
- 抽出結果が、textフォルダ以下に入っているので、1jsonファイルに集めていく。
!cat text/*/* > alljson.json
- これをpandasで入れようとするとクラッシュするので、polarsで実行。
#!pip install polars
import polars as pl
df = pl.read_ndjson("alljson.json")
df.write("wikidata20230113.csv")
6. BigQueryに投入
#from google.colab import auth
#auth.authenticate_user()
#GCSにコピー
!gsutil cp /content/wikidata20230113.csv gs://**適当な場所**/wikidata20230113.csv