dydikson
@dydikson
Выношу свой мозг всякой вполне очевидной фигней

Почему перевод через Yandex translate API намного хуже, чем обычный перевод через стандартную страницу переводчика?

Промучался все сутки не могу понять почему при переводе через сайт https://translate.yandex.ru/ качество перевод апросто отличное, а вот если переводить статью средствами API - перевод тупо машинный.

Пример:
БУдем переводить с EN на RU.

Оригинальны текст на EN:
What is a conversion rate? A conversion rate is the percentage of visitors to your website who complete a transaction. A transaction for an e-commerce site is usually a sale. Transactions can be different for every site and could be a free download, newsletter subscription, donation, quote request or other activity.

Перевод через https://translate.yandex.ru/:
Что такое коэффициент конверсии? Коэффициент конверсии-это процент посетителей вашего сайта, которые завершают транзакцию. Транзакция для сайта электронной коммерции обычно является продажей. Транзакции могут быть разными для каждого сайта и могут быть бесплатной загрузкой, подпиской на рассылку, пожертвованием, запросом котировки или другой деятельностью.

Перевод через Yandex API:
что такое коэффициент конверсии?
коэффициент конверсии-это процент посетителей на ваш сайт, кто завершить сделку. и nbsp; и nbsp;транзакций для электронной коммерции сайта обычно продается. Операции могут быть разными для каждого сайта и может быть скачать бесплатно, подписка на рассылку,
пожертвование, запрос или иной деятельности.
на
почему коэффициент конверсии важно?
зная, что ваш коэффициент конверсии позволяет принимать взвешенные решения.

Вариант с переводом HTML

HTML оригинал:


"<div class="entry-content">

<h2>Sometimes You Have to Break the Rules</h2>
<p>However, there are occasions where the defaults don’t cut it and you need to do some customization. One such example that I ran into was when trying to populate data from the WordPress REST API into a mobile app. We needed to synchronize about 7,000 records. Making a request for 100 records at a time would result in 70 requests. Assuming each request took 1 second, it would take more than a minute to sync up… not an experience you want for initial users of your mobile app. However, by simply bumping the <g class="gr_ gr_9 gr-alert sel gr_spell gr_replaced gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="9" data-gr-id="9">maximum</g> number of records to 500 we were able to reduce the number of requests to 14; 5x faster than before.</p>
<h2>But Break the Rules Cautiously</h2>
<p>Keep in mind, you should have a good reason for increasing the maximum number of results. Abusing this ability can result in both performance and security issues. The higher you set the value, the more processing power and memory will be required to return the result. For more popular sites, this could open you up to denial of service attacks.</p>

</div>"


Перевод через страницу переводчика:

<div class= "entry-content">

<h2 > иногда приходится нарушать правила< / h2>
<p > однако бывают случаи, когда значения по умолчанию не сокращают его, и вам нужно сделать некоторые настройки. Один из таких примеров, с которым я столкнулся, был при попытке заполнить данные из API REST WordPress в мобильное приложение. Нам нужно синхронизировать около 7000 записей. Запрос на 100 записей одновременно приведет к 70 запросам. Предполагая, что каждый запрос занял 1 секунду, для синхронизации потребуется более минуты... не опыт, который вы хотите для начальных пользователей вашего мобильного приложения. Однако, просто натыкаясь <G класс="gr_ gr_9 гр-оповещения сельского gr_spell gr_replaced gr_inline_cards gr_disable_anim_appear ContextualSpelling ИНС-дель multiReplace" код="9" данные-гр-идентификатор="9">макс</г> количество записей до 500 мы смогли уменьшить количество запросов до 14; в 5 раз быстрее, чем раньше.< / p>
<h2>но нарушайте правила осторожно< / h2>
<p>имейте в виду, у вас должна быть веская причина для увеличения максимального количества результатов. Злоупотребление этой способностью может привести к проблемам производительности и безопасности. Чем выше вы установите значение, тем больше вычислительной мощности и памяти потребуется для возврата результата. Для более популярных сайтов это может привести к атакам на отказ в обслуживании.< / p>

</элемент div>


Несуразный перевод через Yandex API:

<див класс="элемент-контент"> 

<Н2>иногда приходится нарушать правила</Н2> 
<P>тем не менее, бывают случаи, когда по умолчанию не режут его, и вы должны сделать некоторые настройки. Одним из таких примеров, который я столкнулся, когда пытаюсь заполнить данные от API в WordPress остальное в мобильное приложение. Нам нужно синхронизировать около 7000 записей. Сделав запрос по 100 записей за раз приведет к 70 запросов. Предположим, что каждый запрос занял 1 секунду, это заняло бы больше минуты, чтобы синхронизировать... не опыт, который вы хотите для первых пользователей своего мобильного приложения. Однако, просто натыкаясь <G класс="gr_ gr_9 гр-оповещения сельского gr_spell gr_replaced gr_inline_cards gr_disable_anim_appear ContextualSpelling ИНС-дель multiReplace" код="9" данные-гр-идентификатор="9">макс</г> количество записей до 500 мы смогли уменьшить количество запросов до 14; в 5 раз быстрее, чем раньше.</п> 
<Н2>, но нарушать правила осторожненько</Н2> 
<Р>имейте в виду, вы должны иметь веские основания для увеличения максимального количества результатов. Злоупотребление этой способностью может привести к производительности и безопасности. Чем выше вы установите значение, тем больше мощности процессора и памяти потребуется, чтобы вернуть результат. Для более популярных сайтов, это может открыть вам до отказу в обслуживании.</п> 





</див>

Как мне заставить результат первода через API быть аналогичным тому что и на сайте переводчика?

Для перевода через апи использую данное решение через composer
https://packagist.org/packages/yandex/translate-api

composer require yandex/translate-api
  • Вопрос задан
  • 8241 просмотр
Пригласить эксперта
Ответы на вопрос 4
@BorisKorobkov
Web developer
Возможно, при переводе через API в вашем тексте встречаются какие-то теги типа <div>или возврат каретки. Переводчик расценивает это как конец предложения, поэтому переводит части текста по-отдельности, а не как связный текст.

Соответственно, надо удалить из вашего текста теги, \r, \n\ \t и прочие спецсимволы.
Ответ написан
dr_foam_rubber
@dr_foam_rubber
Столкнулся с такой же проблемой. Вот, что ответила поддержка:
Различие в переводах на сервисе и через API существует потому, что на сервисе используется гибридный перевод (нейроперевод + статистический фразовый), а в API — только статистический фразовый.
В платной версии API Яндекс.Переводчика на платформе Яндекс.Облако используется такой же перевод, как и на сервисе.
Подробнее об этом можно почитать тут: https://cloud.yandex.ru/services/translate
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
это из-за ресурсов,
что нужно добиться от яндекса - работает ли платное API корректно
скорее всего, работает
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Если объемы небольшие, используйте api из расширения для браузера
https://chrome.google.com/webstore/detail/%D1%8D%D...
Оно довольно просто реверсится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы