Выравнивание параллельных лонгридов русский / абазинский (материалы ВААК).
Код: ноутбук vaak_lingtrain_yandex.ipynb (Colab). На выходе таблица пар предложений в xlsx.
Абазинский малоресурсный: модель плохо сравнивает его с русским напрямую. Поэтому:
- Скачиваем обе версии одной статьи (абазинская и русская ссылки).
- Режем тексты на предложения (Lingtrain).
- Каждое абазинское предложение переводим на русский через Yandex Translate. Это только мост: в корпус машинный перевод не попадает.
- LaBSE выравнивает два русских текста: оригинал с сайта и перевод с абазинского.
- У найденной пары перевод заменяем исходным абазинским предложением.
Итог: пары russian / abaza плюс ссылка и заголовок.
- Google Colab (лучше с GPU — для LaBSE).
- Секреты Colab:
YANDEX_API_KEY— API-ключ Yandex Cloud Translate (не веб-переводчик, а облако).YANDEX_FOLDER_ID— id каталога default, начинается сb1g…. Не id сервисного аккаунта (aje…).
- Excel (или tsv) со ссылками. Пример для ВААК:
vaak_sheet4_links.xlsx(111 пар).
Ключи в код не вписываются: ноутбук берёт их из секретов или спрашивает в поле ввода.
Можно подставить другой xlsx: на шаге загрузки выбрать свой файл. Имя файла в коде не зашито.
Одна строка = одна статья, две ссылки на один материал.
| Назначение | Как назвать колонку | Пример |
|---|---|---|
| абазинская страница | в имени есть url и abq (url_abq) |
https://…/abq/… |
| русская страница | в имени есть url и ru или guess (url_ru, url_ru_guess) |
русская версия той же статьи |
| заголовок (необязательно) | в имени есть title |
название |
Код сам ищет колонки по этим кускам имени. Если русской колонки нет — пытается собрать русскую ссылку из абазинской (убирает /abq/ или /abk/ из пути). Это работает только если URL сайта так устроены.
Код менять не нужно, если колонки названы похоже. Если имена совсем другие (link1, abaza_page) — переименуйте их в Excel или поправьте поиск колонок в ячейке с таблицей.
Ячейки по порядку, по одной.
- Установка Playwright и библиотек (браузер для скачивания страниц).
- Остальные зависимости Lingtrain.
- Ключи Яндекса + загрузка Excel со ссылками.
- Разбор таблицы (поиск колонок URL).
- Функция
yandex_translate— перевод-мост, не корпус. - Скачивание текстов: Chromium открывает обе страницы, грубая чистка служебных строк (cookie, соцсети, шапка). Короткие страницы пропускаются. Результат: Google Drive →
vaak_align/rows_ok.jsonl. Можно перезапускать: уже скачанные URL не качаются снова. В логе должны бытьokи длинныеru/abq. - Нарезка → Яндекс → LaBSE (
sentence_transformer_multilingual_labse,use_proxy_to=True) → подстановка исходного абазинского. Готовый файл: Drive →vaak_align/vaak_aligned.xlsx. По статьям ещёvaak_align/aligned/*.json.
Ошибки скачивания: vaak_align/errors.jsonl. Ошибки выравнивания: vaak_align/align_errors.jsonl.
Колонки xlsx:
russian— предложение с русской страницыabaza— соответствующее исходное абазинское предложениеurl— абазинская ссылкаurl_ru— русская ссылкаtitle— заголовок
После выравнивания в начало/конец пар иногда прилипает шапка и подвал сайта. Это лучше смотреть глазами и чистить отдельно, не в этом ноутбуке.