【LLM数据集】中文维基百科数据预处理说明

wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例 首先下载wiki中文语料(大约1.7G) https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 下载的文件名为“zhwiki-latest-pages-articles.xml.bz2” 这个大家都知道,然后没什么卵用,因为墙太强大,所以下载不下来,只能另辟蹊径了。。。 因此搜来搜去找到2... 阅读详情

一、概述

​ 预处理阶段的目标是将中文维基百科的原始 XML 数据转换为适合 Word2Vec 训练的分词文本。整个流程为:

在这里插入图片描述

1.1 目录结构

word2vec/
├── data/
│   ├── zhwiki-latest-pages-articles.xml.bz2   # 原始数据(维基百科 XML 压缩包)
│   └── wiki_zh.txt                            # 预处理输出(分词后的纯文本)
├── scripts/
│   └── process_wiki.py                        # 预处理主脚本
├── utils/
│   ├── __init__.py
│   └── logger_utils.py                        # 日志工具
└── logs/
    └── wiki_process.log                       # 处理日志

1.2 数据来源

​ 原始数据为维基百科官方提供的中文数据库转储文件:

  • 文件名:zhwiki-latest-pages-articles.xml.bz2
  • 格式:bz2 压缩的 XML(MediaWiki 导出格式)
  • 下载地址:https://dumps.wikimedia.org/zhwiki/latest/

二、处理流程详解

2.1 XML 解析与文章提取

​ 使用 gensim.corpora.WikiCorpus 对 XML 文件进行流式解析,逐篇提取文章正文,自动过滤掉标记语言标签、模板、表格等非正文内容。

(1) WikiCorpus 介绍

​ WikiCorpus 是 gensim 库提供的维基百科语料处理类,专门用于解析维基百科的数据库转储文件。

  • 其核心特性:
    • 流式解析:文章从压缩包中按需提取(on-the-fly),整个数据转储文件始终保持压缩状态存储在磁盘上,不需要解压,内存占用极低
    • 自动清洗:内置 MediaWiki 标记语言解析器,自动去除 XML 标签、Wiki 模板、表格、引用、链接等非正文内容,只保留纯文本
    • 支持的文件格式:<LANG>wiki-<YYYYMMDD>-pages-articles.xml.bz2 和 <LANG>wiki-latest-pages-articles.xml.bz2
(2) 构造函数主要参数
参数说明
fname维基百科 XML 转储文件路径
processes并行解析的进程数,默认为 CPU 核心数
dictionary传入 {} 表示跳过词典构建,仅提取文本
filter_namespaces过滤的命名空间,默认 ('0',) 即只保留正文文章,排除讨论页、用户页等
article_min_tokens文章最少 token 数,默认 50,低于此值的文章会被丢弃
token_min_len / token_max_lentoken 长度过滤范围,默认 2~15
(3) 本项目使用方式
wiki = WikiCorpus(input_file, dictionary={})
for text in wiki.get_texts():
    raw_text = "".join(text)
  • 传入 dictionary={} 表示不构建词典,仅提取文本
  • get_texts() 返回生成器,每次 yield 一篇文章的 token 列表
  • 流式处理,不会一次性将全部数据加载到内存

2.2 繁体转简体

​ 维基百科中文版包含大量繁体内容,使用 OpenCC 统一转换为简体中文。另外,转换在分词之前执行,避免繁体字影响 jieba 的分词效果。

(1) OpenCC 介绍

​ OpenCC(Open Chinese Convert)是一个开源的中文简繁转换库,与简单的字符映射不同,OpenCC 支持字符级和词汇级转换,能够处理一简对多繁(如"发" → “發”/“髮”)的歧义问题,同时支持地区习惯用词转换(大陆、台湾、香港)。

(2) 可用的转换配置
配置说明
t2sTraditional to Simplified,繁体 → 简体
s2t简体 → 繁体
s2tw简体 → 繁体(台湾标准)
s2twp简体 → 繁体(台湾标准,含词汇转换)
s2hk简体 → 繁体(香港标准)
tw2s繁体(台湾标准) → 简体
tw2sp繁体(台湾标准) → 简体(含词汇转换)
hk2s繁体(香港标准) → 简体
(3) 本项目使用方式

​ 维基百科中文版包含大量繁体内容,使用 OpenCC 统一转换为简体中文:

converter = opencc.OpenCC('t2s')
raw_text = converter.convert(raw_text)

2.3 中文分词

使用 jieba 对简体文本进行分词,词语之间以空格分隔:

line = " ".join(jieba.cut(raw_text))
  • jieba 默认使用精确模式(cut_all=False),尽可能将句子切分为最合理的词语组合
  • 输出示例:自然 语言 处理 是 人工智能 的 一个 重要 方向

2.4 写入输出文件

​ 每篇文章处理后写入一行,最终输出文件格式为:

词1 词2 词3 词4 ...    ← 第 1 篇文章
词1 词2 词3 ...        ← 第 2 篇文章
...

​ 每处理 10000 篇文章输出一次日志,记录当前进度。

三、使用方式

# 在项目根目录下执行
python scripts/process_wiki.py data/zhwiki-latest-pages-articles.xml.bz2 data/wiki_zh.txt

3.1 参数说明

参数说明
input_file维基百科 XML 压缩文件路径
output_file输出的分词文本文件路径

3.2日志

​ 处理过程中的日志同时输出到控制台和 logs/wiki_process.log,格式为:

2024-10-31 08:30:15 - INFO - Starting processing: data/zhwiki-latest-pages-articles.xml.bz2 -> data/wiki_zh.txt
2024-10-31 08:35:22 - INFO - Saved 10000 articles
2024-10-31 08:40:18 - INFO - Saved 20000 articles
...
2024-10-31 09:12:45 - INFO - Finished processing. Total saved articles: 385000

3.3 依赖库

库版本用途
gensim4.4.0解析维基百科 XML
jieba-中文分词
opencc-繁简转换
wiki中文语料下载及繁体转简体的处理。 wiki中文语料下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 下载后是xml的文件,需要转换为中文的txt文件,网上又很多处理的python代码。 #!/usr/bin/env python # -*- coding: utf-8 -*- #将xml的wiki数据转换为... 阅读详情

相关推荐

MegatronLM 单卡测试 跑通中文维基百科数据集Bert训练

Apex 是 NVIDIA 开发的一个用于优化深度学习训练的库,Megatron-LM 通过集成 Apex 来实现混合精度训练等功能,以提升训练效率。更改一下文件wikiextractor/wikiextractor/extract.py的 re 规则,下载以下文件,这里我把bert-large-cased-vocab.txt,放到项目根目录下。解决#include “nccl.h” 缺失。下载维基百科提取工具。

随便写写 1013

wiki中英文语料处理

Wiki官方提供了下载链接:https://dumps.wikimedia.org/zhwiki/latest/本文处理的中文wiki:zhwiki-latest-pages-articles.xml.bz2本文处理的英文wiki:enwiki-latest-pages-articles.xml.bz21,数据抽取,将*.xml.bz2转为可编辑txt#process_wiki.py # -*- ...

年轻即出发, 8541

F2LLM-v2多语言与编程语言数据集解析与应用

多语言与编程语言数据集是训练大语言模型(LLM)的重要基础设施,其核心价值在于同时覆盖自然语言和编程语言两大领域。通过精心设计的数据采集策略(如开源社区协作、GitHub代码仓库清洗)和预处理流程(语言检测、代码规范化、去重去噪),这类数据集能够显著提升模型在多语言技术文档生成和代码翻译等场景中的表现。F2LLM-v2作为新一代数据集,特别注重低资源语言的覆盖和代码数据的质量,其包含的50多种自然语言和20种主流编程语言的平行语料,为开发者提供了高效的数据支持。在实际应用中,该数据集已成功用于缩短多语言文档

weixin_42566072的博客 561

维基百科的语料库下载以及后续操作(一)2020年6月【包括opencc下载避雷,繁转简】

(二)下载之后需要对其进行提取txt文件,并且进行繁体字转化,以及去除一些帮助页面和重定向的页面,处理程序为:参考了站内一位大神——残月飞雪的代码,但是因为我的python是3.7以上的版本,稍微修改了一些地方就可以正常使用了。我从接触python开始就不是正常学的,很匆忙一些基础的知识掌握的都不是很好,这是我的CMD显示pip安装成功的提示,我也用三两句代码实现了简繁转换,如下所示。除了上面第二部分修改的,第三部分opencc也进行一些修改,我是Geany运行的,可以实现。我的并不是专业的,都是逼的。

mocking_的博客 5143

怎么从零开始训练一个LLM大模型

从零开始训练一个大型语言模型(LLM)是一个复杂且资源消耗巨大的过程,涉及多个步骤和阶段。

2401_86518761的博客 1042

维基中文语料库(非最新)(两部分此为Part2) zhwiki-latest-pages-articles.xml.bz2_.part2

维基中文语料库(非最新)(两部分此为Part2) zhwiki-latest-pages-articles.xml.bz2_.part2 | 原压缩包太大需要分两次上传,part1链接:https://download.csdn.net/download/Joker_Q/14967708

AI大模型需要什么样的数据

人工智能发展的突破得益于高质量数据的发展。例如,大型语言模型的最新进展依赖于更高质量、更丰富的训练数据集:与GPT-2相比,GPT-3对模型架构只进行了微小的修改,但花费精力收集更大的高质量数据集进行训练。ChatGPT与GPT-3的模型架构类似,并使用RLHF(来自人工反馈过程的强化学习)来生成用于微调的高质量标记数据。人工智能领域以数据为中心的AI,即在模型相对固定的前提下,通过提升数据的质量和数量来提升整个模型的训练效果。

python1234_的博客 1783

zhwiki-latest-pages-articles1.xml-p1p187712.bz2

最新维基百科中文语料库

PaddleNLP 大模型预训练数据集全攻略:内置数据、自制流程与实战配置

本指南以 PaddleNLP 官方文档 [docs/zh/llm/dataset.md](https://link.gitcode.com/i/0270d5f433fa6f07523f5332bee71733) 为骨架,系统梳理预训练数据集的两种来源——直接下载内置数据集与从零自制自定义数据集,完整覆盖从原始文本到 jsonl、再到 bin/idx 的两阶段转换流程,并结合仓库内 [llm/too

gitblog_00320的博客 771

维基百科中文预训练数据

用于BERT预训练,Bidirectional Encoder Representation from Transformers

维基中文语料库(非最新)(两部分此为Part1) zhwiki-latest-pages-articles.xml.bz2_.part1.rar

维基中文语料库(非最新)(两部分此为Part1) zhwiki-latest-pages-articles.xml.bz2_.part1 | Part2不需要积分, Part2链接:https://download.csdn.net/download/Joker_Q/14967774

如何从零开始训练一个LLM大模型

从零开始训练一个大型语言模型(LLM)是一个复杂且资源消耗巨大的过程,涉及多个步骤和阶段。

aolan123的博客 1578

维基百科百科问答数据集

该文件包含了维基百科的百科问答中的数据,问题和对应的答案都有,保存为Json格式,适合用于机器学习算法的训练和测试等工作。

手把手教你如何从零开始训练一个LLM大模型

从零开始训练一个大型语言模型(LLM)是一个复杂且资源消耗巨大的过程,涉及多个步骤和阶段。

2401_85373691的博客 1473

请叫我鱼拆,2024扫地机器人的第一次拆机

从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。

生活不止眼前的苟且 3926

不止是回退SDK:深入解读UE5.2编译时那个烦人的C4756警告与INFINITY宏的变迁

本文深入解析了UE5.2源码编译时出现的C4756警告及其背后的技术原因,探讨了Windows SDK中INFINITY宏的变迁对Unreal Engine的影响。文章详细介绍了微软修改INFINITY定义的技术考量,并提供了UE5.2应对此类问题的灵活解决方案,包括通过BuildConfiguration.xml文件精确控制工具链版本,确保构建系统的可重复性和可配置性。

weixin_27180827的博客 310

Vorssaint:集成系统监控、逐应用音量与窗口管理的免费开源 macOS 菜单栏工具

菜单栏里已经挤了一排监控、剪贴板、截图的单功能图标,还想再装一个吗?Vorssaint 是一款免费开源的 macOS 菜单栏工具,把系统监控、逐应用音量、窗口管理收进同一个图标:用到的才运行,用不到的完全静止。 ## 快速上手 前提只有两条:Apple Silicon 芯片的 Mac(Intel 机型不受支持),以及 macOS 14 Sonoma 或更新版本。用 Homebrew 安装就是一

gitblog_00536的博客 995

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 463

PaddleNLP 中文预训练数据制作实战:基于 CLUECorpusSmall 14GB 语料的完整流程

本文以 CLUECorpusSmall 中文语料库为核心案例,系统讲解如何在 PaddleNLP 中完成从原始 txt 文本到可直接用于大模型预训练数据的完整加工流程,包括 jsonl 转换、数据 ID 化(tokenize)、WWM 中文分词、文件合并与并行加速等环节。读完本文,你将掌握 `llm/tools/preprocess` 工具链中 `trans_to_json.py`、`words_

gitblog_00934的博客 379

开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式

电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。

【Simon】的博客 1228

手把手教你用Simulink+CANoe+Carsim搭建硬件在环仿真环境(避坑指南)

本文是一份详细的硬件在环仿真环境搭建指南,重点讲解如何将Simulink、CANoe和CarSim三大工具进行实战融合。内容涵盖软件版本兼容性、授权避坑、环境配置,并分步演示了从离线联合仿真到实现软实时同步的完整流程,旨在帮助汽车电子工程师高效构建稳定的HIL测试平台。

weixin_29092579的博客 404

LangChain生产级工程手记:RAG、多语言翻译、维基检索与合成数据实战

RAG(检索增强生成)是构建企业级AI应用的核心范式,其本质是将外部知识精准注入大模型生成过程,解决幻觉与知识滞后问题;多语言对话翻译则依赖上下文记忆与术语强约束,考验LLM指令遵循能力而非泛化能力。本文聚焦LangChain v0.2+在真实业务场景中的工程落地——涵盖PDF/Word/Excel等异构文档的鲁棒加载、中文语义敏感的文本分块策略、Chroma向量库的本地化调试实践,以及维基百科结构化检索与合成医疗数据生成两大高阶任务。所有方案均经金融、医疗、教育行业客户现场验证,直击OCR错误、chunk

weixin_30566111的博客 411

ZYNQ 系统的IEEE1588 实现方法

zynq IEEE588/PTP 实现方案(讨论稿)

姚家湾博客 1万+
上一篇: 【Jieba实战篇02】词云蒙版制作:从图片提取轮廓的三种方法
下一篇: 【LLM基础】大模型的上游与下游:一篇文章讲清 AI 流水线的全貌
未收敛
博客等级 码龄11年 3305粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未收敛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值