Собираем собственный датасет

Урок 61 из 104 курса «HuggingFace: курс по Transformers»: официальный курс Hugging Face Learn (Хаггинг Фейс) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Иногда набор данных, необходимый для создания NLP-приложения, отсутствует, поэтому вам придется создать его самостоятельно. В этом разделе мы покажем, как создать корпус GitHub issues, которые обычно используются для отслеживания ошибок или функций в репозиториях GitHub. Этот корпус может быть использован для различных целей, включая: Изучение времени, необходимого для закрытия открытых issues или pull requests Обучение multilabel classifier, который может помечать issues метаданными на основе описания issue (например, "bug", "enhancement" или "question") Создание системы семантического поиска для нахождения issues, соответствующих запросу пользователя Здесь мы сосредоточимся на создании корпуса, а в следующем разделе займемся приложением семантического поиска. Чтобы оставаться в контексте, мы будем использовать GitHub issues, связанные с популярным open source проектом: 🤗 Datasets! Давайте посмотрим, как получить данные и изучить информацию, содержащуюся в этих issues. Вы можете найти все issues в 🤗 Datasets, перейдя на вкладку Issues репозитория. Как показано на следующем снимке экрана, на момент написания статьи было 331 открытых и 668 закрытых issues. Если вы нажмете на одно из этих issues, вы обнаружите, что оно содержит заголовок, описание и набор меток, характеризующих issue. Пример показан на снимке экрана ниже. Чтобы загрузить все issues репозитория, мы будем использовать GitHub REST API для опроса endpoint'а Issues. Этот endpoint возвращает список JSON-объектов, каждый из которых содержит большое количество полей, включающих заголовок и описание, а также метаданные о статусе issue и так далее. Удобный способ загрузить issues — использовать библиотеку requests, которая является стандартным способом выполнения HTTP-запросов в Python. Вы можете установить библиотеку, выполнив: После установки библиотеки вы можете выполнять GET-запросы к endpoint'у Issues, вызывая функцию requests.get(). Например, вы можете выполнить следующую команду, чтобы получить первое issue на первой странице: Объект response содержит много полезной информации о запросе, включая HTTP-статус-код: где статус 200 означает, что запрос был успешным (список возможных HTTP-статус-кодов можно найти здесь).

План урока

  1. Получение данных[[getting-the-data]]
  2. Очистка данных[[cleaning-up-the-data]]
  3. Расширение набора данных[[augmenting-the-dataset]]
  4. Загрузка набора данных в Hugging Face Hub[[uploading-the-dataset-to-the-hugging-face-hub]]
  5. Создание dataset card[[creating-a-dataset-card]]

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды