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

📅 发布时间:2026/7/3 22:46:35 👁️ 浏览次数:
【LLM数据集】中文维基百科数据预处理说明
一、概述​ 预处理阶段的目标是将中文维基百科的原始 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 压缩的 XMLMediaWiki 导出格式下载地址https://dumps.wikimedia.org/zhwiki/latest/二、处理流程详解2.1 XML 解析与文章提取​ 使用gensim.corpora.WikiCorpus对 XML 文件进行流式解析逐篇提取文章正文自动过滤掉标记语言标签、模板、表格等非正文内容。(1) WikiCorpus 介绍​ WikiCorpus 是 gensim 库提供的维基百科语料处理类专门用于解析维基百科的数据库转储文件。其核心特性流式解析文章从压缩包中按需提取on-the-fly整个数据转储文件始终保持压缩状态存储在磁盘上不需要解压内存占用极低自动清洗内置 MediaWiki 标记语言解析器自动去除 XML 标签、Wiki 模板、表格、引用、链接等非正文内容只保留纯文本支持的文件格式LANGwiki-YYYYMMDD-pages-articles.xml.bz2和LANGwiki-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) 本项目使用方式wikiWikiCorpus(input_file,dictionary{})fortextinwiki.get_texts():raw_text.join(text)传入dictionary{}表示不构建词典仅提取文本get_texts()返回生成器每次 yield 一篇文章的 token 列表流式处理不会一次性将全部数据加载到内存2.2 繁体转简体​ 维基百科中文版包含大量繁体内容使用 OpenCC 统一转换为简体中文。另外转换在分词之前执行避免繁体字影响 jieba 的分词效果。(1) OpenCC 介绍​ OpenCCOpen Chinese Convert是一个开源的中文简繁转换库与简单的字符映射不同OpenCC 支持字符级和词汇级转换能够处理一简对多繁如发 → “發”/“髮”的歧义问题同时支持地区习惯用词转换大陆、台湾、香港。(2) 可用的转换配置配置说明t2sTraditional to Simplified繁体 → 简体s2t简体 → 繁体s2tw简体 → 繁体台湾标准s2twp简体 → 繁体台湾标准含词汇转换s2hk简体 → 繁体香港标准tw2s繁体台湾标准 → 简体tw2sp繁体台湾标准 → 简体含词汇转换hk2s繁体香港标准 → 简体(3) 本项目使用方式​ 维基百科中文版包含大量繁体内容使用 OpenCC 统一转换为简体中文converteropencc.OpenCC(t2s)raw_textconverter.convert(raw_text)2.3 中文分词使用 jieba 对简体文本进行分词词语之间以空格分隔line .join(jieba.cut(raw_text))jieba 默认使用精确模式cut_allFalse尽可能将句子切分为最合理的词语组合输出示例自然 语言 处理 是 人工智能 的 一个 重要 方向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.txt3.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: 3850003.3 依赖库库版本用途gensim4.4.0解析维基百科 XMLjieba-中文分词opencc-繁简转换