ТранскрибаторТранскрибатор
Практическая инструкция

OpenRefine: как привести метки говорящих в расшифровке к единому виду

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

Транскрибатор
ЗАПИСЬПЛАН РАБОТЫСохраните исходные меткиПроверьте вариантыСверьте выгрузкуПроверить результатОТ СЛОВ К РЕЗУЛЬТАТУ
Работа с реальной записьюНаглядный учебный примерШаблон для копирования
1Сохраните исходныеметки2Проверьте варианты3Сверьте выгрузку
Нормализация обозначений должна сохранять исходные значения и возможность вернуться к конкретной реплике.

Отделите исправление метки от определения говорящего

В таблице интервью один голос может быть обозначен У01, У1 и «участник 1». Иногда это разные записи одного человека в пределах разговора, иногда — разные люди или технические ошибки. OpenRefine помогает обнаружить варианты текста; он не устанавливает, кому принадлежит голос.

После получения расшифровки аудио подготовьте рабочую таблицу реплик. Добавьте поля interview_id, time_original, speaker_raw, speaker_clean и text. В speaker_raw сохраните исходное обозначение, в speaker_clean — его рабочую копию. Текст и время в этом проходе не исправляйте вместе с метками.

Идентификатор участника рассматривайте вместе с интервью. У01 в I01 и У01 в I02 не обязаны быть одним человеком. Если нужна аналитика по источникам, используйте пару interview_id + speaker_clean. Иначе очистка одинаковых строк создаст ложную общую личность для разных разговоров.

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

Загрузите таблицу и проверьте её структуру

В OpenRefine откройте Create Project, выберите подготовленный CSV или TSV и перейдите к предварительному просмотру. Проверьте разделители, заголовки и кириллицу. Несколько реплик с запятыми не должны распасться на дополнительные столбцы.

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

OpenRefine создаёт собственный проект и не изменяет первоначальный источник. Это удобно для сравнения результатов: сохраните исходный файл отдельно и обозначьте версию проекта, например speakers_cleanup_v01. Не считайте возможность отмены заменой контрольной копии.

Для каждого интервью подготовьте краткое соответствие обозначений. Например, «в I01 У1 и У01 — один участник, подтверждено по голосу; У02 — другой». Такое решение должно иметь основание в записи. Сходство двух строк в таблице само по себе основанием не является.

Найдите варианты через Text facet и проверьте объединения

Откройте меню рабочего столбца speaker_clean и выберите Facet → Text facet. Фасет показывает точные текстовые значения и их количество. Он не угадывает, какие похожие значения должны совпадать. Сначала просмотрите список: случайные пробелы и разные регистры часто видны сразу.

Для конкретного значения можно использовать edit в фасете; это изменяет все совпадающие ячейки. Поэтому заранее посмотрите, какие строки выбраны, и не применяйте общую замену к нескольким интервью, если в них действуют разные правила участников. Количество строк в фильтрованном представлении относится к выбранной части данных.

Для поиска похожих вариантов используйте Edit cells → Cluster and edit или кнопку Cluster в текстовом фасете. Программа предлагает группы, но изменения применяются только к одобренным объединениям. Сравнивайте каждую группу с таблицей соответствий, а сомнительные предложения оставляйте без объединения.

Метки У01 и У02 отличаются одним символом, но могут обозначать разных людей. Напротив, длинные строки «участник 1» и «У01» могут означать одного человека и не попасть в очевидную группу. Алгоритмическая похожесть полезна для обнаружения кандидатов, а не для окончательного решения.

Проверьте результат и полный состав выгрузки

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

Перед Export снимите активные фасеты и фильтры, если требуется весь набор. Официальная документация предупреждает: многие варианты экспорта с активными фасетами выгружают только совпадающие строки. Сравните число строк и набор interview_id в исходнике и итоговом файле.

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

Зафиксируйте соответствия и причину каждого неоднозначного решения в журнале исправлений. Итогом этой работы является единый способ обозначения участников, а не вывод о частоте тем или достоверности их утверждений.

Учебный пример

Учебный пример: похожие метки не всегда нужно объединять

Данные вымышлены. Для первых двух строк известно по записи, что это один участник I01; для других строк такого общего соответствия нет.

Источник и исходная меткаРабочая меткаОснование
I01 — У1У01Подтверждено: один участник в этом интервью.
I01 — У01У01Уже соответствует принятой схеме.
I01 — У02У02Другой голос; объединять с У01 нельзя.
I02 — У01У01 в I02ID имеет смысл вместе с интервью I02.
I02 — не определёнНЕОПРЕДЕЛЁНЛичность не установлена; нужна отдельная проверка.
Исходноеspeaker_rawСохранено без правкиРабочееspeaker_cleanПрименена схема IDОснованиеЗапись и интервьюПроверено человеком
Сохраняйте исходник, рабочее обозначение и основание решения как разные элементы.

Если в итоговой таблице остались только строки I01, это может быть результатом выгрузки при активном фильтре, а не успешной очисткой всего проекта. Сначала сравните состав источников.

Протокол нормализации меток

Рабочая заготовкаВыделите и скопируйте
Файл и версия таблицы:
Проект OpenRefine:
Исходное количество строк:
Список interview_id:

Интервью:
Исходные варианты speaker_raw:
Рабочая метка speaker_clean:
Основание: проверка записи / принятое обозначение
Что не объединять:
Неопределённые голоса:

Перед выгрузкой:
Фильтры сняты:
Количество строк совпадает:
Все интервью присутствуют:
Текст и таймкоды проверены:
Дата и версия результата:

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

Можно ли объединить все похожие метки автоматически?

Похожесть текста не подтверждает одного говорящего. Просмотрите каждую предлагаемую группу и сверяйте её с конкретным интервью и записью.

Нужно ли менять исходный столбец?

Для проверяемой работы сохраняйте speaker_raw и изменяйте отдельный speaker_clean. Тогда видно, что именно исправлено, и легче восстановить неоднозначное решение.

Почему выгрузка содержит меньше реплик?

Проверьте активные фасеты и фильтры: многие экспортеры сохраняют только совпадающие строки. Для полного набора снимите ограничения и сравните количество строк и источников.

Одинаковый ID в двух интервью означает одного человека?

Только если такая связь установлена отдельно. Обычно обозначение имеет смысл внутри интервью; используйте ID источника вместе с ID участника.