如何构建机器学习数据集

发布于:2024-12-22 ⋅ 阅读:(44) ⋅ 点赞:(0)

1. 常见数据集网站

论文开源代码/数据集:Paperswithcodes
竞赛数据集:Kaggle Dataset
数据集搜索工具:Google Dataset Search
HuggingFace:Hugging Face
魔塔:Model Scope
开源工具包自带:Pytorch, tensorflow

2. 网络数据集获取

curl经常无法工作,因为很容易被屏蔽
方法:使用headless的浏览器,例如selenium模拟浏览器操作。

ip多次访问会被屏蔽
方法:云服务器AWSAzure

使用Beautiful Soup进行网页数据抓取的基本教程

1. 导入库并获取网页内容

首先,我们需要导入requests库来抓取网页内容,然后将其传递给Beautiful Soup来进行解析。

import requests
from bs4 import BeautifulSoup

# 获取网页内容
url = "https://example.com"
response = requests.get(url)
html_content = response.text

# 使用Beautiful Soup解析网页内容
soup = BeautifulSoup(html_content, "html.parser")

在这个示例中,我们通过requests.get()抓取网页内容,并将其传递给BeautifulSoup进行解析。解析器选择"html.parser"是因为它适用于大多数HTML页面。

2. 定位到具体的元素

Beautiful Soup提供了几种方法来查找页面上的元素:

使用find()定位单个元素

find()方法返回文档中第一个符合条件的元素。例如,如果我们要获取页面中的第一个<h1>标签:

h1_tag = soup.find("h1")
print(h1_tag.text)

find()方法可以根据标签名、类名、ID或其他属性来定位元素。如果你想查找具有特定ID的元素,可以这么做:

element_by_id = soup.find(id="specific-id")
print(element_by_id.text)
使用find_all()定位多个元素

如果你想获取所有符合条件的元素,可以使用find_all()方法。例如,抓取所有的<a>标签:

links = soup.find_all("a")
for link in links:
    print(link.get("href"))

在这个例子中,find_all("a")会返回页面中所有的<a>标签,并且我们通过.get("href")提取了每个链接的URL。

3. 提取所需的元素列表

有时候你可能需要提取特定的属性值或者从多个元素中获取信息。Beautiful Soup允许你用更多的筛选条件来过滤数据。

根据类名查找元素

你可以通过class_参数来根据类名查找元素:

# 查找所有class为'item'的div标签
items = soup.find_all("div", class_="item")
for item in items:
    print(item.text)
使用正则表达式过滤内容

你还可以使用正则表达式来匹配标签的内容。例如,查找所有包含“example”文本的链接:

import re
links = soup.find_all("a", href=re.compile("example"))
for link in links:
    print(link.get("href"))
4. 遍历和获取子元素

Beautiful Soup支持树状结构的遍历,你可以轻松访问元素的父标签、子标签、兄弟标签等。例如,获取某个标签的所有子元素:

parent_tag = soup.find("div", class_="parent")
child_tags = parent_tag.find_all("p")
for child in child_tags:
    print(child.text)
5. 提取属性

除了提取标签的内容,Beautiful Soup还允许你提取标签的属性。例如,获取所有<img>标签的src属性:

images = soup.find_all("img")
for img in images:
    print(img.get("src"))

3. 数据集标注方式

在这里插入图片描述
数据标注技巧:

  1. 将置信度高的数据直接使用预测标签
  2. 置信度较低的模型交给人类众包
  3. 可以使用一些简单的programming来标注一定的数据(长度,敏感词等等)

网站公告

今日签到

点亮在社区的每一天
去签到

热门文章