Wiki-40B:高品質に加工された、40以上の言語のWikipediaデータセット:AI・機械学習のデータセット辞典
データセット「Wiki-40B」について説明。高品質に加工された、英語や日本語を含む40以上の言語におけるWikipediaテキストが無料でダウンロードでき、自然言語処理の言語モデルの作成などに利用できる。TensorFlowにおける利用コードも紹介。
データセット解説
Wiki-40Bデータセットは、英語や日本語を含む40以上の言語におけるWikipediaのテキストを高品質に加工した、言語モデル用データセットである(図1)。Google Researchが作成し2020年から公開しているので、TensorFlow Datasetsを使うと簡単に使用できる。
ちなみにWikipediaテキストのデータセットとしては、1993年からあるPenn Treebankデータセットや、2006年からあるenwik8データセット、Saleforce Researchが作成し2016年より公開されているWikiText-2データセットとWikiText-103データセットなどもある。またTensorFlow Datasetsでは、2019年3月1日/2020年3月1日/2020年12月1日における言語ごとのダンプのデータセットも提供されている。
Wiki-40Bは、それらと比べて2020年に提供開始と比較的新しいデータセットで、高品質に前処理されているという特徴がある。その前処理の内容としては、
- ページのフィルタリング: あいまいさ回避用のページや、リダイレクトページ、削除されたページ、非エンティティページ(中身がリストや画像のみなど)を除外
- ページ処理: Wikipedia用のマークアップや、非コンテンツのセクション(参照や文献など)、構造化オブジェクト(キャプションや画像など)を削除
が行われている。
前掲の図1を見ると分かるように、1行分のデータには「text」「version_id」「wikidata_id」が含まれているので、基本的には「text」情報を使用すればよい。このtextには、下記に示す4つの境界用マーカーが含まれているので、実際に使用する際にはそれらのマーカーを適切に処理する必要がある。
- _START_ARTICLE_:各記事の開始を示すマーカー。この後には、ページタイトルが続く
- _START_SECTION_: ページタイトルやセクションの終了と、新しいセクションの開始を示すマーカー。この後には、セクションタイトルが続く
- _START_PARAGRAPH_: セクションタイトルの終了と、新しい段落の開始を示すマーカー。この後には、段落テキストが続く
- _NEWLINE_: 現在の段落テキストの終わりを示すマーカー。この後には、新しい段落テキストが続く
Wiki-40Bのデータ件数は、言語ごとに異なる。「どのような言語が使えるか」や各言語のデータ件数については、公式のカタログページを確認してほしい。参考までに日本語データのデータ件数を示すと、下記のようになっている。
- 74万5392件の訓練(train)データ用
- 4万1576件の精度検証(validation)データ用
- 4万1268件のテスト(test)データ用
- 合計82万8236件(2.19GB)
上記の通り、データはtrain(90%)/validation(5%)/test(5%)に3分割されている。なお「validation」は論文では「dev」と表記されている。
引用のための情報
このデータセットは、CC-BY-SAライセンスで提供されている。Wiki-40Bデータセット自体の情報を以下にまとめておく。
- 作成者: Mandy Guo, Zihang Dai, Denny Vrandecic and Rami Al-Rfou
- カンファレンス: LREC(Language Resources and Evaluation) 2020
- タイトル: Wiki-40B: Multilingual Language Model Dataset
- 公開日: May, 2020
- URL: http://www.lrec-conf.org/proceedings/lrec2020/pdf/2020.lrec-1.297.pdf
利用方法
実際にWiki-40Bデータセットを使うには、基本的にTensorFlow Datasetsを利用する。それ以外にはHugging Faceのwiki40bデータセットも使えるが、(※筆者がGoogle Colaboratoryで試そうとしたらエラーが出たので)公式のTensorFlow Datasetsの方がお勧めである。
TensorFlow Datasets
# !pip install tensorflow tensorflow-datasets # ライブラリ「TensorFlow」と「TensorFlow Datasets」をインストール
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)
# 次のコードにより、5行分のデータを表示できる
#tfds.as_dataframe(ds_train.take(5), ds_info)
TensorFlow Datasetsの各データセットは、tensorflow_datasetsモジュール(=tfds)のtfds.load()関数から利用できる。リスト1では「wiki40bデータセット」の日本語版('wiki40b/ja')をロードしている。
Copyright© Digital Advantage Corp. All Rights Reserved.