Skip to content

kasys-lab/WikiStatCells

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WikiStatCells データセット

Wikipedia 記事中の数値が参照する統計データのセルを特定するためのベンチマークデータセット。

問題定義

  • 入力: クエリ q = (数値, 数値を含む文書) と検索対象文書集合 D(統計データのセル群)
  • 出力: ランキング (d₁, d₂, ..., dₖ) ただし dᵢ ∈ D
  • タスク: 統計データ中の正解セルを上位にランクすること

ディレクトリ構成

WikiStatCells/
├── ja/                          # 日本語版
│   ├── gold_data.jsonl          # 正解データ(数値→対応セルのマッピング)
│   ├── numbers.jsonl            # アノテーション済み数値データ(位置情報付き)
│   ├── wiki_pages.jsonl         # 対応する Wikipedia 記事(セクション構造付き)
│   ├── stats.jsonl              # 統計データのセル展開 JSONL(stats/ から生成)
│   ├── source_urls.jsonl        # stats/ の出典情報(e-Stat URL等)
│   └── stats/                   # 引用先の統計データファイル群
│       ├── {stat_id}.csv
│       ├── {stat_id}.xlsx
│       └── ...
├── en/                          # 英語版
│   ├── gold_data.jsonl
│   ├── numbers.jsonl
│   ├── wiki_pages.jsonl
│   ├── stats.jsonl
│   ├── source_urls.jsonl        # stats/ ファイル名→元URLの対応表
│   └── stats/
│       ├── {filename}.csv
│       ├── {filename}.xls
│       └── ...
└── README.md

stats.jsonl の生成

前提条件

  • Python 3.12 以上
  • 依存ライブラリ(uv run で自動インストール)
  • uv が利用可能であること

stats/ 配下の統計ファイルから stats.jsonl を生成するには、プロジェクトルート(dds_dataset/)で以下を実行する。

uv run python main.py --lang ja
uv run python main.py --lang en

統計情報

以下は論文記載値(WikiStatCells の正解値)に基づく。

日本語版

項目 件数
正解データ(gold_data.jsonl) 178
numbers.jsonl 178
Wikipedia 記事数(wiki_pages.jsonl) 77
統計データファイル数(stats/) 26

英語版

項目 件数
正解データ(gold_data.jsonl) 1,268
numbers.jsonl 1,268
Wikipedia 記事数(wiki_pages.jsonl) 560
統計データファイル数(stats/) 154

ファイル形式

gold_data.jsonl

正解データ。各行は1つの「数値→統計セル」の対応を表す。

{
  "topic_id": "TOPIC-JA-0001",
  "doc_id": "3146",
  "section_id": 6,
  "start": 65,
  "end": 72,
  "raw": "250,300",
  "value": 250300,
  "answer": {
    "stat_id": "000027468495",
    "sheet_name": "ほうれんそう",
    "row": 14,
    "column": 4
  }
}
フィールド 説明
topic_id string クエリの一意識別子(日本語: TOPIC-JA-XXXX、英語: TOPIC-EN-XXXX
doc_id string Wikipedia 記事 ID
section_id int 記事内のセクション番号(0始まり)
start int セクションテキスト内の数値開始位置(文字単位)
end int セクションテキスト内の数値終了位置(文字単位)
raw string テキスト中の数値の原表記(例: "250,300"
value number パース後の数値(例: 250300
answer.stat_id string 正解セルが含まれる統計データの ID
answer.sheet_name string 正解セルが含まれるシート名
answer.row int 正解セルの行番号(0始まり)
answer.column int 正解セルの列番号(0始まり)

数値の位置は wiki_pages.jsonl のセクションテキストと対応しており、以下で原表記を復元できる:

section = page["sections"][entry["section_id"]]
assert section["text"][entry["start"]:entry["end"]] == entry["raw"]

: 英語版では一部のエントリで raw に修飾語が含まれる場合がある(例: "minus 381,403")。この場合、start/end は数字部分のみを指す。

numbers.jsonl

wiki_pages.jsonlstats/gold_data.jsonl から再構築した数値データ。 各エントリは gold_data.jsonl のトピックに対応し、cells には値一致セル候補を含む。

{
  "topic_id": "TOPIC-JA-0001",
  "doc_id": "3146",
  "section_id": 6,
  "start": 65,
  "end": 72,
  "raw": "250,300",
  "value": 250300,
  "cells": [
    {
      "stat_id": "000027468495",
      "sheet_name": "ほうれんそう",
      "row": 14,
      "col": 4
    }
  ]
}
フィールド 説明
doc_id string Wikipedia 記事 ID
section_id int セクション番号
start / end int 数値の位置(セクションテキスト内)
raw string 数値の原表記
value number パース後の数値
cells array 値が一致した統計データセルの候補リスト
cells[].stat_id string 統計データ ID
cells[].sheet_name string シート名
cells[].row / col int セル座標(0始まり)
topic_id string クエリの一意識別子(日本語版では gold_data.jsonl に正解が存在する場合のみ付与)

wiki_pages.jsonl

データセットに関連する Wikipedia 記事。セクション構造付き。

{
  "doc_id": "428",
  "title": "広島県",
  "sections": [
    {
      "section_id": 0,
      "title": "",
      "level": -1,
      "text": "セクション本文..."
    }
  ]
}
フィールド 説明
doc_id string Wikipedia 記事 ID
title string 記事タイトル
sections array セクションのリスト
sections[].section_id int セクション番号(0始まり)
sections[].title string セクション見出し(冒頭部分は空文字列)
sections[].level int 見出しレベル(-1: 冒頭、2以上: サブセクション)
sections[].text string セクション本文

: 日本語版では refs(参照リスト)および tables(テーブルリスト)フィールドが追加で含まれる。

stats/

引用先の統計データファイル群。gold_data.jsonl および numbers.jsonlstat_id と対応する。

  • 日本語版: ファイル名は e-Stat の統計データ ID(例: 000027468495.xlsx)。出典情報は source_urls.jsonl を参照。
  • 英語版: ファイル名はデータソース URL の MD5 ハッシュ値(例: ed54d51b9d98666ead787be49913be4d.csv)。元 URL との対応は source_urls.jsonl を参照。
  • 形式は .csv / .xlsx / .xls を含む。

source_urls.jsonl

stats/ に含まれる統計データファイルの出典情報。日本語版と英語版でスキーマが異なる。

日本語版: e-Stat の統計データ ID・URL・タイトル、および NTCIR Data Search コレクション内のファイル名を記録。

{
  "stat_id": "000027468495",
  "estat_url": "https://www.e-stat.go.jp/stat-search/files?page=1&layout=dataset&stat_infid=000027468495",
  "title": "作物統計調査 ...",
  "ntcir_filename": "e567b0ac...-f005-25-032.xlsx"
}
フィールド 説明
stat_id string e-Stat 統計データ ID(stats/ 内のファイル名のステムに対応)
estat_url string e-Stat 上の統計データページ URL
title string NTCIR Data Search コレクションに登録された統計表のタイトル
ntcir_filename string NTCIR Data Search テストコレクション内のファイル名

英語版: ハッシュベースファイル名とクローリング元 URL の対応。

{
  "filename": "ed54d51b9d98666ead787be49913be4d.csv",
  "source_url": "https://www.census.gov/popest/states/tables/NST-EST2008-04.csv"
}
フィールド 説明
filename string stats/ 内のファイル名(MD5ハッシュ + 拡張子)
source_url string 統計データのクローリング元 URL

stats.jsonl

stats/ 配下の統計ファイルをシート構造付きで1ファイルに集約した JSONL。main.py で生成する。各行は1統計ファイルに対応し、全シートのセルデータを保持する。

{
  "filename": "000027468495.xlsx",
  "stat_id": "000027468495",
  "lang": "ja",
  "format": "xlsx",
  "data": {
    "ほうれんそう": [
      {"row": 14, "col": 4, "value": 250300}
    ]
  },
  "cell_count": 1234
}
フィールド 説明
filename string 元ファイル名(拡張子あり)
stat_id string 統計データ ID(日本語版: ファイル名のステム、英語版: ファイル名全体)
lang string 言語コード ("ja" または "en")
format string ファイル形式 ("csv", "xlsx", "xls")
data object シート名をキーとするセルデータの辞書
data[sheet][].row int セル行番号(0始まり)
data[sheet][].col int セル列番号(0始まり)
data[sheet][].value any セル値
cell_count int 全シートのセル数合計

出典

参考文献

中野 優, 加藤 誠. 「被引用統計データのセル特定データセットの構築」 DDS, Vol.1, Article No.1, 2023年3月.

About

Wikipedia 記事中の数値が参照する統計データのセルを特定するためのベンチマークデータセット(中野 優, 加藤 誠. 「被引用統計データのセル特定データセットの構築」 DDS, Vol.1, Article No.1, 2023年3月.)。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages