Сделать DeepL API машинный перевод чуть лучше.
Мы не можем ожидать от машины хороших переводов, если она не знает контекста.
Обновление: Использование зарезервированных слов работает только в том случае, если вы держите слова на месте. Сначала я подставил их вместо непереводимых тегов, но потом уже не знаю, что он делает.
Конечно, ничто не сравнится с переводом, выполненным профессиональным переводчиком. Машинный перевод - трудная задача. DeepL Пытается улучшить переводы с помощью машинного обучения, но они все еще далеки от использования правильного контекста.
Позвольте мне привести вам пример. Этот сайт о Python, Flask, , компьютерной сети и т.д. DeepL не знает этого, потому что мы не можем сказать об этом. Но он должен знать! Термин "' 'Flaskможет быть машинным переводом на 'Flasche' (бутылка) на немецком языке. Термин "Python имеет колеса" может быть переведен на машинный язык: "Python Шляпа Радера". Термин " ' 'port 25может быть переведен на машинный язык: "Хафен 25". Все ошибаются. DeepL Не стоило переводить их, но откуда он может знать?
Контекст перевода
Есть только один способ получить более качественный перевод, например: контекст перевода в . DeepL.. В данном случае, например: translation_for_context: 'Python, ', 'Flask... Другой способ состоит в том, чтобы дать DeepL некоторые страницы сайта и позволить ему определить сам контекст. К сожалению, на данный момент оба варианта невозможны.
Я читал о людях, сравнивающих DeepL перевод с Google Translate. Да, DeepL кажется, что переводчик контекста лучше (иногда), но всегда ли это хорошая идея, чтобы попытаться перевести в контексте? И какой в этом случае контекст? А знает ли тогда переводчик-людь, что замысел оригинала текста остается неизвестным?
Лучшие переводы
Итак, как мы можем избежать вышеперечисленных проблем и получить лучший перевод, или вообще не получить перевод, DeepL предлагая поместить между тегами слова, которые вы не хотите переводить, например, <x> и </x>, а затем добавить этот тег в параметры deletere_tags. Это сработает, но это большая работа. В каждый текст мы должны вставлять теги для слов, которые мы не хотим переводить. Я не хочу загрязнять свои тексты непереводимыми тегами.
На этом сайте есть записи в блоге о и т.д. Поэтому вместо того, чтобы помещать теги во все записи блога, мы можем создать список зарезервированных слов, что означает: не переводить эти слова. Это все еще большая работа, потому что мы должны также проверить наш блог текст сообщения для слов, которые мы не хотим, чтобы быть переведены. Но это, кажется, разумный способ получить первую версию переведенного текста. И работа, которую мы сейчас делаем, не должна быть сделана со следующими записями в блоге.
Список зарезервированных слов
Я создал список зарезервированных слов и заменил их непереводимыми тэгами, прежде чем отправить текст в каталог, т.е. мне пришлось просматривать стандартный язык (английский) текстов по предложениям, слово за словом. Таким образом, я создал список из около 100 зарезервированных слов, терминов, включая " "many-to-many, ", "port 25, ", "multistage", " "netmaskи т.д. Я также должен был убедиться, что у меня не было различных версий этих терминов, как, например, Mariadb, MariaDb. В результате переводы стали намного лучше, но тексты все еще далеки от приемлемых. Что мне действительно нужно, так это списки. Список, который содержит все ключевые слова для , список, который содержит все ключевые слова для , список, который содержит все ключевые слова для терминов компьютерных сетей, и некоторые из этих списков также должны иметь переводы, потому что не все термины могут быть на английском языке на другом языке. И тогда я все равно должен сам исключить слова, потому что они связаны с самой публикацией в блоге и их нет в списке.
Резюме
Результаты машинного перевода могут быть приемлемы для естественной речи, но они, конечно, не достаточно хороши для технических текстов, как на этом сайте. Было бы неплохо, если бы мы могли предоставить контекст (Python, Flask, сеть и т.д.) или позволить определить этот контекст самостоятельно, например, предоставив несколько соответствующих веб-страниц. Хотя мой сайт больше похож на витрину, я, конечно, хочу, чтобы переводы были приемлемыми. Для последующих записей в блоге я буду продолжать добавлять зарезервированные слова в свой список, но также буду следовать DeepL совету, чтобы помещать теги вокруг слов, которые я не хочу переводить. Но не слишком много.
Ссылки / кредиты
DeepL
https://www.deepl.com/home
Подробнее
DeepL
Недавний
- Скрытие первичных ключей базы данных UUID вашего веб-приложения
- Don't Repeat Yourself (DRY) с Jinja2
- SQLAlchemy, PostgreSQL, максимальное количество строк для user
- Показать значения в динамических фильтрах SQLAlchemy
- Безопасная передача данных с помощью шифрования Public Key и pyNaCl
- rqlite: альтернатива dist с высокой степенью готовности и SQLite
Большинство просмотренных
- Используя Python pyOpenSSL для проверки SSL-сертификатов, загруженных с хоста
- Использование UUID вместо Integer Autoincrement Primary Keys с SQLAlchemy и MariaDb
- Подключение к службе на хосте Docker из контейнера Docker
- Использование PyInstaller и Cython для создания исполняемого файла Python
- SQLAlchemy: Использование Cascade Deletes для удаления связанных объектов
- Flask Удовлетворительный запрос API проверка параметров запроса с помощью схем Маршмэллоу