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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages