Збір, вирівнювання та підготовка українсько-англійського корпусу робочий приклад

Це не картинка, а працюючий код у вашому браузері: він бере сирий HTML двох мовних версій одного матеріалу, витягує текст і метадані, вирівнює речення, чистить і віддає набір JSONL/CSV. Тексти нижче умовні (вигадані заради демонстрації, не цитати реальних осіб). На вашому корпусі те саме робитиме Python-скрипт із журналом помилок і повторним запуском без дублікатів.

Сирий HTML двох версій сторінки

Ліворуч українська версія, праворуч англійська. У коді є меню, реклама, «поділитись», скрипти: усе це не повинно потрапити в корпус. Можна редагувати текст і натиснути кнопку.

UK · умовне джерело example-gov.test/uk/...
EN · умовне джерело example-gov.test/en/...

Вирівнювання речень (UK ↔ EN)

Спочатку абзаци, потім речення. Пара приймається, якщо співвідношення довжин правдоподібне й збігаються «якорі»: числа, дати, власні назви. Решта йде у чергу ручної перевірки, а не губиться.

Чистка тексту

Прибираємо HTML-залишки, нормалізуємо апострофи, лапки, пробіли, дефіси; повтори рядків відсікаємо за хешем. Зміст і особливості мовлення залишаються.

Набір даних і реєстр метаданих

Кожна пара має спільний pair_id, походження кожної версії й статус перевірки. Остаточний перелік полів погоджуємо з вами до старту.

Ручні тексти та аудіо/відео без транскрипції

Приклад того, як виглядає результат розпізнавання мовлення. Фрагменти з низькою впевненістю позначаються для ручної верифікації, початкова транскрипція зберігається незмінною.

Ручні тексти (~100 штук): перевірка на дублікати

Вставте рядки (кожен рядок — окремий текст). Скрипт порівняє їх між собою й з уже зібраним реєстром за нормалізованим хешем.

Що буде в README (покрокова інструкція)

  1. Встановлення: Python 3.11+, python -m venv .venv, pip install -r requirements.txt; для аудіо окремо ffmpeg і модель розпізнавання мовлення.
  2. Структура папок: sources/ (перелік сайтів у YAML), raw/ (сирий HTML), text/ (чисті тексти uk/en), asr/ (транскрипції), registry/ (CSV/XLSX), logs/.
  3. Запуск: python run.py collect, потім align, clean, build. Кожен крок можна запускати окремо й повторно: вже оброблені URL пропускаються за хешем, дублікатів не буде.
  4. Додавання нових джерел: один блок у sources/*.yaml (домен, CSS-селектори заголовка, дати, тексту, правило пошуку мовної версії).
  5. Правила чистки: окремий файл із переліком правил, кожне правило можна вимкнути.
  6. Журнал помилок: logs/errors.csv із URL, кодом, причиною; python run.py retry бере лише невдалі.
  7. Відомі обмеження: сайти змінюють верстку, частину матеріалів не буде англійською, ASR хибить на іменах і шумі. Усе це позначається в метаданих, а не ховається.
  8. Перевірка результатів: звіт покриття (скільки пар, скільки без мовної версії, скільки на ручну верифікацію) і вибірка для вашого контролю.

Додатково в комплекті: відеоінструкція екраном із запуском з нуля й роз'яснення на повторному запуску, як ви й просили.