项目简介
提出一种名为NeuScraper的神经网络网页抓取工具(网络爬虫),旨在改善大规模语言模型预训练中使用的数据集质量。传统基于规则的网页抓取方法难以应对日益复杂的网页结构,导致抓取到的文本含有大量噪声。NeuScraper利用浅层神经网络结构和布局信息高效地提取网页的主要内容,实验结果显示其性能比基准抓取工具提高了20%,且在GPU上运行时能够实现高速处理。该工具开源可用,有助于构建更高质量的预训练语料库。
快速开始
1️⃣ 从 git 克隆
git clone https://github.com/OpenMatch/NeuScraper
cd NeuScraper
2️⃣ 数据
ClueWeb22 是狐猴项目 ClueWeb 数据集系列中最新的一个,支持信息检索、自然语言处理和相关人类语言技术的研究。
ClueWeb22 数据集由卡内基梅隆大学分发,仅用于研究目的。可以通过与卡内基梅隆大学签署数据许可协议并支付包含分发数据集成本的费用来获得数据集。详细获取方法请点击以下链接:
https://www.lemurproject.org/clueweb22/obtain.php
3️⃣环境
首先安装 torch :
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
安装其他软件包:
pip install -r requirements.txt
再生产
1️⃣ 下载 NeuScraper 检查点
git lfs install
git clone https://huggingface.co/OpenMatch/neuscraper-v1-clueweb
2️⃣预处理测试数据,我们使用 en0001-01 作为测试集。
python src/build_test.py --path /path/to/clueweb22
3️⃣ 使用 NeuScraper 进行刮擦
bash scripts/inference.sh
4️⃣ 在 en0001-01 上测试
python src/eval/run_eval.py
主要结果
结果如下所示。
Method | Acc. | Prec. | Rec. | F1 |
---|---|---|---|---|
htmlparser | 40.94 | 40.92 | 98.95 | 57.90 |
bs4 | 41.07 | 41.05 | 99.94 | 58.20 |
html2text | 40.09 | 39.40 | 85.40 | 53.92 |
boilerpipe | 66.28 | 66.89 | 35.52 | 46.40 |
jusText | 62.67 | 72.49 | 27.06 | 39.41 |
lxml | 65.45 | 61.54 | 37.82 | 46.84 |
inscriptis | 45.06 | 42.53 | 96.43 | 59.03 |
readability | 68.26 | 72.08 | 37.01 | 48.91 |
trafilatura | 70.57 | 66.60 | 56.77 | 61.30 |
NeuScraper | 86.66 | 81.15 | 88.30 | 84.58 |
从头开始训练 NeuScraper
注意:从头开始训练 NeuScraper 需要在配备 8 个 NVIDIA A100-40G GPU 和 SSD 的服务器上完成
1️⃣ 我们需要对 Clueweb22 中的页面进行预处理:
python src/build_train.py --path /path/to/clueweb22
该命令会将处理后的数据放入 data/train
中。
它需要将其中一些切片并放入 data/val
中。
2️⃣ 运行以下脚本开始训练
bash scripts/train.sh
训练过程将运行 30 个 epoch,大约需要 40 小时。
项目链接
Was this helpful?
0 / 0