|
1 | 1 | # WebMainBench |
2 | 2 |
|
3 | | -WebMainBench 是一个专门用于评测网页正文抽取质量的综合性基准测试工具。 |
| 3 | +WebMainBench 是一个专门用于端到端评测网页正文抽取质量的基准测试工具。 |
4 | 4 |
|
5 | 5 | ## 功能特点 |
6 | 6 |
|
7 | 7 | ### 🎯 **核心功能** |
8 | | -- **多抽取器支持**: 支持 LLM-WebKit、Unstructured、Jina AI 等多种抽取工具 |
9 | | -- **全面的评测指标**: 包含文本相似度、表格抽取、公式识别、结构保持等多维度指标 |
10 | | -- **灵活的数据格式**: 支持 JSONL、JSON 等多种数据格式 |
11 | | -- **人工标注支持**: 支持 `cc-select="true"` 标注的 groundtruth 数据 |
12 | | - |
13 | | -### 📊 **评测指标** |
14 | | -- **文本指标**: 编辑距离、BLEU、ROUGE 等 |
15 | | -- **表格指标**: 表格结构识别准确率 |
16 | | -- **公式指标**: 数学公式抽取质量 |
17 | | -- **结构指标**: 内容层次结构保持度 |
| 8 | +- **多抽取器支持**: 支持 LLM-WebKit、Jina AI 等多种抽取工具 |
| 9 | +- **全面的评测指标**: 包含文本编辑距离、表格结构相似度(TEDS)、公式抽取质量等多维度指标 |
| 10 | +- **人工标注支持**: 评测数据集100%人工标注 |
18 | 11 |
|
19 | 12 | #### 指标详细说明 |
20 | 13 |
|
21 | 14 | | 指标名称 | 中文名称 | 取值范围 | 说明 | |
22 | 15 | |---------|----------|----------|------| |
23 | | -| `overall` | 综合得分 | 0.0-1.0 | 基于编辑距离的整体抽取质量,1.0表示完全匹配 | |
24 | | -| `table_extraction` | 表格抽取质量 | 0.0-1.0 | 表格结构和内容抽取准确性 | |
25 | | -| `formula_extraction` | 公式抽取质量 | 0.0-1.0 | 数学公式识别和抽取准确性 | |
26 | | - |
27 | | -#### CSV榜单字段说明 |
| 16 | +| `overall` | 综合得分 | 0.0-1.0 | 所有指标的平均值,反映整体抽取质量 | |
| 17 | +| `text_edit` | 文本编辑距离 | 0.0-1.0 | 衡量文本内容差异的指标,基于编辑距离计算 | |
| 18 | +| `code_edit` | 代码编辑距离 | 0.0-1.0 | 衡量代码内容差异的指标,基于编辑距离计算 | |
| 19 | +| `table_TEDS` | 表格编辑距离 | 0.0-1.0 | 表格结构和内容抽取准确性,使用TEDS算法 | |
| 20 | +| `table_edit` | 表格编辑距离 | 0.0-1.0 | 衡量表格内容差异的指标,基于编辑距离计算 | |
| 21 | +| `formula_edit` | 公式编辑距离 | 0.0-1.0 | 衡量公式内容差异的指标,基于编辑距离计算,包括行内和行间公式 | |
28 | 22 |
|
29 | | -评测完成后会生成CSV格式的榜单文件,包含以下字段: |
30 | 23 |
|
31 | | -| CSV列名 | 中文名称 | 说明 | |
32 | | -|---------|----------|------| |
33 | | -| `extractor` | 抽取器名称 | 被评测的抽取器标识 | |
34 | | -| `total_samples` | 总样本数 | 评测的样本总数 | |
35 | | -| `success_rate` | 成功率 | 成功处理的样本比例 (0.0-1.0) | |
36 | | -| `overall` | 综合得分 | 基于编辑距离的整体抽取质量 (越高越好) | |
37 | | -| `table_extraction` | 表格抽取得分 | 表格处理能力 (越高越好) | |
38 | | -| `formula_extraction` | 公式抽取得分 | 数学公式处理能力 (越高越好) | |
| 24 | +### 🏗️ **系统架构** |
39 | 25 |
|
40 | | -**排序规则**: 榜单按 `overall` 综合得分降序排列,得分越高排名越靠前。 |
| 26 | + |
41 | 27 |
|
42 | 28 | ### 🔧 **核心模块** |
43 | 29 | 1. **data 模块**: 评测集文件和结果的读写管理 |
44 | 30 | 2. **extractors 模块**: 各种抽取工具的统一接口 |
45 | 31 | 3. **metrics 模块**: 评测指标的计算实现 |
46 | 32 | 4. **evaluator 模块**: 评测任务的执行和结果输出 |
47 | 33 |
|
| 34 | + |
48 | 35 | ## 快速开始 |
49 | 36 |
|
50 | 37 | ### 安装 |
@@ -86,7 +73,7 @@ print(f"Overall Score: {result.overall_metrics['overall']:.4f}") |
86 | 73 | ```jsonl |
87 | 74 | { |
88 | 75 | "track_id": "0b7f2636-d35f-40bf-9b7f-94be4bcbb396", |
89 | | - "html": "<html><body><h1 cc-select="true">这是标题</h1></body></html>", # 人工标注带cc-select="true" 属性 |
| 76 | + "html": "<html><body><h1 cc-select=\"true\">这是标题</h1></body></html>", # 人工标注带cc-select="true" 属性 |
90 | 77 | "groundtruth_content": "# 标题\n\n正文内容", |
91 | 78 | "groundtruth_content_list": [ |
92 | 79 | {"type": "heading", "content": "标题", "level": 1}, |
@@ -120,7 +107,7 @@ print(f"Overall Score: {result.overall_metrics['overall']:.4f}") |
120 | 107 |
|
121 | 108 | ```python |
122 | 109 | # 对比多个抽取器 |
123 | | -extractors = ["llm-webkit", "unstructured", "jina"] |
| 110 | +extractors = ["llm-webkit", "jina-ai"] |
124 | 111 | results = evaluator.compare_extractors(dataset, extractors) |
125 | 112 |
|
126 | 113 | for name, result in results.items(): |
|
0 commit comments