SomNLP-Corpus
收藏资源简介:
SomNLP-Corpus是一个开放、高质量的索马里语文本语料库,旨在支持索马里语的自然语言处理(NLP)、大型语言模型(LLMs)和其他AI应用的研究与开发。它整合了六个公共数据集(HPLT、CC100、mC4、OPUS、MADLAD、MT560),经过合并、清理、语言识别、深度清理和近重复去重处理,最终包含约168万份文档、5.29亿单词和约8.1亿子词标记。
SomNLP-Corpus is an open, high-quality Somali text corpus designed to support research and development of natural language processing (NLP), large language models (LLMs) and other AI applications for the Somali language. It integrates six public datasets including HPLT, CC100, mC4, OPUS, MADLAD and MT560. After undergoing merging, cleaning, language identification, in-depth cleaning and near-duplicate removal, it finally contains approximately 1.68 million documents, 529 million words and about 810 million subword tokens.
SomNLP-Corpus 数据集详情
数据集概述
SomNLP-Corpus 是一个高质量、可扩展、可复现的索马里语文本语料库,专为 NLP、大语言模型和 AI 研究设计。项目采用 Rust 优先的数据管道,支持流式处理、配置驱动,并提供完整的溯源信息。
项目状态
- Phase 1 —— 基础建设(工作区、共享类型):已完成
- Phase 2 —— 公共数据集(六个下载器 + 合并):已完成
- Phase 3 —— 处理管道(清洗 → 语言识别 → 深度清洗 → 近似去重):已完成
- Phase 4 —— 数据收集(维基百科、网页抓取):下一步
- Phase 5 —— 发布(Hugging Face 打包):已计划
语料库规模与清洗结果
从六个公开源(HPLT、CC100、mC4、OPUS、MADLAD、MT560)下载原始数据,经过 v0.2 管道处理后的最终结果如下:
| 处理阶段 | 文档数 | 词数 | 子词 token 数 | 本阶段移除数 |
|---|---|---|---|---|
| 原始下载 | 2,633,281 | ~8.35亿 | ~12.5亿 | — |
| 合并 | 2,329,800 | ~7.38亿 | ~11.1亿 | 303,481 |
| 清洗 | 2,225,791 | ~7.06亿 | ~10.6亿 | 104,009 |
| 语言验证 | 2,035,287 | ~6.45亿 | ~9.68亿 | 190,504 |
| 深度清洗 | 2,003,228 | ~6.35亿 | ~9.52亿 | 32,059 |
| 最终 | 1,668,080 | 528,853,952 | ~8.10亿 | 335,148 |
整体统计: 263万原始行 → 167万干净文档 · 5.29亿词 · ~8.10亿子词 token。
各阶段移除原因
- 合并阶段 移除 303,481 条(11.5%):主要因精确重复(MT560 源内重复率约68%)
- 清洗阶段 移除 104,009 条(4.5%):文档过短(<25词)或句子过短(<5词),或内容损坏
- 语言识别阶段 移除 190,504 条(8.6%):非索马里语内容(mC4 源比率最高)
- 深度清洗阶段 移除 32,059 条(1.6%):模板文本(23,948)、片段级语言过滤(6,906)、过长文本(1,060)
- 近似去重阶段 移除 335,148 条(16.7%):近似重复的网页文档
总计 36.7% 的原始文档未通过管道。
管道处理流程
下载 → 合并 + 精确去重 → 清洗 → 语言识别 → 深度清洗 → 近似去重 → 最终输出
每个阶段对应独立的二进制工具,支持链式运行。
数据源分类
- 文档类源(HPLT、CC100、mC4、MADLAD):最低25词,使用 lingua 语言识别(阈值0.50),MinHash + LSH 近似去重
- 句子类源(OPUS、MT560):最低5词,仅标签验证,仅精确去重
Tokenizer(词元化器)
基于最终发布语料库训练了一个 32k BPE 词元化器,训练模型已存储在仓库中。
| 指标 | 数值 |
|---|---|
| 词表大小 | 32,000 |
| 平均 token/词(原生 BPE) | 1.53 |
| 中位数 token/词 | 1.33 |
| 对比 BERT-base | 2.69(差1.75倍) |
| 对比 XLM-RoBERTa | 1.94(差1.27倍) |
| 估计语料库 token 数 | ~8.10亿 |
记录格式
每条语料记录包含统一元数据字段: json { "id": "源标识符:哈希值", "text": "索马里语文本内容", "provenance": { "source": "数据源", "lang": "so", "collected_at": "采集时间" }, "license": "许可证", "content_hash": "sha256:内容哈希", "quality": { "disposition": "kept", "flags": [] }, "schema_version": 1 }
数据源与许可协议
| 下载工具 | 数据集 | 许可证 |
|---|---|---|
download_hplt_so |
HPLT2.0 cleaned (som_Latn) |
CC0-1.0 |
download_cc100_so |
CC-100 Somali | CC-BY-SA-4.0 |
download_mc4_so |
allenai/c4 (so) |
ODC-BY |
download_opus_so |
OPUS ParaCrawl (en-so) |
CC0-1.0 |
download_madlad_so |
MADLAD-400 (so) |
ODC-BY |
download_mt560_so |
MT560 en–so pairs | CC-BY-4.0 |
download_quran_so |
QuranEnc Somali (Yacob Yusuf) | 见源 |
许可证说明: 语料库无单一许可证,每条 CorpusRecord 携带其上游数据集的 license 字段。



