H
HuggingFaceFW/finewiki
数据集数据集查看器文件和版本
下载使用量0

FineWiki

这是 wikimedia/Wikipedia 数据集在2023年首次发布后的更新优化提取版本。我们精心解析了2025年8月的维基百科HTML转储文件,涵盖325种语言。

本数据集特点:

  • 模板完全渲染,因为数据提取自HTML而非Markdown转储
  • 移除重定向页、消歧义页及其他非主要文章页面
  • 包含详细元数据,如页面ID、标题、最后修改日期、维基数据ID、版本号和文本的Markdown版本
  • 保留元素和格式,如标题、列表、代码/预格式化块、表格和数学内容
  • 值得注意的是,wikimedia/Wikipedia 移除了所有表格和数学内容
  • 排除所有语言版本中的大部分“参考文献”“参见”“注释”“外部链接”等类似引用/注释章节
  • 除保留所有数学内容外,含数学内容的页面会通过元数据属性 has_math 进行标记
  • 将信息框(部分维基百科页面右侧的概要信息框)以结构化格式提取到元数据中,便于检索增强生成(RAG)等应用场景
  • 仅保留文字脚本(书写字母系统) 与该语言预期列表匹配的页面
  • 对于非英语维基百科,任何完全或主要为英语的页面均被移除(这是语言识别器/分类器训练中的常见问题)

可视化与对比

您可以在我们的空间中探索数据集,与 wikimedia/Wikipedia 进行对比,并预览维基百科实时页面。

可用子集

子集名称大小页面数
en英语35.1 GB6,614,655
de德语13.1 GB2,713,646
fr法语12.1 GB2,566,183
ru俄语10.7 GB1,817,813
ja日语9.9 GB1,354,269
es西班牙语8.5 GB1,948,965
it意大利语7.4 GB1,799,759
uk乌克兰语5.4 GB1,239,253
zh中文(现代汉语)5.1 GB1,295,955
pl波兰语4.4 GB1,543,918
ceb宿务语4.4 GB5,647,436
pt葡萄牙语4.3 GB1,135,383
nl荷兰语3.5 GB2,072,865
ca加泰罗尼亚语3.5 GB962,290
ar阿拉伯语3.4 GB1,230,456
sv瑞典语2.9 GB2,470,063
cs捷克语2.2 GB534,563
fa波斯语2.2 GB1,021,336
vi越南语2.1 GB1,279,087
hu匈牙利语2.1 GB515,004
ko韩语2.0 GB582,035
he希伯来语2.0 GB372,053
sr塞尔维亚语2.0 GB664,345
id印尼语1.8 GB723,099
tr土耳其语1.6 GB629,762
fi芬兰语1.5 GB572,900
no挪威语(书面挪威语)1.3 GB620,802
el希腊语1.2 GB242,517
hy亚美尼亚语1.2 GB309,820
ro罗马尼亚语1.2 GB493,462
...
总计184.7 GB61,550,610

详细列表可查看此处。

如何下载和使用 🌐 FineWiki

请查看上方表格,找到您想要下载的语言对应的 subset。

我们目前暂未提供较小的 sample 版本,但您可以通过设置 limit 或使用 streaming=True 轻松获取数据样本。如果社区有相关需求,我们后续可能会上传更小的抽样版本。

使用 🏭 datatrove

from datatrove.pipeline.readers import ParquetReader

# limit determines how many documents will be streamed (remove for all)
# this will fetch the Portuguese data
data_reader = ParquetReader("hf://datasets/HuggingFaceFW/finewiki/data/ptwiki", limit=1000) 
for document in data_reader():
    # do something with document
    print(document)

###############################    
# OR for a processing pipeline:
###############################

from datatrove.executor import LocalPipelineExecutor
from datatrove.pipeline.readers import ParquetReader
from datatrove.pipeline.filters import LambdaFilter
from datatrove.pipeline.writers import JsonlWriter

pipeline_exec = LocalPipelineExecutor(
    pipeline=[
        ParquetReader("hf://datasets/HuggingFaceFW/finewiki/data/ptwiki", limit=1000),
        LambdaFilter(lambda doc: "hugging" in doc.text),
        JsonlWriter("some-output-path")
    ],
    tasks=10
)
pipeline_exec.run()

使用 huggingface_hub

from huggingface_hub import snapshot_download
folder = snapshot_download(
                "HuggingFaceFW/finewiki", 
                repo_type="dataset",
                local_dir="./finewiki/",
                # download the English subset
                allow_patterns=["data/enwiki/*"])

使用 datasets

from datasets import load_dataset
# get Spanish data
fw = load_dataset("HuggingFaceFW/finewiki", name="eswiki", split="train", streaming=True)

数据集结构

数据实例

英文子集示例(为便于阅读,部分值已截断):

{
  "text": "# 10th Tank Corps\nThe 10th Tank Corps was a tank corps of the Red Army, formed twice.\n\n## First Formation\nIn May–June 1938, ...",
  "id": "enwiki/32552979",
  "wikiname": "enwiki",
  "page_id": 32552979,
  "title": "10th Tank Corps",
  "url": "https://en.wikipedia.org/wiki/10th_Tank_Corps",
  "date_modified": "2023-07-26T12:32:03Z",
  "in_language": "en",
  "wikidata_id": "Q12061605",
  "bytes_html": 115017,
  "wikitext": "{{short description|Tank corps of the Soviet military}}\n\n{{Infobox military unit...",
  "version": 1167219203,
  "infoboxes": "[{\"title\": \"10th Tank Corps\", \"data\": {\"Active\": \"...\"}}]",
  "has_math": false
}

数据字段

  • text(字符串):经过清理和结构化的文章文本,保留标题、列表、代码/预格式化块、表格和数学公式。包含部分 Markdown 格式(标题、表格、列表)
  • id(字符串):数据集唯一标识符;通常格式为 <wikiname>/<page_id>
  • wikiname(字符串):维基项目名称,例如 enwiki、ptwiki
  • page_id(整数):MediaWiki 页面标识符
  • title(字符串):文章标题
  • url(字符串):规范的文章 URL
  • date_modified(字符串):页面最后修订的 ISO‑8601 时间戳
  • in_language(字符串):文章语言代码(例如 en、pt)
  • wikidata_id(字符串|null):与页面关联的 Wikidata QID
  • bytes_html(整数):原始 HTML 正文的字节大小
  • wikitext(字符串):原始维基文本(若有)
  • version(整数|字符串):页面的修订/版本标识符
  • infoboxes(字符串):提取的信息框对象的 JSON 编码数组,包含标题和键值数据
  • has_math(布尔值):页面是否检测到数学内容

数据处理

完整的流水线处理代码可在此处获取。该代码运行于datatrove。尽管我们已尽力为大多数语言版本的维基百科提供稳健支持,但 HTML 层面缺乏标准化意味着某些子集的提取效果可能欠佳。如果您关注的语言存在此问题,建议调整我们的代码以解决您的特定需求。

下载

我们使用了维基媒体企业版 HTML 转储 API(https://api.enterprise.wikimedia.com/v2/snapshots),并下载了不同语言版本维基百科的主命名空间(NS0)快照。我们特意选择依赖预渲染的 HTML,而非更常用的维基文本/Markdown 转储:维基文本通常将模板和格式编码为解析器函数/宏,这使得维基页面的大部分内容难以准确重建,而企业版 HTML 已预先展开这些结构。使用的是 2025 年 8 月的快照。我们将丰富的每页属性(ID、标题、URL、语言、版本、时间戳、Wikidata ID)记录为元数据的一部分。

提取

我们对 mwparserfromhtml 进行了大量改编,将 HTML 内容解析为干净、结构化的文本表示,同时保留有意义的格式。重定向页面和消歧义页面被可靠地移除(通过维基文本/HTML 中的重定向标记和消歧义信号,包括 Wikidata ID 和 page‑props)。充满非文章类非自然内容的类参考部分(例如“References”“Notes”“External links”,按语言本地化)通过精选标题列表和结构线索(参考列表容器)被排除,因此引文/注释被删除,而不会损害正文。视觉/导航样板(目录、导航框、消息框、权限控制、分类)被过滤掉,而信息框则被小心地提取到元数据中,形成可用于知识搜索应用的键值结构化数据。我们还努力保留数学内容(并使用 has_math 标志标记包含数学内容的页面)以及表格,因为维基百科的许多知识都包含在表格中。

过滤

低资源语言维基百科的一个常见问题是大量来自其他语言的内容,特别是英语(通常来自从英文维基百科复制过来的文章或样板页面)。为确保语言质量和一致性,我们针对每个维基百科应用了语言和文字系统感知检查。只有当页面的预测书写系统与该语言的预期文字系统匹配时,页面才会被保留。对于非英语维基百科,主要内容为英语且超过置信度阈值的页面会被移除,以减少跨语言泄漏。我们还会删除没有信息框的超短页面,以避免低信号内容。

许可信息

此数据集包含来自维基百科的文本,根据知识共享署名 - 相同方式共享 4.0(CC BY - SA 4.0)许可,并也可在 GFDL 下使用。请参阅维基百科的许可和使用条款:https://dumps.wikimedia.org/legal.html

我们处理后的版本是对该文本的改编,并根据 CC BY - SA 4.0 许可。

引用信息

@dataset{penedo2025finewiki,
  author    = {Guilherme Penedo},
  title     = {FineWiki},
  year      = {2025},
  publisher = {Hugging Face Datasets},
  url       = {https://huggingface.co/datasets/HuggingFaceFW/finewiki},
  urldate   = {2025-10-20},
  note      = {Source: Wikimedia Enterprise Snapshot API (https://api.enterprise.wikimedia.com/v2/snapshots). Text licensed under CC BY-SA 4.0 with attribution to Wikipedia contributors.}
}