Shanraq.org Shanraq.org
Обучаем простой классификатор
Общество

Информатика: создаём своего цифрового помощника Урок 65 из 72

Обучаем простой классификатор

Вы учите младшего товарища раскладывать карточки: на «читать» он кладёт их к книгам, на «геометрия» — к математике.

Где мы на карте

Урок 65 из 72. Блок «ИИ и выпуск проекта» (63–72). Помощник сохраняет прежние правила напоминания и локальную базу; новая функция только предлагает категорию задачи и допускает отказ.

Обучаем простой классификатор

Ситуация и вопрос

Вы учите младшего товарища раскладывать карточки: на «читать» он кладёт их к книгам, на «геометрия» — к математике. Наш код делает очень упрощённую версию: считает слова только в учебных карточках.

Новые слова без пропусков

Обучение здесь — подсчёт частот слов по меткам train, а не изменение мозга или понимание темы. Токенизация выделяет слова из заголовка. Вес слова — сколько обучающих примеров нужной категории его содержат. Оценка категории — сумма этих весов для нового заголовка. Ничья и отсутствие знакомых слов дают review.

Опорный сигнал

Прочитайте три клетки схемы слева направо, затем закройте третью. Назовите вход и действие в каждой клетке; предскажите, чем закончится путь и какой наблюдаемый факт подтвердит ответ. Сравните рисунок с файлом проекта или контрольным примером. Если число на схеме не получается из данных, исправьте схему, а не данные под красивую картинку.

Разбираем шаг за шагом

Запустите python3 classifier.py "Кітап оқу" в step-07: ожидается suggestion: reading. Для Геометрия есебі — math. Откройте classifier.py: train читает только строки split=train, а suggest суммирует счётчики. Для незнакомого «Задача без примеров» оба счёта равны нулю и ответ review. Измените одну вымышленную обучающую строку и предскажите, как это сдвинет счёт.

Предскажите и проверьте

Запишите ожидаемый вывод до запуска кода. Выполните его в указанной папке step-06 или step-07, сравните результат символ за символом и объясните каждую строку. Затем измените один безопасный вымышленный вход и повторите цикл «предсказать — запустить — изменить — объяснить — проверить». Наблюдение на маленьком наборе не превращайте в обещание для реальных людей.

from classifier import read_examples, train, suggest
model = train(read_examples("labelled_tasks.csv"))
print(suggest("Кітап оқу", model), suggest("Геометрия есебі", model), suggest("unknown", model))

Ожидаемый вывод

reading math review

Поймайте ошибку

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

Изменение проекта

В проекте 2.1 сохраняются база, отчёт, напоминания и резервирование. Файл labelled_tasks.csv содержит только вымышленные примеры. classifier.py выдаёт совет math, reading или review, но не записывает решение в базу. Каждый вывод модели сравнивается с отложенными примерами и пересматривается человеком.

Задание и доказательство

Вычислите вручную счёт для заголовков с одним знакомым словом. Покажите случай ничьей. Затем запустите тесты и объясните расхождение, если оно возникло.

Перенос в новую ситуацию

Сортировщик писем знает слово «счёт», но встречает «счётчик». Почему правила выделения слов могут изменить ответ?

Возврат через 1, 7 и 30 дней

Через 1 день нарисуйте схему по памяти и найдите в ней одну границу применения. Через 7 дней объясните её товарищу, не читая урок, и решите 7 из 10 вопросов блока; ошибочные ответы разберите на конкретных входах. Через 30 дней откройте свежую копию проекта, воспроизведите проверку и перенесите принцип в новый пример. Сохраните свой протокол с входом, ожидаемым и фактическим результатом.

Первоисточник для проверки

Официальный документ

Следующий урок

Проверка модели и матрица ошибок

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

Запишите наблюдение, объяснение, исправление ошибки и изменение своего проекта. Модель укажет первую перепутанную или недоказанную связь, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.