自分んとこのサーバで Wiki-40b 使いたいけど、コーパス使いたいだけなのに Tensorflow のインストールからとかやってらんねえ。というときのメモ。
事前知識
- Wiki40-b:
-- https://hironsan.hatenablog.com/entry/how-to-use-wiki40b - Google Colab から Google Drive へファイルアクセス可能する
-- https://www.teamxeppet.com/colab-googledrive-mount/
コード
Google Colab で以下を実行。
コード
import tensorflow_datasets as tfds
(ds_train, ds_valid, ds_test), ds_info = tfds.load(
name='wiki40b/ja', split=['train', 'validation', 'test'], with_info=True)
結果
Downloading and preparing dataset Unknown size (download: Unknown size, generated: 2.19 GiB, total: 2.19 GiB) to ~/tensorflow_datasets/wiki40b/ja/1.3.0...
Dl Completed...: 100%
20/20 [00:09<00:00, 6.21 file/s]
Dataset wiki40b downloaded and prepared to ~/tensorflow_datasets/wiki40b/ja/1.3.0. Subsequent calls will reuse this data.
コード
print(tfds.__version__)
結果
4.6.0
書き出し先のディレクトリ(ここでは「wiki40b」)をあらかじめ GoogleDrive に用意しておく。
コード
import zipfile
with zipfile.ZipFile('/content/drive/MyDrive/wiki40b/wiki40b_tfds_'+ tfds.__version__ +'.zip',
'w', compression=zipfile.ZIP_DEFLATED) as zf:
for ds, split in [[ds_valid, 'validation'], [ds_test, 'test'], [ds_train, 'train']]:
with zf.open(split+'.txt', 'w') as fout:
for ds_elem in ds.as_numpy_iterator():
fout.write(ds_elem['text'])
tensorflow_datasets から呼び出した Wiki-40b は文字列型がバイナリなので、デコードせずにそのまま zipファイルの中に流し込んでる。
実行したら上で用意しておいたディレクトリ内に「wiki40b_バージョン.zip」というファイルができている。
zip を解凍すると、
- train.txt
- validation.txt
- test.txt
というテキストファイルが3つ入っている。