連載
» 2021年01月20日 05時00分 公開

Wiki-40B:高品質に加工された、40以上の言語のWikipediaデータセットAI・機械学習のデータセット辞典

データセット「Wiki-40B」について説明。高品質に加工された、英語や日本語を含む40以上の言語におけるWikipediaテキストが無料でダウンロードでき、自然言語処理の言語モデルの作成などに利用できる。TensorFlowにおける利用コードも紹介。

[一色政彦,デジタルアドバンテージ]
「AI・機械学習のデータセット辞典」のインデックス

連載目次

データセット解説

 Wiki-40Bデータセットは、英語や日本語を含む40以上の言語におけるWikipediaのテキストを高品質に加工した、言語モデル用データセットである(図1)。Google Researchが作成し2020年から公開しているので、TensorFlow Datasetsを使うと簡単に使用できる。

図1 Wiki-40Bデータセットの内容例 図1 Wiki-40Bデータセットの内容例
データセットの配布元: 「wiki40b | 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データセット自体の情報を以下にまとめておく。

利用方法

 実際に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)

リスト1 TensorFlow DatasetsでWiki-40Bデータセットを利用する基本的なコード

 TensorFlow Datasetsの各データセットは、tensorflow_datasetsモジュール(=tfds)のtfds.load()関数から利用できる。リスト1では「wiki40bデータセット」の日本語版('wiki40b/ja')をロードしている。

「AI・機械学習のデータセット辞典」のインデックス

AI・機械学習のデータセット辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

編集部からのお知らせ

6月16日にフォーマット統一のため利用規約を変更します

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。