遇见数据集

arshape

收藏
Hugging Face2026-08-21 更新2026-08-22 收录
官方服务:

资源简介:

ArShape 是一个用于评估阿拉伯文本渲染正确性的基准测试数据集。它重点验证了在 Python 环境中(特别是使用 Pillow 库时)常见的阿拉伯文本预处理方法(即先使用 arabic_reshaper 进行字形调整,再使用 python-bidi 进行双向文本重排序)是否在已经具备复杂文本布局能力(如通过 libraqm 实现的 HarfBuzz 和 FriBiDi)的渲染器上导致文本损坏。数据集包含 3 种阿拉伯字体(包括 SF Arabic、Geeza Pro 和 IBM Plex Sans Arabic)与 5 个测试字符串(涵盖纯阿拉伯语、含数字和拉丁字母的混合文本)在 4 种渲染路径(现代引擎+原始文本、现代引擎+预处理、无成形引擎+原始文本、无成形引擎+预处理)下的共 60 个评估样本。每个样本记录了形状相似度(verdict:identical、recognisable、broken)以及字体覆盖情况(glyphs_ok 列,指示是否所有字符都被正确绘制)。数据集还提供了复现脚本(render_bench.py)和详细的评估结果文件(results.jsonl)。该数据集适用于评估阿拉伯文本渲染库、字体覆盖检查以及验证文本渲染管线的正确性。

ArShape is a benchmark dataset for evaluating the correctness of Arabic text rendering. It focuses on verifying whether common Arabic text preprocessing methods in Python environments (especially when using the Pillow library), namely first using arabic_reshaper for glyph reshaping and then python-bidi for bidirectional text reordering, cause text corruption on renderers that already have complex text layout capabilities (such as HarfBuzz and FriBiDi implemented via libraqm). The dataset contains 60 evaluation samples across 3 Arabic fonts (including SF Arabic, Geeza Pro, and IBM Plex Sans Arabic) and 5 test strings (covering pure Arabic, mixed text with digits and Latin letters) under 4 rendering paths (modern engine + raw text, modern engine + preprocessing, no shaping engine + raw text, no shaping engine + preprocessing). Each sample records shape similarity (verdict: identical, recognisable, broken) and font coverage (glyphs_ok column, indicating whether all characters are correctly drawn). The dataset also provides reproduction scripts (render_bench.py) and detailed evaluation result files (results.jsonl). It is suitable for evaluating Arabic text rendering libraries, font coverage checking, and verifying the correctness of text rendering pipelines.

创建时间:
2026-08-19
原始信息汇总

ArShape 数据集详情

数据集概述

ArShape 是一个用于评估阿拉伯文本渲染效果的基准测试数据集,由 Syamjith NK 创建。该数据集包含少于 1K 条数据,采用 CC BY 4.0 许可协议,主要面向文本到图像(text-to-image)任务,专注于阿拉伯语排版、文本渲染、国际化、双向文本(bidi)处理等领域。

核心发现

该数据集验证了阿拉伯文本渲染中的一个关键问题:在使用 arabic_reshaper + python-bidi 预处理后,如果渲染器本身已支持复杂文本布局(complex-text layout),会导致输出文本被破坏。以“welcome”一词为例:

  • 正确渲染(无预处理):مرحبا بكم
  • 经过 reshaper + bidi 后:مكب ابحرم

技术要点

  1. 运行环境检测:渲染器是否已执行复杂文本布局是运行时属性,而非版本号。Pillow 8.2.0+ 的 wheels 捆绑了 libraqm,但 libraqm 在运行时才连接 FriBiDi,因此同一 wheel 在不同机器上的行为可能不同。建议使用 PIL.features.check("raqm") 检测。
  2. 渲染路径对比:数据集测量了 3 种阿拉伯字体 × 5 个字符串 × 4 种渲染路径,基于形状相似度(IoU)评分:
    • 现代引擎 + 原始文本:15 个完全一致
    • 现代引擎 + reshaper + bidi:14 个被破坏
    • 无 shaping 引擎 + 原始文本:15 个全部被破坏
    • 无 shaping 引擎 + reshaper + bidi:6 个被破坏,9 个可识别但仍有缺陷
  3. 字体覆盖陷阱:通过检查字体 cmap 表发现,SF Arabic 和 Geeza Pro 字体完全不含拉丁字母和数字,في عام 2026 中的年份会被渲染为 .notdef 方框。IBM Plex Sans Arabic 则具有完整覆盖。

glyphs_ok 列说明

该列(2026年8月21日新增)用于弥补主评分指标的不足。部分行虽然 verdict = identical(IoU 1.000),但字符串中的 2026Pixelogik 实际被渲染为 .notdef 方框,因为字体缺失这些字符。glyphs_ok 作为独立的字体覆盖检测轴,建议用户同时按 verdictglyphs_ok 过滤数据。

实用性建议

  • 检测渲染器是否支持复杂文本布局(如 Pillow 中检查 raqm)
  • 若支持:直接传入阿拉伯文本,不要预处理
  • 若不支持:执行 reshape,并单独测试数字、拉丁字符和变音符号
  • 确认字体包含所有待渲染字符

配套资源

  • 数据文件:results.jsonl(test 分割)
  • 代码:MIT 许可(参见 LICENSE),可运行 python render_bench.py 重现实验
  • 相关数据集:ArNum-TTS(语音合成中的数字问题)、ArPDF(PDF 往返中的阿拉伯语问题)
  • 详细技术文章:https://syamjithnk.com/arabic-text-rendering
搜集汇总
数据集介绍
arshape 数据集图片
构建方式
ArShape数据集的构建基于对阿拉伯语文本渲染路径的系统性测试,涵盖3种阿拉伯语字体、5组文本样本与4种渲染管线,共计60种组合。每种组合生成的图像与经核验的正确参考渲染进行形状相似性(IoU)评分,并依据视觉判定划分为'完全相同'、'可辨识'与'损坏'三个等级。数据以JSONL格式存储,包含每项渲染的详细结果,并附加了字处理引擎能力检测与字体覆盖范围核查的元数据,确保评估的严谨性与可复现性。
特点
该数据集揭示了阿拉伯语渲染中一个关键缺陷:在已具备复杂文本布局能力的渲染器上,使用标准的'arabic_reshaper'与'python-bidi'预处理会显著损坏输出,导致文本顺序与形状异常。数据集通过量化对比,明确了现代渲染引擎下直接绘制文本的正确性,同时指出了无整形引擎场景下预处理的部分拯救效果,并暴露了系统字体缺失拉丁字符与数字的覆盖陷阱。此外,数据集设计上保持对评分方法的诚实记录,修正了基准构建中的初始偏差,并引入了'glyphs_ok'独立轴以区分整形正确性与字体覆盖完整性。
使用方法
使用ArShape数据集,用户可加载'results.jsonl'文件,通过Python的json模块解析每行记录,检查字段如'verdict'与'glyphs_ok',从而复现实验或验证自身渲染环境。数据集提供了可执行脚本'render_bench.py',允许用户重新生成所有渲染图像与结果数据,便于定制或扩展。同时,数据集附带明确的指导:在Pillow中通过'PIL.features.check("raqm")'检测渲染器是否支持复杂文本布局,若支持则直接传文本,否则需进行整形预处理,并单独测试数字、拉丁字符与变音符的显示;同时需核对所用字体是否涵盖全部所需字符。
背景与挑战
背景概述
ArShape数据集由研究者Syamjith NK于2026年构建,旨在系统性地评估阿拉伯文本在主流渲染管线中的字形塑造正确性。该研究源于一个普遍存在的技术误区:开发者常将`arabic_reshaper`与`python-bidi`的预处理组合奉为圭臬,却未察觉现代复杂文本布局引擎已内置双向算法与字形塑造功能,重复处理导致文本呈现灾难性乱码。该数据集以3种阿拉伯字体、5类文本字符串及4条渲染路径构建基准,通过形状相似度评分量化不同条件下的渲染质量,揭示了“标准配方”在现代引擎中的失效性及在无塑造引擎场景下的部分补救能力。作为阿拉伯文本处理系列基准之一,ArShape与ArNum-TTS、ArPDF共同构成覆盖语音合成、渲染与PDF回路的评测链,为国际化的文本渲染实践提供了可复现的量化参照,推动开发者从版本号依赖转向运行时环境检测的正确认知。
当前挑战
ArShape所应对的核心领域挑战在于,阿拉伯文本渲染的正确性取决于运行时环境是否已具备复杂文本布局能力,而非简单地依赖固定预处理流程。具体而言,当渲染器已集成RaQM或HarfBuzz等塑造引擎时,额外的重塑与双向重排会引发双重处理,导致词序错乱及字形断裂;而在无塑造引擎的环境下,即便预处理也无法解决数字、嵌入拉丁字符及变音符号的定位问题。构建过程中,研究者遭遇双重方法论陷阱:初始将错误的重塑输出误设为评分基准,使正确渲染反而得分最低;同时,早期指标仅比较形状与位置,忽略视觉效果等效性,迫使引入墨水边界框归一化与三级评分体系,方得以揭示部分救援场景的微妙差异。此外,字体覆盖度检测暴露了SF Arabic与Geeza Pro缺乏拉丁字形及数字的致命缺陷,使得看似完美的渲染暗藏占位符,凸显了多维度评估的必要性。
常用场景
经典使用场景
ArShape数据集聚焦于阿拉伯语文本渲染中复杂文本布局的正确性评估,其经典使用场景在于基准测试不同渲染路径下阿拉伯文字形的输出质量。该数据集精心设计了3种阿拉伯字体、5组代表性字符串及4种渲染方式的组合矩阵,通过形状相似度(IoU)评分,为研究者提供了一个可复现、可量化的评测框架。在阿拉伯语自然语言处理与计算机图形学交叉领域,该数据集成为验证文本整形(shaping)与双向算法(bidi)处理流程的标准工具,尤其适用于检测预处理步骤(如arabic_reshaper与python-bidi)在现代渲染引擎中是否引入字符错序或字形破碎等隐性故障。其设计哲学强调环境依赖的运行时属性,而非静态版本号,推动了评测方法从粗粒度通过/失败向细粒度多层级(identical、recognisable、broken)的演进。
衍生相关工作
ArShape作为「阿拉伯语是否能存活于流水线」系列基准的核心理念延伸,衍生出一系列聚焦于不同处理阶段的评测工作。同属该系列的ArNum-TTS数据集考察语音合成中数字的存活率,与ArShape形成文本渲染与音频生成的互补视角;而ArPDF数据集则探讨PDF文档往返过程中阿拉伯语保真度,三者共同构建了从文本整形、语音合成到文档封装的完整评测生态。ArShape的发布推动了上游库的修正,如python-arabic-reshaper的issue #102因其实证发现而被提交,促进了该库对现代渲染环境的适配。在学术研究层面,其方法论启发了后续工作对基准测试固有偏见的反思,鼓励研究者采用多维度评分(如添加glyphs_ok列)来区分形状正确性与字符完整性,这一思路被多个国际文本渲染评测基准所借鉴,成为评估复杂脚本处理流程的参考范式。
数据集最近研究
最新研究方向
ArShape数据集聚焦于阿拉伯文文本渲染管线中的字形塑造与双向文本重排问题,揭示了标准化预处理方案在现代复杂文本布局引擎下的失效现象。该研究通过系统化基准测试,量化了不同渲染路径对阿拉伯文输出质量的影响,并创新性地引入字形覆盖率作为独立评估维度,突破了传统形状相似度指标的局限。这一工作对于多语言文本渲染、字体覆盖检测和国际化软件质量保障具有重要启示,推动了文本处理领域对运行时环境依赖性的深入认识,为构建健壮的文本渲染流程提供了关键数据支撑。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务