Python, Подготовка данных

Быстрая разметка датасета для моделей обучения с учителем

Время прочтения: 2 мин.

Разметка датасета — дорогостоящий процесс, требующий ручного труда. Суть разметки заключается в проставлении признаков (категорий, классов) напротив каждой строки датасета.

Пример, есть датасет чатов:

  • Сообщение | класс (позитивный, негативный, нейтральный)
  • «Привет как дела?» | ?
  • «Это лучшая машина на которой я ездил» | ?
  • «Дела нормально.» | ?
  • «Эта деталь сгнила!» | ?

Наша задача символы вопросов заменить на классы, которым, по нашему мнению, соответствуют высказывание – «позитивный», «негативный» или «нейтральный».

Для решения поставленной задачи существует очень удобная надстройка для jupyter notebook – PIGEON. Ссылка на git репозиторий автора разработки.

Итак, к делу:

!pip install pigeon-jupyter
import pandas as pd
from pigeon import annotate
annotations = annotate( 
    examples = [  'Привет как дела?'
                , 'Это лучшая машина на которой я ездил.'
                , 'Дела нормально.'
                , 'Эта деталь сгнила!'],
    options=['позитивный', 'негативный','нейтральный']
)

Функций annotate библиотеки pigeon возвращает список кортежей, первый элемент кортежа является нашим X второй Y, который мы выбрали с помощью кнопок надстройки:

annotations
pd.DataFrame(annotations, columns=['Сообщение(x)','класс(y)'])

Это очень удобный и быстрый способ для разметки данных и подготовки валидационных выборок.

Результат можно представить в pandas.DataFrame и сохранить в csv/xls файл для дальнейшего использования.

Если вы знаете другие инструменты или методы разметки, просим поделиться в комментариях.

Ссылка на пример статьи в colab

Советуем почитать