THREADQA
    THREADQA
    Главная
    Курсы
    Java QA AutomationNEW
    Новый курс · уже можно купить
    Python QA Automation
    Pytest, Playwright, Docker
    iOS QA Automation
    XCTest, XCUITest, Fastlane
    Все курсы
    Сравнить Java / Python / iOS
    Практика
    Мок собеседование
    Тренировка перед реальным интервью
    XPath Practice Hub
    Тренажёр XPath-запросов
    Roadmap
    Путь QA-инженера
    Тренажёры
    SQL, Git, Docker, Linux, тест-дизайн
    QA игры
    8 мини-игр для тестировщика
    XPath Dinner
    Практика XPath в игровом формате
    Каталог инструментов
    Инструменты тестирования и сравнения
    Глоссарий ИИ-тестирования
    LLM, RAG, метрики, evals
    С чего начать
    Блог
    FAQ
    Для компаний
    1. Домой
    2. Глоссарий тестирования ИИ
    3. Exact Match и token F1
    Метрики текста

    Exact Match и token F1что это и как применять в тестировании ИИ

    Также: EM, точное совпадение, F1 по токенам

    Exact Match (EM) — метрика, равная 1, если ответ после нормализации (регистр, пунктуация) совпал с эталоном, и 0 в остальных случаях. Token F1 мягче: это гармоническое среднее precision и recall по общим словам ответа и эталона. Обе подходят для коротких фактологических ответов и не подходят для развёрнутых.

    Автор: Олег Пендрак · Обновлено 19 сентября 2026 г.

    Как это работает

    Эти метрики пришли из датасетов вопросов и ответов, где правильный ответ — короткая фраза: имя, число, дата. Любое перефразирование обнуляет EM, поэтому для свободного текста они бесполезны.

    В тестировании LLM их применяют для полей, где значение однозначно: идентификаторы, суммы, статусы, названия.

    Формула
    F1 = 2 × precision × recall / (precision + recall)

    Пример

    Token F1 на чистом Python
    1from collections import Counter
    2
    3def token_f1(pred: str, ref: str) -> float:
    4    p, r = pred.lower().split(), ref.lower().split()
    5    common = sum((Counter(p) & Counter(r)).values())
    6    if common == 0:
    7        return 0.0
    8    precision, recall = common / len(p), common / len(r)
    9    return 2 * precision * recall / (precision + recall)

    Как применять в тестировании ИИ

    Используйте для проверки конкретных значений в ответах и структурированных полях. Для смысла и фактичности развёрнутых ответов нужны другие метрики или LLM-судья.

    Типичные ошибки

    • Применять EM к развёрнутым ответам: любое перефразирование даст 0.
    • Не нормализовать ответы (регистр, пробелы, знаки) и получать ложные провалы.
    • Считать F1 признаком верного факта: неверная дата с теми же словами получит высокий балл.

    Частые вопросы

    Когда использовать Exact Match?

    Для коротких фактологических ответов с однозначным значением: даты, числа, идентификаторы, названия. Для развёрнутых ответов и рассуждений он не подходит, потому что любое перефразирование даёт 0.

    Чем token F1 отличается от Exact Match?

    Exact Match принимает только полное совпадение после нормализации, а token F1 считает долю общих слов и даёт частичный балл. Поэтому F1 мягче и лучше отражает близость коротких ответов.

    На странице

    • Как это работает
    • Пример
    • В тестировании ИИ
    • Типичные ошибки
    • Частые вопросы

    Читайте в блоге

    • Метрики оценки ответов LLM: BLEU, ROUGE, BERTScore

    Связанные термины

    • BLEU
    • ROUGE
    • Семантическая близость
    Все термины глоссария
    THREADQAПлатформа QA Automation

    О платформе

    Обучаем автоматизации тестирования на Java, Python и iOS. Практические курсы, roadmap, тренажёры и персональные мок-интервью.

    Онлайн 24/7

    Курсы

    • Java QA AutomationNEW
    • Python QA Automation
    • iOS QA Automation
    • Про ThreadQA

    Услуги

    • Мок-собеседования

    Инструменты

    • Roadmap QA
    • Тренажёры
    • QA игры
    • Тренажёр XPath
    • XPath Diner
    • Каталог инструментов
    • Глоссарий ИИ-тестирования

    Контакты

    • Email
      info@threadqa.ru
    • Telegram
      @penolegrus
    Публичная офертаПолитика конфиденциальностиУсловия использования
    © 2026·ThreadQA LMS·Все права защищены