Skip to content

Commit fa4c55b

Browse files
committed
fix: llm-webkit with preprocessed-html
1 parent 0784253 commit fa4c55b

File tree

5 files changed

+131
-226
lines changed

5 files changed

+131
-226
lines changed

data/WebMainBench_dataset_sample2.jsonl

Lines changed: 2 additions & 0 deletions
Large diffs are not rendered by default.

examples/basic_usage.py

Lines changed: 40 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -953,137 +953,50 @@ def demo_llm_webkit_with_preprocessed_html_evaluation():
953953
# 设置日志
954954
setup_logging(level="INFO")
955955

956-
# 1. 创建包含预处理HTML的测试数据集
957-
print("1. 创建包含预处理HTML的测试数据集...")
956+
# 1. 从真实数据集加载包含预处理HTML的数据
957+
print("1. 从真实数据集加载预处理HTML数据...")
958958

959-
samples = []
959+
# 使用DataLoader加载真实的样本数据
960+
dataset_path = Path("data/WebMainBench_dataset_sample2.jsonl")
961+
print(f"📂 数据集文件: {dataset_path}")
960962

961-
# 样本1: 包含预处理的HTML(模拟第一阶段LLM简化后的结果)
962-
sample_1_data = {
963-
"id": "preprocessed_sample_1",
964-
"html": """<html><body><h1>原始复杂HTML</h1><p>这里是原始的复杂HTML内容...</p></body></html>""",
965-
# 这是关键:包含llm_webkit_html字段(预处理后的简化HTML)
966-
"llm_webkit_html": """
967-
<div _item_id="1">
968-
<h1>深度学习基础教程</h1>
969-
<p>深度学习是机器学习的一个重要分支,通过多层神经网络来学习数据的表征。</p>
970-
</div>
971-
<div _item_id="2">
972-
<h2>核心概念</h2>
973-
<p>神经网络由多个层组成,每层包含多个神经元。</p>
974-
</div>
975-
<div _item_id="3">
976-
<pre><code class="language-python">
977-
import torch
978-
import torch.nn as nn
979-
980-
class SimpleNet(nn.Module):
981-
def __init__(self):
982-
super().__init__()
983-
self.fc = nn.Linear(784, 10)
984-
985-
def forward(self, x):
986-
return self.fc(x)
987-
</code></pre>
988-
</div>
989-
""",
990-
"groundtruth_content": """# 深度学习基础教程
991-
992-
深度学习是机器学习的一个重要分支,通过多层神经网络来学习数据的表征。
993-
994-
## 核心概念
995-
996-
神经网络由多个层组成,每层包含多个神经元。
997-
998-
```python
999-
import torch
1000-
import torch.nn as nn
1001-
1002-
class SimpleNet(nn.Module):
1003-
def __init__(self):
1004-
super().__init__()
1005-
self.fc = nn.Linear(784, 10)
1006-
1007-
def forward(self, x):
1008-
return self.fc(x)
1009-
```""",
1010-
"groundtruth_content_list": [
1011-
{"type": "heading", "content": "深度学习基础教程", "level": 1},
1012-
{"type": "paragraph", "content": "深度学习是机器学习的一个重要分支,通过多层神经网络来学习数据的表征。"},
1013-
{"type": "heading", "content": "核心概念", "level": 2},
1014-
{"type": "paragraph", "content": "神经网络由多个层组成,每层包含多个神经元。"},
1015-
{"type": "code", "content": "import torch\nimport torch.nn as nn\n\nclass SimpleNet(nn.Module):\n def __init__(self):\n super().__init__()\n self.fc = nn.Linear(784, 10)\n \n def forward(self, x):\n return self.fc(x)", "language": "python"}
1016-
]
1017-
}
1018-
# samples.append(DataSample.from_dict(sample_1_data))
1019-
1020-
# 样本2: 包含表格的预处理HTML
1021-
sample_2_data = {
1022-
"id": "preprocessed_sample_2",
1023-
"html": """<html><body><h1>原始表格页面</h1><table>...</table></body></html>""",
1024-
"llm_webkit_html": """
1025-
<div _item_id="1">
1026-
<h1>模型性能对比</h1>
1027-
<p>以下是不同深度学习模型在CIFAR-10数据集上的表现:</p>
1028-
</div>
1029-
<div _item_id="2">
1030-
<table>
1031-
<thead>
1032-
<tr>
1033-
<th>模型</th>
1034-
<th>准确率</th>
1035-
<th>参数量</th>
1036-
</tr>
1037-
</thead>
1038-
<tbody>
1039-
<tr>
1040-
<td>ResNet-18</td>
1041-
<td>95.3%</td>
1042-
<td>11.7M</td>
1043-
</tr>
1044-
<tr>
1045-
<td>VGG-16</td>
1046-
<td>92.7%</td>
1047-
<td>138M</td>
1048-
</tr>
1049-
</tbody>
1050-
</table>
1051-
</div>
1052-
""",
1053-
"groundtruth_content": """# 模型性能对比
1054-
1055-
以下是不同深度学习模型在CIFAR-10数据集上的表现:
1056-
1057-
| 模型 | 准确率 | 参数量 |
1058-
|------|--------|--------|
1059-
| ResNet-18 | 95.3% | 11.7M |
1060-
| VGG-16 | 92.7% | 138M |""",
1061-
"groundtruth_content_list": [
1062-
{"type": "heading", "content": "模型性能对比", "level": 1},
1063-
{"type": "paragraph", "content": "以下是不同深度学习模型在CIFAR-10数据集上的表现:"},
1064-
{"type": "table", "content": "| 模型 | 准确率 | 参数量 |\n|------|--------|---------|\n| ResNet-18 | 95.3% | 11.7M |\n| VGG-16 | 92.7% | 138M |"}
1065-
]
1066-
}
1067-
# samples.append(DataSample.from_dict(sample_2_data))
1068-
#
1069-
# # 创建数据集并添加样本
1070-
# dataset = BenchmarkDataset(name="preprocessed_html_test", description="预处理HTML功能测试数据集")
1071-
1072-
1073-
1074-
# 本地加载数据集
1075-
jsonl_file_path = "/home/lulindong/Pycharm_projects/cc/WebMainBench_llm-webkit_v1_WebMainBench_dataset_merge_with_llm_webkit.jsonl"
963+
if not dataset_path.exists():
964+
print(f"❌ 数据文件不存在: {dataset_path}")
965+
print("请确保已运行数据提取命令创建样本数据集")
966+
return
967+
968+
# 加载数据集
969+
dataset = DataLoader.load_jsonl(dataset_path, include_results=False)
970+
dataset.name = "real_preprocessed_html_test"
971+
dataset.description = "基于真实数据的预处理HTML功能测试"
1076972

1077-
# 使用DataLoader加载本地JSONL数据
1078-
dataset = DataLoader.load_jsonl(jsonl_file_path)
1079-
for sample in samples:
1080-
dataset.add_sample(sample)
1081973

1082-
print(f"✅ 测试数据集包含 {len(dataset)} 个样本")
1083-
print("📋 每个样本都包含:")
1084-
print(" - html: 原始复杂HTML")
1085-
print(" - llm_webkit_html: 预处理后的简化HTML(包含_item_id标记)")
1086-
print(" - groundtruth_content: 标准答案")
974+
print(f"✅ 真实数据集加载成功,包含 {len(dataset)} 个样本")
975+
print("📋 真实数据样本包含:")
976+
print(" - html: 原始网页HTML")
977+
print(" - llm_webkit_html: LLM预处理后的简化HTML(包含_item_id标记)")
978+
print(" - groundtruth_content: 人工标注的标准答案")
979+
print(" - llm_webkit_md: LLM提取的markdown内容")
980+
981+
# 显示第一个样本的预览
982+
if len(dataset.samples) > 0:
983+
first_sample = dataset.samples[0]
984+
sample_dict = first_sample.to_dict()
985+
986+
print(f"\n🔍 第一个样本预览:")
987+
print(f" - ID: {sample_dict.get('track_id', 'N/A')}")
988+
print(f" - URL: {sample_dict.get('url', 'N/A')[:60]}...")
989+
990+
# 检查是否有llm_webkit_html字段
991+
if hasattr(first_sample, 'llm_webkit_html') or 'llm_webkit_html' in sample_dict:
992+
llm_html = getattr(first_sample, 'llm_webkit_html', sample_dict.get('llm_webkit_html', ''))
993+
if llm_html:
994+
print(f" - 预处理HTML长度: {len(llm_html)} 字符")
995+
print(f" - 包含_item_id数量: {llm_html.count('_item_id')}")
996+
else:
997+
print(f" - ⚠️ 预处理HTML字段为空")
998+
else:
999+
print(f" - ❌ 未找到llm_webkit_html字段")
10871000
print()
10881001

10891002
# 2. 创建预处理HTML模式的LLM-WebKit抽取器
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
extractor,dataset,total_samples,success_rate,overall,code_edit,formula_edit,table_TEDS,table_edit,text_edit
2-
llm-webkit,preprocessed_html_test,2,1.0,0.5029,0.5,1.0,0.5,0.5,0.0143
1+
extractor,dataset,total_samples,success_rate,overall,code_edit,formula_edit,table_TEDS,table_edit,text_edit
2+
llm-webkit,real_preprocessed_html_test,2,1.0,0.1042,0.0,0.0,0.0,0.0,0.521

0 commit comments

Comments
 (0)