02.03.2023 | Leave a comment Содержание Lyrics ♪♪ You can do anything you set your mind to, man ♪♪ #sanderlei #sanderleiLingtrain.ПриложениеТекстыВыравниваниеСкрипты на питонеВизуализация выравниванияРешаем конфликтыВеб-приложениеБета-версияDockerНовый функционалПродолжимКонфликтыРедакторВыравнивание через переводЭкспортКнигаTMXDatabaseСобираем все вместеИтог и планыСсылки🎉 Всех с Наступающим! Мира, счастья и добра в Новом Году! Новое эссе Путина об Украине раскрывает имперские амбиции События Центра Евразия Дальнейшее чтение Подробнее из УкраиныAlert yandex-english-to-french — Googlesuche Lyrics ♪♪ You can do anything you set your mind to, man ♪♪ #sanderlei LyricsWednesday Dance Lady Gaga — Bloody Mary | TikTok LETRAWandinha Dance Tradução em Português LyricsAvatar: The Way of Water The Weeknd — Nothing Is Lost (You Give Me Strength) LyricsBTS V — It’s Beginning To Look A Lot Like Christmas LyricsMockingbird — Eminem LyricsCalm Down — Rema ТекстCalm Down — Rema — Русский перевод LETRAGato de Noche — Bad Bunny & Ñengo Flow LyricsGato de Noche — English Translation — Bad Bunny & Ñengo Flow LyricsEscapism — RAYE Şarkı SözleriEscapism — RAYE — Türkçe Çeviri SongtextEscapism — RAYE — Deutsche Übersetzung TestoEscapism — RAYE — Traduzione Italiana LyricsLET GO — Central Cee Lyricsgolden hour — JVKE LyricsBLUE: SSD — DAGames LyricsRush — Ayra Starr Lyrics(歌詞) — Joji Songtexte(歌詞) — Joji Lyrics(歌词) — Joji Lyrics(歌詞) — Joji Lyrics(歌詞) — Joji LyricsSPIT IN MY FACE! — ThxSoMch Lyricsnot a home — Pardyalone เนื้อเพลงnot a home — Pardyalone — แปลภาษาไทย Lyricsi’m yours — Isabel LaRosa ترانهi’m yours — Isabel LaRosa — ترجمه و متن ترانه Текст песниTHE STORY OF ALISHER — Oxxxymiron LyricsTHE STORY OF ALISHER — Oxxxymiron — English Translation Lyrics(LYRIC) — Joji 歌詞Shinunoga E-Wa — Fujii Kaze LyricsShinunoga E-Wa — Fujii Kaze — English Translation LyricsShinunoga E-Wa — Fujii Kaze — Romanized ТекстShinunoga E-Wa — Fujii Kaze — Русский перевод Lời bài hátSee Tình — Hoàng Thuỳ Linh LyricsSee Tình — Hoàng Thuỳ Linh — English Translation LETRAARRANCARMELO — WOS LyricsARRANCARMELO — WOS — English Translation TestoARRANCARMELO — WOS — Traduzione Italiana LETRAQUEVEDO — BZRP Music Sessions 52 LyricsQUEVEDO — BZRP Music Sessions 52 — English Translation TestoQUEVEDO — BZRP Music Sessions 52 — Traduzione Italiana LETRASIGUE — BENY JR LyricsSIGUE — BENY JR — English Translation ParolesSIGUE — BENY JR — Traduction Française LyricsMy Type — Saweetie เนื้อเพลงMy Type — Saweetie — แปลภาษาไทย SongtextWeihnachtsmann & Co. KG (Intro Song) — SuperRTL LyricsWeihnachtsmann & Co. KG (Intro Song) — SuperRTL — English Translation 歌詞すずめの戸締まり — すずめ Lyricsすずめの戸締まり — すずめ — English Translation LETRAAura — Cuco LyricsAura — Cuco — English Translation LåttexterAura — Cuco — Svensk översättning LETRAGatita — Bellakath LyricsGatita — Bellakath — English Translation 가사Ditto — NewJeans (뉴진스) LyricsDitto — English Translation — NewJeans (뉴진스) LyricsDitto — Romanized — NewJeans (뉴진스) LyricsO Holy Night — Christmas Songs LyricsJingle Bells — Christmas Songs LyricsThe Twelve Days of Christmas 가사Ditto — NewJeans LyricsDitto — NewJeans — English Translation LyricsDitto — NewJeans — Romanized TekstLoš Sam Ti Ja — Džordži LyricsLoš Sam Ti Ja — Džordži — English Translation Lyrics(歌詞) — Joji LETRANINGUÉM ME ENSINOU — Lagum LETRAPepas — Farruko LETRAiPhone 14 Pro Max #sanderlei Sanderlei SilveiraMorro de São Paulo — BA #sanderlei Sanderlei SilveiraMorro de São Paulo — BA #sanderlei LETRABrisa — IZA Sanderlei SilveiraSão João — Festa Junina — Salvador BA #sanderlei LETRAANAVITÓRIA — O Tempo É Agora Sanderlei SilveiraSão João — Festa Junina — Salvador BA Sanderlei SilveiraSanderlei Silveira — Capoeira Sanderlei SilveiraSalvador BA #sanderlei Sanderlei SilveiraSalvador BA Sanderlei SilveiraMont Blanc — France #sanderlei Sanderlei SilveiraCostão do Santinho #sanderlei Sanderlei SilveiraCostão do Santinho — Senhor Do Tempo — Charlie Brown Jr. Sanderlei SilveiraCostão do Santinho — Lutar Pelo Que É Meu — Charlie Brown Jr. #sanderlei Sanderlei SilveiraQuem é Sanderlei Silveira? LyricsMy Type — Saweetie LyricsWeihnachtsmann & Co. KG (Intro Song) — SuperRTL Lyricsすずめの戸締まり — すずめ Lyrics(歌詞) — Joji LyricsAura — Cuco LyricsGatita — Bellakath Lyrics(歌詞) — Joji LyricsMad Max — Lil Durk & Future Lyrics(歌词) — Joji LyricsDitto — NewJeans (뉴진스) Lyrics(歌詞) — Joji LyricsO Holy Night — Christmas Songs Lyrics(歌詞) — Joji Lyrics(歌詞) — Joji LyricsJingle Bells — Christmas Songs Lyrics(歌詞) — Joji LyricsThe Twelve Days of Christmas LyricsGato de Noche — Bad Bunny & Ñengo Flow Lyrics(歌詞) — Joji Lyrics(LYRIC) — Joji LyricsLoš Sam Ti Ja — Džordži LyricsWednesday Dance LETRAWandinha Dance LyricsAvatar: The Way of Water LyricsBTS V — It’s Beginning To Look A Lot Like Christmas LyricsMockingbird — Eminem LyricsEscapism — RAYE LyricsMad Max — Lil Durk LyricsBLUE: SSD — DAGames Lyrics(歌詞) — Joji LyricsRush — Ayra Starr LyricsSPIT IN MY FACE! — ThxSoMch Lyrics(LYRIC) — Joji Lyricsnot a home — Pardyalone Lyricsi’m yours — Isabel LaRosa LyricsShinunoga E-Wa — Fujii Kaze LyricsSee Tình — Hoàng Thuỳ Linh LyricsARRANCARMELO — WOS LyricsQUEVEDO — BZRP Music Sessions 52 LyricsSIGUE — BENY JRLingtrain. Приложение для создания мультиязычных книг и параллельных корпусов / ХабрХочу показать, как создать мультиязычный параллельный корпус и книги при помощи пет-проекта, которым я занимаюсь несколько лет.Для примера возьмем 10 редакций «Мастера и Маргариты» Михаила Булгакова (ru, uk, by, en, fr, it, es, de, hu, zh). Сначала выровняем девять переводов с оригиналом, а затем выровняем все вместе. Получим параллельный корпус на 10 языках и много красивых книг.ПриложениеLingtrain Alignment Studio — это веб-приложение, основная логика которого выполняется при помощи библиотеки lingtrain-aligner. Выравнивать можно прямиком из кода на python (пример будет ниже), либо через приложение. В приложении будет удобней разрешать конфликты и там есть редактор, позволяющий корректировать получающийся корпус плюс дополнительные опции по верстке. Код у проекта открытый, можно посмотреть как все работает внутри.Механизм выравнивания происходит при помощи эмбеддингов мультиязычных языковых моделей и логики по их сравнению. Это тема для отдельного разговора, я лишь напомню, что эмбеддингами в машинном обучении называют сжатые векторные представления данных, несущие в себе информацию об этих данных. В нашем случае это тексты, а информация, сохраняемая в эмбеддингах, несет в себе смысл этих текстов. Можно математически измерять близость текстов по смыслу просто меряя расстояние между соответствующими векторами. В библиотеке поддерживаются модели LaBSE (100+ языков) и sentence-transformers (50+ языков).Основная проблема выравнивания состоит в том, что в текстах разное количество предложений. Это связано как со стилем конкретного переводчика, так и с особенностями конкретного языка. Например, длинное сложное предложение с прямой речью на русском языке при переводе на китайский скорее всего будет разбито на 3-4 предложения покороче. Кроме того, переводчик легко может добавить что-нибудь от себя, привнося в текст новую информацию, может и что-то выкинуть. Один из текстов может быть купирован и тогда в нем образуется лакуна, отсутствующая в другой редакции. Все это нужно учитывать при выравнивании.ТекстыСначала наши тексты необходимо подготовить. Я буду показывать на примере «Мастера», вы можете взять свои тексты. Главное, чтобы в них содержалась одна и та же информация, например, оригинал художественного произведения и его перевод. Сохраним тексты в отдельные txt файлы и назовем их master_ru.txt, master_en.txt, master_de.txt и так далее.В сырых текстах может содержаться лишняя для нас информация — номера страниц, сноски и примечания, содержание, что-нибудь про конкретное издание в начале или конце текста. Это удаляем.Имеем следующие тексты:Мастер и МаргаритаМ. А. Булгаков.ЧАСТЬ ПЕРВАЯГлава 1Никогда не разговаривайте с неизвестнымиОднажды весною, в час небывало жаркого заката, в Москве, на Патриарших прудах, появились два гражданина. Первый из них, одетый в летнюю серенькую пару, был маленького роста, упитан, лыс, свою приличную шляпу пирожком нес в руке, а на хорошо выбритом лице его помещались сверхъестественных размеров очки в черной роговой оправе. Второй – плечистый, рыжеватый, вихрастый молодой человек в заломленной на затылок клетчатой кепке – был в ковбойке, жеваных белых брюках и в черных тапочках.…The Master and MargaritaMikhail BulgakovBOOK ONECHAPTER 1Never Talk with StrangersAt the hour of the hot spring sunset two citizens appeared at the Patriarch’s Ponds.One of them, approximately forty years old, dressed in a grey summer suit, was short, dark-haired, plump, bald, and carried his respectable fedora hat in his hand. His neatly shaven face was adorned with black horn-rimmed glasses of a supernatural size.…Помимо основного повествования в текстах содержится метаинформация, — это название книги и имя автора, номера глав и частей и подобные вещи. Метаинформация не является непосредственно частью текста, но это полезная вещь и мы хотим сохранить ее с учетом координат в массиве остальных предложений.Для этого пометим ее специальной разметкой.МеткаЗначениеПример%%%%%author.АвторЛю Ци Синь%%%%%author.%%%%%title.НазваниеЗадача трёх тел%%%%%title.%%%%%qtext.ЦитатаТот, кто спасает одну жизнь, спасает весь мир.%%%%%qtext.%%%%%qname.Подпись под цитатойНародная мудрость%%%%%qname.%%%%%h2. %%%%%h3. %%%%%h4. %%%%%h5. %%%%%h5.Заголовоки различного размераГлава 1%%%%%h3. Теги надо проставить в конце строк. Теперь наши тексты выглядят так:Мастер и Маргарита%%%%%title.М. А. Булгаков%%%%%author.ЧАСТЬ ПЕРВАЯ%%%%%h2.Глава 1%%%%%h3.Никогда не разговаривайте с неизвестными%%%%%h3.Однажды весною, в час небывало жаркого заката, в Москве, на Патриарших прудах, появились два гражданина. Первый из них, одетый в летнюю серенькую пару, был маленького роста, упитан, лыс, свою приличную шляпу пирожком нес в руке, а на хорошо выбритом лице его помещались сверхъестественных размеров очки в черной роговой оправе. Второй – плечистый, рыжеватый, вихрастый молодой человек в заломленной на затылок клетчатой кепке – был в ковбойке, жеваных белых брюках и в черных тапочках.The Master and Margarita%%%%%title.Mikhail Bulgakov%%%%%author.BOOK ONE%%%%%h2.CHAPTER 1%%%%%h3.Never Talk with Strangers%%%%%h3.At the hour of the hot spring sunset two citizens appeared at the Patriarch’s Ponds.One of them, approximately forty years old, dressed in a grey summer suit, was short, dark-haired, plump, bald, and carried his respectable fedora hat in his hand. His neatly shaven face was adorned with black horn-rimmed glasses of a supernatural size.Полные версии всех размеченных текстов можно найти здесь.ВыравниваниеСкрипты на питонеСначала покажу вам как можно выровнять тексты на python. Плюс такого подхода в том, что это можно делать в Colab’е (интерактивная среда от Google, дающая бесплатный доступ к видеокартам) с использованием GPU, это ускоряет процесс первичного выравнивания в разы, если у вас нет видеокарты на локальном компьютере. Однако для длинных текстов может понадобиться контролировать процесс выравнивания и менять параметры по ходу, а это удобней делать через веб-интерфейс. Подходы можно совместить, так как в приложении теперь поддерживается загрузка выравнивания (хранение реализовано в виде sqlite базы данных).Вот рабочий Colab-блокнот, его можно менять, вставлять свои тексты и экспортировать результат в разные форматы.Давайте разберем как это работает. Сначала устанавливаем библиотеку: pip install lingtrain-aligner==0.8.7Импортируем компоненты:from lingtrain_aligner import ( preprocessor, splitter, aligner, resolver, reader, helper, vis_helper, metrics, )Далее прочитаем наши текстовые файлы:text1_input = "harper_lee_ru.txt" text2_input = "harper_lee_en.txt" with open(text1_input, "r", encoding="utf8") as input1: text1 = input1.readlines() with open(text2_input, "r", encoding="utf8") as input2: text2 = input2.readlines()Определим также путь до SQLite базы данных (это хранилище со всей необходимой для выравнивания информацией) и параметрами языка lang_from и lang_to. Эти параметры очень важны, так как они влияют на правила разбиения строк на предложения:db_path = "db/book.db" lang_from = "ru" lang_to = "en" models = ["sentence_transformer_multilingual", "sentence_transformer_multilingual_labse"] model_name = models[0]Если нужного языка в списке пока нет, но он поддерживаются моделями, то используйте код xx, тогда к тексту будут применены стандартные правила фильтрации и разбиения на предложения. Сохраним структуру абзацев и разобъем на строки:text1_prepared = preprocessor.mark_paragraphs(text1) text2_prepared = preprocessor.mark_paragraphs(text2) splitted_from = splitter.split_by_sentences_wrapper(text1_prepared , lang_from) splitted_to = splitter.split_by_sentences_wrapper(text2_prepared , lang_to)Создадим нашу базу данных и наполним ее данными, взятыми из нашей разметки. В базе хранятся строки с координатами абзацев и глав, метаданные, маппинг выровненных строк на их изначальный состав и местоположение.aligner.fill_db(db_path, splitted_from, splitted_to)Теперь можно выровнять документы. Процесс выравнивания идет кусками с размером batch_size, вокруг каждого куска берется дополнительное количество строк размера window, чтобы гарантированно захватить необходимые строки. Модель берет заданное количество строк первого текста и подбирает в соответствующем фрагменте второго текста лучшие соответствия, используя векторные представления. На этом основывается первоначальное выравнивание. Для того, чтобы выровнять первые четыреста строк, выполним следующую команду.batch_ids = [0,1,2,3] aligner.align_db(db_path, \ model_name, \ batch_size=200, \ window=30, \ batch_ids=batch_ids, \ save_pic=False, embed_batch_size=50, \ normalize_embeddings=True, \ show_progress_bar=True )Визуализация выравниванияНа то, что получилось можно посмотреть! Это возможно благодаря тому, что в базе мы храним изначальные номера строк для выровненного корпуса. Воспользуемся модулем vis_helper. Так как строк у нас 400, то нарисуем все на одной картинке, задав параметр batch_size=400. Если указать, например, batch_size=50, то получим 4 картинки поменьше.vis_helper.visualize_alignment_by_db(db_path, output_path="alignment_vis.png", \ lang_name_from=lang_from, \ lang_name_to=lang_to, \ batch_size=400, \ size=(800,800), \ plt_show=True)Посмотрим на картинку. Выравнивание предсказуемо идет от начала к концу, но есть конфликты. Основных причин две:У модели было слишком много удачных вариантов.Так случается, если строка короткая. Например, в тексте идет диалог, фразы в нем односложные, используются одни и те же имена.У модели было слишком мало вариантов и правильного среди них нет.У текстов разные тенденции к разделению на предложения. Один постепенно «убегает из окна» и мы не ищем правильные варианты там, где надо. Окно можно увеличить, но не слишком сильно, потому что у модели становится больше вариантов для ошибок. Нужен компромисс.Хорошим решением мне видится регрессия на координаты строк при выравнивании батча и сдвиг окна на конец потока при выравнивании следующего. Минусом тут будет потеря возможности распараллеливания обсчета батчей, так как они станут зависимы друг от друга.Сейчас окно сдвигается на основе отношения длин текстов. Батчи не зависимы, но есть другая проблема, — если один из текстов это только часть книги, а второй текст полный, то окно быстро убежит от правильного потока выравнивания.Решаем конфликтыДавайте теперь разбираться с шероховатостями. Глядя на картинку, мы видим, что есть непрерывные цепочки, есть разрывы и есть выбросы. Например, для предложений 10,11,12 модель подобрала предложения 15,16,17 из второго текста. Эта цепочка хорошая. Все, что находится между цепочками назовем конфликтом. При таком определении конфликта можно измерить его размер и подобрать стратегию разрешения. Логика по решению проблем находится в модуле resolver.Для начала давайте посмотрим на все найденные конфликты:conflicts_to_solve, rest = resolver.get_all_conflicts(db_path, min_chain_length=2, max_conflicts_len=6)conflicts to solve: 42 total conflicts: 45При этом в переменную conflicts_to_solve попадут конфликты, которые соответствуют заданным параметрам поиска, а в переменную rest остальные.Выведем на экран статистику:resolver.get_statistics(conflicts_to_solve) resolver.get_statistics(rest)('2:3', 25) ('3:3', 5) ('3:6', 2) ('3:5', 2) ('2:4', 2) ('3:4', 2) ('2:1', 1) ('3:2', 1) ('5:5', 1) ('4:5', 1) ('5:8', 1) ('5:9', 1)Видим, что чаще всего попадаются конфликты размера 2:3, это означает, что переводчик на английский часто разбивал одно предложение на два.Посмотреть на конфликт можно следующей командой:resolver.show_conflict(db_path, conflicts_to_solve[10])105 – Браво! – вскричал иностранец, – браво! 106 Вы полностью повторили мысль беспокойного старика Иммануила по этому поводу. 122 'Bravo!' cried the foreigner. 123 'Bravo! 124 You have perfectly repeated restless old Immanuel's thought in this regard.Видим, что строки 122 и 123 нужно бы сложить в одну, тогда правильное сопоставление выглядело бы как [105]-[122,123] и [106]-[124]. Как же научить этому программу? Так как она уже умеет выбирать лучший из предоставленных вариантов, то давайте ей их и предоставим. Конфликты у нас не очень большие, поэтому мы будем брать все возможные варианты разрешения конфликта, считать для них коэффициент похожести, суммировать и брать лучший. В данном случае это будет два варианта:[105]-[122] // [106]-[123,124] [105]-[122,123] // [106]-[124]Что до стратегии выравнивания, то на данный момент лучше всего себя проявила такая, — сначала ищем конфликты при минимальной длине хорошей цепочки 2 (при таком параметре конфликтов найдется больше всего) и максимальной длиной конфликта не больше 6. Разрешаем все найденные конфликты, при этом большие конфликты становятся меньше так мы их частично разрешили. Затем увеличиваем оба параметра, ищем и снова разрешаем, добивая остатки.Выглядит это так:steps = 3 batch_id = -1 #выровнять все доступные батчи for i in range(steps): conflicts, rest = resolver.get_all_conflicts(db_path, min_chain_length=2+i, max_conflicts_len=6*(i+1), batch_id=batch_id) resolver.resolve_all_conflicts(db_path, conflicts, model_name, show_logs=False) vis_helper.visualize_alignment_by_db(db_path, output_path="img_test1.png", batch_size=400, size=(800,800), plt_show=True) if len(rest) == 0: breakРезультат после первого шага:После второго:Теперь у нас выравнивание, которое хранится в файле master_en_ru.db. Похожим образом выравниванием остальные книги и получаем все оставшиеся выравнивания (русский и другой язык).На этом этапе вы уже можете сверстать книгу с подсветкой соответствующих предложений.В блокноте есть соответствующий код, примеры различной стилизации подсветки (можно менять ее по своему желанию) и экспорт в html страничку.Давайте посмотрим, как можно сделать то же самое при помощи веб приложения.Веб-приложениеДля запуска приложения я оформил несколько версий Docker образов. Текущая версия 8.4. Самый большой вариант работает на модели LaBSE от Google (поддерживает более 100 языков с хорошим качеством), средняя — на модели от sentence-transformers (50 языков, такое же хорошее качество), маленькая — на модели rubert-tiny-v2 от Давида Дале (поддерживает только русский и английский языки, зато быстро работает на CPU без всяких видеокарт, если делаете русско-английскую книжку или корпус, то выбирайте ее).Бета-версияНа этой же модели я запустил бета-версию приложения по адресу beta.lingtra.in. Сервер там не очень мощный, но можно выравнивать русско-английские тексты и экспортировать их разные форматы (html, tmx, lt (формат lingtrain) и т. д.).DockerВот список образов:lingtrain/studio:v8.4lingtrain/studio:v8.4-labselingtrain/studio:v8.4-tinyНеобходимо, чтобы в вашей системе был установлен Docker. Затем нужно скачать образ командой:docker pull lingtain/studio:v8.4Создать папки, в которых будет храниться ваш прогресс по выравниванию. Нужны две папки, для данных и для изображений (визуализации выравнивания).Затем запустить приложение. В данном случаем используем папки E:\data и E:\img, пример для Windows. В Linux все запускается аналогично.docker run -v E:\data:/app/data -v E:\img:/app/static/img -p 80:80 lingtrain/studio:v8.4Приложение запустится на 80-м порту и его можно будет открыть в браузере по адресу localhost.Более подробно про интерфейс приложения я писал в этой статье и записывал видео с примером его использования.Новый функционалВ последней версии (8.4) я добавил экспорт и импорт выравнивания (оно хранится в формате sqlite). Так что можно быстро выравнять ваши тексты в Colab’е, а затем загрузить ваше выравнивание в бета-версию Lingtrain и там его подредактировать.Помимо этого теперь можно выравнивать ваши тексты на основе его машинного перевода. Это актуально для малоресурсных языков типа башкирского или санскрита, так как модели на них не обучались (дообучение моделей — это отдельная история). Недавно составлял по этому поводу инструкцию для активистов санскрита, обратитесь, кому интересно.ПродолжимВойдем в приложение под любым именем, сейчас оно необходимо только для разграничения рабочего пространства.Выберем языки (английский и русский). Затем загрузим наши размеченные тексты.Метки автоматически разделят тексты и метаинформацию друг от друга. В разделе Marks нужно убедиться, что в текстах одинаковый набор меток.Переходим на вкладку Align, выбираем наши документы и создаем проект выравнивания:На этой же вкладке можно сразу загрузить ранее созданное в другом месте выравнивание в формате lt. Это то самое выравнивание en_ru_master.db, которое мы делали в секции про питон (оно в формате db, чтобы показать, что это база данных). Можно переименовать его в *.lt и загрузить.После создания проекта можно начать выравнивать:Один батч — 200 строк левого текста и пропорциональное количество строк правого. В нашем случае в английской редакции примерно 10 тысяч строк, поэтому батчей получается 49.Жмем на Align next и запускаем первичное выравнивание. После этого мы увидим текущую визуализацию выравнивания по батчам:Так как количество предложений в текстах отличается очень сильно, то, хоть мы и берем батчи с пересечением, в какой-то момент можем выходить за рамки правильных вариантов (посмотрите на 5 батч):Для этого мы можем кликнуть на конкретный батч и пересчитать его с учетом сдвига:Чтобы пересчитать сразу много последовательных батчей со сдвигом надо задать параметр shift и выбрать нужные батчи, нажав кнопку Customize:Главное тут, чтобы на визуализации просматривалась диагональ выравнивания:Если на всех картинках видна такая диагональ, то переходм к конфликтам.КонфликтыМы можем посмотреть сколько на текущий момент несоответствий в выравнивании и как они выглядят:Параметры Handle start и Handle finish определяют конфликты на концах выравнивания. Жмем на Resolve all.После этого шага могут остаться очень длинные конфликты, когда отрезку в 20+ предложений нужно сопоставить такое же большое количество других. Это ограничение добавленно, так как вариантов в этом случае слишком много и лучше просто сократить такой конфликт в ручном режиме в редакторе (об этом ниже), а потом уже добаить конфликт автоматически.РедакторСамая насыщенная UI часть приложения, так как возился с ней дольше всего.В редакторе можно не только изменять тексты, но и добавлять в ячейки другие строки с учетом их позиции в оригинальном тексте.Можно добавить к тексту машинный перевод в секции Subscript. Нужно скачать или открыть текст в этой секции (если открыть, то можно сразу перевести за счет браузера), перевести его, сохранить его в файл и загрузить обратно.машинно переведенный текстТогда в редакторе можно будет выранивать тексты даже не зная языка, если вы, например, не владеете венгерским, но хотите сделать русско-венгерскую книгу.Выравнивание через переводЕсли вы загрузили машинный перевод, то станет доступна опция выравнивания через него. Это может увеличить качество, если модель не была обучена на целевом языке.ЭкспортПосле окончания выравнивания (проверяем, что не осталось конфликтов, смотрим на результат в редакторе, правим, если нужно) переходим на последнюю вкладку — Create.На этом этапе мы имеем выравнивание, которое можно преобразовать в различные форматы.КнигаМы можем настроить внешний вид книги и посмотреть как она будет выглядеть:Скачать ее можно в html формате. При помощи внешних скриптов можно сверстать ее в еще более красивый вариант с обложкой, содержанием и т.д. Об этом писал здесь.TMXМожно скачать выравнивание в формате TMX.DatabaseСреди вариантов экспорта нам сейчас нужно выбрать формат базы данных (Database). Нажав на кнопку Download мы скачаем файл в формате lt.6b773d7aebd045e399c57d033b00460c.ltЕсли мы выравнивали русско-английскую книгу, то давайте переименуем файл в master_en_ru.lt.Собираем все вместеКак говорилось ранее, чтобы сделать мультиязычный параллельный корпус или книгу, нам понадобятся 9 файлов с выравниваниями:master_by_ru.lt master_de_ru.lt master_en_ru.lt master_es_ru.lt master_fr_ru.lt master_hu_ru.lt master_it_ru.lt master_uk_ru.lt master_zh_ru.ltИх можно скачать тут.Чтобы выравнять их между собой, воспользуемся методом из библиотеки lingtran-aligner. Положим выравнивания в папку db и запустим небольшой python скрипт.from lingtrain_aligner import reader, saver, preprocessor from operator import itemgetter import json db_path2 = "db/master_en_ru.lt" db_path3 = "db/master_de_ru.lt" db_path4 = "db/master_zh_ru. lt" db_path5 = "db/master_by_ru.lt" db_path5 = "db/master_uk_ru.lt" db_path6 = "db/master_hu_ru.lt" db_path7 = "db/master_it_ru.lt" db_path8 = "db/master_fr_ru.lt" db_path9 = "db/master_es_ru.lt" paragraphs_dict, par_ids, meta_info = reader.get_paragraphs_polybook( db_paths=[db_path2, db_path3, db_path4, \ db_path5, db_path5, db_path6, \ db_path7, db_path8, db_path9] ) def save_corpora(paragraphs, lang, output_path): if lang not in paragraphs: print(f"{lang} language was not found in data.") return flat_list = [sent for par in paragraphs[lang] for sent in par] print(f"There are {len(flat_list)} sentences for {lang} language.") with open(output_path, "w", encoding="utf-8") as fout: fout.write("\n".join(flat_list)) for lang in ["ru", "de", "en", "fr", "zh", "uk", "by", "es", "it", "hu"]: output_path = f"texts/{lang}.txt" save_corpora(paragraphs_dict, lang, output_path)В папку texts будут сохранены файлы ru. txt, en.txt, fr.txt и т.д. В каждом из них будет одинаковое количество строк и они будут выровнены друг с другом.Итог и планыМы получили мультиязычный параллельный корпус на 10 языках, его я оформил в отдельный проект и выложил на GitHub — Woland-10.Из каждого файла с выравниванием можно сделать параллельную книгу и скачать ее в формате html. Можно немного заморочиться и сделать книгу в pdf формате. Например, такую. Инструкция здесь.Можно дообучить модель на другой язык (например, малоресурсный) и повысить качество выравнивания. Про это здесь.Сейчас работаю над книгой-трансформером. Об этом расскажу в следующий раз.СсылкиГрадиент обреченный. Тут пишу про свои проекты, машинное обучение и работу. Буду рад общению.Чат Ligntrain. Если не получается что-то запустить, есть идеи, или просто любите языки — пишите в чат.Репозиторий с проектом. Написано на Python + Vue.На кофе с печеньками. Можно поддержать проект чеканой монетой.🎉 Всех с Наступающим! Мира, счастья и добра в Новом Году! Новое эссе Путина об Украине раскрывает имперские амбиции Президент России Владимир Путин изложил историческую основу своих претензий к Украине в спорном новом эссе, которое в некоторых кругах сравнивают с объявлением войны. Статья объемом 5000 слов под названием «Об историческом единстве русских и украинцев» была опубликована 12 июля и включает в себя многие тезисы, которые Путин предпочитал на протяжении последних семи лет необъявленной войны между Россией и Украиной. Российский лидер использует это эссе, чтобы повторить свое часто высказываемое убеждение в том, что русские и украинцы — «один народ», при этом обвиняя нынешний коллапс двусторонних отношений в иностранных заговорах и антироссийских заговорах. В одном особенно зловещем пассаже он открыто ставит под сомнение законность границ Украины и утверждает, что большая часть современной Украины оккупирует исторически русские земли, прежде чем официально заявить, что «Россия была ограблена». В другом месте он намекает на новую аннексию украинской территории, заявляя: «Я все больше убеждаюсь в этом: Киеву просто не нужен Донбасс». Путин заканчивает свой длинный трактат тем, что намекает, что сама украинская государственность в конечном счете зависит от согласия Москвы, заявляя: «Я уверен, что настоящий суверенитет Украины возможен только в партнерстве с Россией». Неудивительно, что статья Путина вызвала оживленную дискуссию в Украине и за ее пределами. Президент Украины Владимир Зеленский сначала потроллил своего российского коллегу и заявил, что у Путина явно много свободного времени. Другие идентифицировали многочисленные имперские отголоски и плохо завуалированные угрозы в попытке Путина сыграть историка-любителя. Старший научный сотрудник Стокгольмского форума свободного мира Андерс Ослунд назвал статью «мастер-классом по дезинформации» и «в шаге от объявления войны». Между тем российская газета «Московский комсомолец» заявила, что это эссе было «последним ультиматумом Путина Украине». Никто в Украине не нуждается в напоминании о мрачном контексте трактата Путина. С весны 2014 года между Россией и Украиной идет вооруженный конфликт, в результате которого погибло более 14 000 украинцев, а миллионы людей остались без крова. Кремль продолжает оккупировать украинский Крымский полуостров и большую часть промышленного Донбасса на востоке Украины. Ранее в этом году Москва сосредоточила более 100 000 военнослужащих вблизи границы с Украиной, что некоторые военные наблюдатели назвали генеральной репетицией полномасштабного российского наступления. Публикация на этой неделе недовольства Путина в такой официальной и громкой форме неизбежно породила слухи о том, что Кремль может готовить почву для серьезной эскалации боевых действий. Пока дебаты продолжаются, Атлантический совет пригласил некоторых украинских и международных комментаторов поделиться своими мыслями о том, что статья Путина может означать для будущей политики России в отношении Украины. Мелинда Харинг, Заместитель директора, Евразийский центр, Atlantic Council: Бредовая и опасная статья Путина раскрывает то, что мы уже знали: Москва не может позволить Украине уйти. Один только шедевр российского президента должен вдохновить Запад удвоить свои усилия, чтобы укрепить способность Киева выбирать свое собственное будущее, и Зеленский должен немедленно отреагировать и преподать Путину урок истории. Даниил Лубкивский, Директор, Киевский форум безопасности: Путин понимает, что украинская государственность и украинская национальная идея представляют угрозу российскому империализму. Он не знает, как решить эту проблему. Известно, что многие в его ближайшем окружении выступают за применение силы, но пока у российского лидера нет решений. Вместо этого он написал дилетантскую пропагандистскую статью, предназначенную для того, чтобы предоставить сторонникам своей идеологии «русского мира» тезисы для обсуждения. Однако его аргументы слабы и просто повторяют то, что антиукраинские российские шовинисты твердят десятилетиями. Эссе Путина — выражение имперской агонии. Подписаться на UkraineAlert В то время как весь мир наблюдает за тем, как разворачивается российское вторжение в Украину, UkraineAlert два раза в неделю доставляет лучшие экспертные знания и аналитические материалы Атлантического совета по Украине прямо на ваш почтовый ящик. Александр Мотыль, Профессор политологии, Rutgers University-Newark: В статье нет ничего, что уже не было сказано в имперской, советской или постсоветской российской историографии или пропаганде. Поскольку статья ничего нового не говорит, ничего нового в политике Путина в отношении Украины она не предвещает. (За одним возможным исключением: это не читается так, как будто написал бы человек, планирующий полномасштабное вторжение.) Интересны только вопросы: почему это было опубликовано именно сейчас и для кого это произведение было написано? Русские и украинцы слышали это раньше; Европейцам и американцам исторические подробности показались бы слишком заумными. Остается президент Украины Владимир Зеленский. Путин, возможно, стремился своевременно напомнить украинскому лидеру об ожиданиях России во время визита Зеленского в Германию и накануне его поездки в США. Однако, как и вся политика Путина в отношении Украины, это эссе также будет иметь неприятные последствия. Украинцы будут возмущены тем, что им поучают об их идентичности, а Зеленский обидится, что его смешивают с неонацистами, которые существуют только в воображении Путина. Брайан Уитмор, Старший научный сотрудник-нерезидент, Atlantic Council: Неточные и искаженные утверждения Владимира Путина не новы и не удивительны. Это всего лишь последний пример газлайтинга со стороны кремлевского лидера. В конце концов, это человек, который, как известно, сказал президенту США Джорджу Бушу, что Украина не является реальной страной, во время широко освещавшегося обмена мнениями на саммите НАТО в Бухаресте в 2008 году. Утверждение Путина о том, что «настоящий суверенитет Украины возможен только в партнерстве с Россией», абсурдно лицемерно. Для Украины партнерство с Россией в основном означало подчинение России. Заявление Путина о том, что Россию и Украину связывают «духовные, человеческие и цивилизационные узы, формировавшиеся веками», игнорирует и преуменьшает историческую связь Украины с Европой, независимой от России, в составе Великого княжества Литовского и Речи Посполитой. Эссе российского лидера говорит о нем больше, чем об Украине. Это показывает, что он правитель-реваншист, который готов создавать ложные исторические нарративы, чтобы оправдать свои имперские мечты. Алексей Гончаренко, Народный депутат Украины, Европейская солидарность: Статья Путина якобы об истории, но на самом деле речь идет о будущем, а не о прошлом. Украина держит ключ к мечтам Путина о восстановлении статуса великой державы России. Он болезненно осознает, что без Украины это будет невозможно. Эссе Путина на самом деле не содержит ничего нового. Действительно, мы уже много раз слышали эти же аргументы. Однако его статья помогает прояснить, что нынешний конфликт не связан с контролем над Крымом или Донбассом на востоке Украины; это война за всю Украину. Путин совершенно ясно дает понять, что его цель — прочно удержать Украину в сфере влияния России и предотвратить евроатлантическую интеграцию Украины. Теперь нам следует ожидать появления новых тенденций в ближайшие месяцы. Кремль, вероятно, переключит акцент на «мягкую силу» и непрямых агентов влияния. Москва сосредоточится на использовании людей и платформ, которые не кажутся явно пророссийскими, для распространения ключевых сообщений Кремля об Украине как о «несостоявшемся государстве», находящемся под «западным контролем». С учетом этого властям Украины следует активизировать усилия по укреплению информационной безопасности страны. События Центра Евразия Евгений Федченко, Главный редактор, StopFake: В статье Путина нет ничего нового. Из года в год он продолжает отрицать свободу действий украинцев, основывая свои аргументы на бескомпромиссно неоимперском видении геополитики. В своем эссе Путин еще раз ставит под сомнение право Украины на существование и посылает слабо завуалированную угрозу, что Украина потеряет больше территорий, если будет позиционировать себя как «антироссийскую». Но территория здесь, в конце концов, не самое главное. Это просто разменная монета. Путин хочет, чтобы последнее слово в определении подхода Украины к истории, культуре, языку и идентичности. Это решающие фронты в войне России против Украины. Брайан Боннер, Главный редактор , Киев Сообщение: В этом новом эссе подчеркивается, что Путин никогда не изменится. И он не исключительный. Напротив, снисходительные, империалистические и исторически неверные взгляды Путина на Украину, к сожалению, разделяют слишком многие в России. Это означает, что Украине и Западу придется изменить и ужесточить свою реакцию, чтобы сдержать и изолировать Кремль, который не имеет ничего общего с демократической, плюралистической нацией, которую хочет для себя большинство украинцев. Тарас Кузио, Профессор, Национальный университет Киево-Могилянская академия: Владимир Путин в очередной раз продемонстрировал, что он не совсем понимает Украину и никогда серьезно не изучал украинские опросы общественного мнения. Его заявление о том, что «Россия сделала все, чтобы остановить кровопролитие» на Украине, абсурдно и оскорбительно. Украинцы слишком хорошо осведомлены о продолжающемся военном вмешательстве России в их страну, так же как они осознают безжалостную антиукраинскую пропаганду, которая доминировала в подконтрольных Кремлю российских СМИ в течение последних семи лет. Это эссе также доказывает, что Путин все еще отрицает свою личную ответственность за крах двусторонних отношений между Россией и Украиной. Вместо этого он продолжает винить во всем антироссийские заговоры и иностранные интриги. Если западные политики хотят понять причины единственной активной войны в Европе, им нужно начать серьезно относиться к путинскому империализму. Он придерживается тех же шовинистических взглядов на Украину с 2000-х годов и неоднократно ставил под сомнение историческую легитимность страны. Это мировоззрение удобно представлено в его последнем эссе, которое не оставляет сомнений в том, что он намерен бесконечно продолжать борьбу за контроль над Украиной. Владимира Ермоленко, Главный редактор, UkraineWorld. org: Статья Путина показывает, что Россия снова и снова будет использовать историю для оправдания своих политических и военных действий. Современная Россия по существу остается империей. Прежде чем аннексировать новые территории, Кремль стремится аннексировать историю и ассимилировать своих соседей, отрицая их существование как отдельных национальных идентичностей. Нынешняя попытка Путина способствовать ассимиляции в Украине невероятно опасна, поскольку открывает путь для новой волны российской экспансии. Москва уже все больше поглощает Беларусь, при этом утверждая, что эта соседняя страна на самом деле является частью той же русской нации. Поэтому следует ожидать, что Россия будет все больше акцентировать внимание на усилиях мягкой силы в Украине, направленных на продвижение ассимиляции с помощью таких средств, как религия и средства массовой информации. Путинская тактика гибридной войны станет еще умнее и опаснее. Питер Дикинсон — редактор службы UkraineAlert Атлантического совета. Дальнейшее чтение Мнения, выраженные в UkraineAlert, принадлежат исключительно авторам и не обязательно отражают точку зрения Атлантического совета, его сотрудников или сторонников. Подробнее из УкраиныAlert UkraineAlert — это комплексное онлайн-издание, которое регулярно публикует новости и анализ событий в политике, экономике, гражданском обществе и культуре Украины. Миссия Евразийского центра заключается в укреплении трансатлантического сотрудничества в продвижении стабильности, демократических ценностей и процветания в Евразии, от Восточной Европы и Турции на западе до Кавказа, России и Центральной Азии на востоке. Подробнее Изображение: Президент России Владимир Путин отвечает на вопросы о своем недавнем эссе об украинско-российских отношениях. 13 июля 2021 г. (Sputnik/Алексей Никольский/Кремль через REUTERS) yandex-english-to-french — Googlesuche AlleBilderVideosBücherMapsNewsShopping Suchoptionen Sprache erkennen──────────DeutschEnglischFranzösischSpanischTürkisch──────────AfrikaansAlbanischAmharischArabischArmenischAserbaidschanischBaskischBelarussischBengalischBirmanischBosnischBulgarischCebuanoChinesisch (traditionell)Chinesisch (vereinfacht)DänischDeutschEnglischEsperantoEstnischFilipinoFinnischFranzösischGalicischGälisch [Schottland]GeorgischGriechischGujaratiHaiti-KreolischHaussaHawaiischHebräischHindiHmongIgboIndonesischIrischIsländischItalienischJapanischJavanischJiddischKannadaKasachischKatalanischKhmerKinyarwandaKirgisischKoreanischKorsischKroatischKurdischLaotischLateinLettischLitauischLuxemburgischMalagasyMalaiischMalayalamMaltesischMāoriMarathiMazedonischMongolischNepalesischNiederländischNorwegischNyanjaOriyaPaschtuPersischPolnischPortugiesischPunjabiRumänischRussischSamoanischSchwedischSerbischShonaSindhiSinghalesischSlowakischSlowenischSomaliSpanischSuaheliSüd-SothoSundane sischTadschikischTamilTatarischTeluguThailandishTschechischTürkischTurkmenischUigurischУкраинскийUngarischUrduUsbekischVietnamesischWalisischWestFriesischXhosaYorubaZuluAlle Sprachen anzeigen FranzösischDeutschEnglischSpanischTürkisch──────────AfrikaansAlbanischAmharischArabischArmenischAserbaidschanischBaskischBelarussischBengalischBirmanischBosnischBulgarischCebuanoChinesisch (traditionell)Chinesisch (vereinfacht)DänischDeutschEnglischEsperantoEstnischFilipinoFinnischFranzösischGalicischGälisch [Schottland]GeorgischGriechischGujaratiHaiti-KreolischHaussaHawaiischHebräischHindiHmongIgboIndonesischIrischIsländischItalienischJapanischJavanischJiddischKannadaKasachischKatalanischKhmerKinyarwandaKirgisischKoreanischKorsischKroatischKurdischLaotischLateinLettischLitauischLuxemburgischMalagasyMalaiischMalayalamMaltesischMāoriMarathiMazedonischMongolischNepalesischNiederländischNorwegischNyanjaOriyaPaschtuPersischPolnischPortugiesischPunjabiRumänischRussischSamoanischSchwedischSerbischShonaSindhiSinghalesischSlowakischSlowenischSomaliSpanischSuaheliSüd-SothoSundanesischTadschikischTamilTatarischTeluguThailändischTschechischTürkischTurkmenischUigurischUkrainisch УнгарскийурдуУзбекскийвьетнамскийВалисскийзападно-фризскийкосаЙорубаЗулуАлле Sprachen anzeigen Übersetzung yandex-anglais Англо-французский онлайн переводчик и словарь — Яндекс Переводчик словарь с транскрипцией, произношением и примерами употребления. Яндекс. Ähnliche Fragen Является ли Яндекс бесплатным переводом? Как вы переводите в Яндексе? Какой лучший французский переводчик? Яндекс переводит лучше гугла? англо-французский онлайн-переводчик и словарь translate.yandex.com › словарь › en-fr › англо-французский онлайн-переводчик… англо-французский онлайн-переводчик и словарь. Яндекс Переводчик — Приложения в Google Play play.google.com › магазин › приложения › подробности › id=ru.yan… Bewertung 4,5 (216.523) · Костенлос · Android Переводите между любой парой из 100 языков, когда вы в сети. • Переводите с французского, немецкого, итальянского, русского, испанского или турецкого на английский, пока … Яндекс » Французско-английский переводчик translate.glosbe.com › fr-en › Яндекс Перевод Яндекса с французского на английский с помощью автоматического переводчика Glosbe, использующего новейшие достижения в области нейронных сетей. Яндекс.Переводчик Отзывы — 2022 — Slashdot slashdot.org › … › Machine Translation Software Bewertung 2,0 (1) 27.01.2022 · Яндекс.Перевод отзывов пользователей из проверенных программ и сервисов… Программа поддерживает семь языков: английский (немецкий), французский (французский) … yandex image translate — Feudo 43 feudo43.it › yandex-image-translate Последним приложением в нашем списке лучших приложений для перевода изображений является Yandex Translate. … Как перевести «images» с английского на французский: переводы с … «Яндекс перевод на английский язык | Французско-английский словарь | Reverso Dictionary.reverso.net › french-english › «Yandex ‘Яндекс перевод на французский язык — английский Reverso словарь, см. также ‘Y’,yack’, yaourtière’,яхта’, примеры, определение, спряжение. «Яндекс» выпустил мобильный веб-браузер для iPhone: «Яндекс» выпустил мобильный веб-браузер для iPhone Парми с сервисами «Яндекс» и Yota Music: Среди этих сервисов «Яндекс» и Yota Music «Яндекс» опубликовал новое исследование блогосферы рунета: «Яндекс» опубликовал новое исследование блогосферы рунета Le joyau de sa collection peut être «Яндекс»: жемчужиной его коллекции может стать «Яндекс» Яндекс.