Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

abaza_alignment

Выравнивание параллельных лонгридов русский / абазинский (материалы ВААК).

Код: ноутбук vaak_lingtrain_yandex.ipynb (Colab). На выходе таблица пар предложений в xlsx.

Зачем обход через перевод

Абазинский малоресурсный: модель плохо сравнивает его с русским напрямую. Поэтому:

  1. Скачиваем обе версии одной статьи (абазинская и русская ссылки).
  2. Режем тексты на предложения (Lingtrain).
  3. Каждое абазинское предложение переводим на русский через Yandex Translate. Это только мост: в корпус машинный перевод не попадает.
  4. LaBSE выравнивает два русских текста: оригинал с сайта и перевод с абазинского.
  5. У найденной пары перевод заменяем исходным абазинским предложением.

Итог: пары 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 или поправьте поиск колонок в ячейке с таблицей.

Как запустить

Ячейки по порядку, по одной.

  1. Установка Playwright и библиотек (браузер для скачивания страниц).
  2. Остальные зависимости Lingtrain.
  3. Ключи Яндекса + загрузка Excel со ссылками.
  4. Разбор таблицы (поиск колонок URL).
  5. Функция yandex_translate — перевод-мост, не корпус.
  6. Скачивание текстов: Chromium открывает обе страницы, грубая чистка служебных строк (cookie, соцсети, шапка). Короткие страницы пропускаются. Результат: Google Drive → vaak_align/rows_ok.jsonl. Можно перезапускать: уже скачанные URL не качаются снова. В логе должны быть ok и длинные ru / abq.
  7. Нарезка → Яндекс → 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 — заголовок

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages