@@ -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\n import torch.nn as nn\n \n class 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抽取器
0 commit comments