five

bjoernp/oscar2023_deduped_filtered_1.1

收藏
Hugging Face2023-11-13 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/bjoernp/oscar2023_deduped_filtered_1.1
下载链接
链接失效反馈
官方服务:
资源简介:
Oscar 2023_01 DE Deduplicated是一个经过过滤和去重的德语文本数据集,源自OSCAR项目(Open Super-large Crawled Aggregated coRpus)的23.01版本OSCAR Corpus。该数据集基于2022年11月/12月的Common Crawl数据,通过MinHash算法去重,大小介于1000万至1亿文档之间。数据集详细记录了文档的元数据,包括语言、内容类型、有害内容概率等信息,并通过严格的过滤机制确保数据质量。该数据集遵循OSCAR Corpus的原始许可,采用CC0许可证,适用于大规模语言模型的预训练和自然语言处理研究。

Oscar 2023_01 DE Deduplicated是一个经过过滤和去重的德语文本数据集,源自OSCAR项目(Open Super-large Crawled Aggregated coRpus)的23.01版本OSCAR Corpus。该数据集基于2022年11月/12月的Common Crawl数据,通过MinHash算法去重,大小介于1000万至1亿文档之间。数据集详细记录了文档的元数据,包括语言、内容类型、有害内容概率等信息,并通过严格的过滤机制确保数据质量。该数据集遵循OSCAR Corpus的原始许可,采用CC0许可证,适用于大规模语言模型的预训练和自然语言处理研究。
提供机构:
bjoernp
原始信息汇总

Oscar 2023_01 DE Deduplicated

数据集概述

这是一个经过筛选和去重的德语子集版本,基于23.01 OSCAR Corpus,由OSCAR项目(Open Super-large Crawled Aggregated coRpus)策划。OSCAR 23.01是2023年1月的OSCAR Corpus版本,基于2022年11月/12月的Common Crawl数据。

去重方法

使用text-dedup库中的MinHash实现进行去重,具体命令如下: bash python -m text_dedup.minhash --path oscar-corpus/OSCAR-2301 --name "de" --cache_dir "../cache" --split "train" --column "text" --batch_size 10000 --output output/minhash_oscar_de_dedup

去重统计

步骤 运行时间
Loading 10.64s
MinHashing 10574.02s
Clustering 12187.65s
Filtering 4198.70s
Saving 3560.06s
Total 30531.07s
数据集 文档数量
Before 103299215
After 53172498

数据集结构

json { "text":"English sentence phrase en français ????????????", "meta":{ "warc_headers":{ "warc-identified-content-language":"fra,eng", "warc-target-uri":"https://fr.wikipedia.org/wiki/...", "warc-record-id":"urn:uuid:29eaa920-d299-4b1d-b687-c72bd8d68116", "warc-type":"conversion", "content-length":"35298", "warc-refers-to":"urn:uuid:39e42055-0d94-4e45-9c6c-9e7056635d64", "warc-block-digest":"sha1:WFH2A5WHCS2H365GIAFYQPI7UOAMFGHB", "warc-date":"2022-11-26T09:45:47Z", "content-type":"text/plain" }, "identification":{ "label":"fr", "prob":0.8938327 }, "harmful_pp":4063.1814, "tlsh":"tlsh:T125315FF2B6088901EEA097015DB39B4600B...", "quality_warnings":[ "short_sentences", "header", "footer" ], "categories":[ "examen_pix", "liste_bu" ], "sentence_identifications":[ { "label":"fr", "prob":0.99837273 }, { "label":"en", "prob":0.9992377 }, null ] } }

过滤方法

使用以下代码进行过滤(超参数可能略有不同): python from datasets import load_dataset, load_from_disk import time

blocked_categories = set([ "adult", "aggressif", "malware", "phishing", "cryptojacking", "dangerous_material" ])

blocked_quality_warnings = set([ "tiny", "short sentences", "noisy" ])

harmful_ppl_threshold = 500 language_prob_threshold = 0.9

blocked_urls = set([ "de.wikipedia.org", "tagesschau.de" ])

def filter_content(example): has_blocked_category = False if "categories" in example["meta"] and example["meta"]["categories"] is not None: has_blocked_category = len(set(example["meta"]["categories"]).intersection(blocked_categories)) > 0 has_blocked_quality_warnings = False if "quality_warnings" in example["meta"] and example["meta"]["quality_warnings"] is not None: has_blocked_quality_warnings = len(set(example["meta"]["quality_warnings"]).intersection(blocked_quality_warnings)) > 0 has_blocked_url = False if "warc_headers" in example["meta"] and "warc-target-uri" in example["meta"]["warc_headers"] and example["meta"]["warc_headers"]["warc-target-uri"] is not None: has_blocked_url = any([url in example["meta"]["warc_headers"]["warc-target-uri"] for url in blocked_urls]) has_harmful_ppl = example["meta"]["harmful_pp"] < harmful_ppl_threshold if "harmful_pp" in example["meta"] else False has_bad_german_identification = example["meta"]["identification"]["prob"] < language_prob_threshold if "identification" in example["meta"] else True return not (has_blocked_category or has_blocked_quality_warnings or has_blocked_url or has_harmful_ppl or has_bad_german_identification)

t_start = time.time() ds = load_dataset("bjoernp/oscar2023_de_deduped", split="train", num_proc=128) print(f"Loading took {time.time() - t_start}s") print(f"Dataset size before filtering: {len(ds)}") t_start = time.time() ds = ds.filter(filter_content, num_proc=128) print(f"Filtering took {time.time() - t_start}s") print(f"Dataset size after filtering: {len(ds)}")

许可

遵循OSCAR Corpus的原始许可方案,数据集的元数据和注释采用Creative Commons CC0许可证(“无权利保留”)。

搜集汇总
数据集介绍
main_image_url
构建方式
该数据集源自OSCAR项目于2023年1月发布的德语子集OSCAR-2301,后者基于2022年11至12月的Common Crawl快照构建。为进一步提升数据质量,研究者采用text-dedup库中的MinHash算法对原始语料进行去重处理,以消除冗余文档。随后,通过一系列精细的过滤步骤净化数据:基于URL黑名单剔除特定站点内容,利用KenLM模型评估有害性并设定困惑度阈值,依据语言识别概率筛选高置信度德语文本,同时移除包含成人、恶意软件等敏感类别及存在过短句子、噪声等质量警告的文档。这一流程在保留约5147万篇文档的同时,显著提升了语料的纯净度与可用性。
特点
本数据集的核心特质在于其经过严格去重与多维度过滤后形成的精炼德语语料库。它保留了OSCAR-2301的丰富元数据架构,每条记录均包含WARC头部信息、语言识别标签、有害性困惑度评分、TLSH哈希值、质量警告及内容分类等字段,为下游任务提供了详实的文档级背景。去重过程将原始超过1.03亿篇文档缩减至约5317万篇,大幅降低了冗余。过滤策略则精准排除了有害内容、低质量文本及已知数据源,确保了语料在语言纯净度、内容安全性与结构完整性上的高标准,使其特别适用于大规模语言模型的预训练与德语自然语言处理研究。
使用方法
用户可通过HuggingFace Datasets库便捷加载该数据集,使用load_dataset函数指定名称bjoernp/oscar2023_deduped_filtered_1.1即可获取训练集。加载后,数据集以字典格式呈现,每条数据包含'text'字段存储文本内容,以及嵌套的'meta'字段提供丰富的元信息。若需进一步定制过滤,可参照项目提供的示例代码,利用filter方法结合自定义规则(如调整有害困惑度阈值或语言概率阈值)对文档进行二次筛选。数据处理时建议启用多进程(如num_proc=128)以提升效率。数据集遵循OSCAR原版的CC0许可协议,适用于学术研究与商业应用,但需注意其不承担对原始内容的删除请求责任。
背景与挑战
背景概述
Oscar 2023_01 DE Deduplicated数据集由OSCAR项目团队于2023年创建,基于Common Crawl 2022年11月至12月的网页抓取数据,经由Inria、曼海姆大学及德国人工智能研究中心等机构的研究人员精心处理而成。该数据集聚焦于德语子集,旨在为大规模语言模型预训练提供高质量、低冗余的文本语料。其核心研究问题在于如何从海量、异构的网络文本中有效去除重复内容并过滤低质量噪音,从而提升下游自然语言处理任务的性能。作为OSCAR语料库的演进版本,该数据集通过引入MinHash去重算法、KenLM有害内容检测等创新技术,显著提升了数据纯净度,对多语言NLP领域尤其是德语相关研究产生了深远影响,成为训练鲁棒语言模型的重要基石。
当前挑战
该数据集所解决的领域挑战主要在于网络爬取语料普遍存在的质量参差不齐与内容冗余问题。具体而言,原始OSCAR德语子集包含超过1亿篇文档,其中充斥着大量重复文本、广告、恶意软件链接及成人内容,严重干扰了语言模型的训练效果。构建过程中,团队面临多重技术挑战:首先,MinHash去重需在10亿级文档规模下高效运行,计算聚类耗时长达数万秒;其次,过滤阶段需精准识别并剔除包含成人、恶意软件等禁止类别的文档,同时避免误删合法内容;此外,语言识别概率阈值(0.9)与有害困惑度阈值(500)的设定需平衡敏感性与特异性,以在保留有效德语文本与筛除低质量数据间取得最优解。
常用场景
经典使用场景
该数据集作为德语大规模去重与过滤后的网络语料库,最经典的应用场景在于为德语自然语言处理模型提供高质量的预训练数据。在大型语言模型的训练中,语料的纯净度与多样性直接影响模型在下游任务中的泛化能力。通过去除重复文档、过滤低质量内容(如短句、噪声文本)以及屏蔽有害类别(如成人内容、恶意软件),该数据集显著降低了训练噪声,为构建德语BERT、GPT等预训练模型奠定了坚实的数据基础。研究者可将其直接用于语言建模、掩码语言模型训练等经典自监督学习任务,从而提升模型对德语语法、语义及语用特征的捕捉能力。
解决学术问题
该数据集有效解决了网络爬取语料中常见的冗余与噪声问题,为学术界提供了一种可复现的语料清洗范式。在跨语言与多语种自然语言处理研究中,低资源语言常因语料质量参差不齐而难以获得可靠的预训练结果。通过引入MinHash去重算法与基于困惑度的有害内容检测机制,该数据集在保留语料多样性的同时大幅提升了文档级质量,为研究数据清洗对模型性能的影响提供了标准化的实验基准。其意义在于推动了大规模网络语料在学术研究中的规范化使用,尤其对德语领域的词嵌入训练、序列标注及句法分析等任务产生了深远影响。
衍生相关工作
该数据集衍生了一系列围绕网络语料清洗与质量评估的经典工作。其中,基于困惑度的有害内容检测方法(Perplexed by Quality)被广泛引用于低资源语言的数据过滤流程中;Ungoliant管线作为OSCAR语料的生成框架,其模块化设计启发了后续多个多语种语料的构建方案。此外,针对德语预训练模型的优化研究,如基于该数据集训练的German ELMo与German BERT,在词性标注与依存句法分析任务上超越了同期基于Wikipedia训练的模型,验证了大规模网络语料在提升模型鲁棒性方面的独特价值。这些工作共同推动了多语种自然语言处理中数据驱动范式的演进。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作