S
S
Sergey Dydaevskiy2019-04-27 13:28:48
API
Sergey Dydaevskiy, 2019-04-27 13:28:48

Why is translation through the Yandex translate API so much worse than a regular translation through the standard translator page?

I was tormented all day and I can’t understand why when translating through the site https://translate.yandex.ru/ the quality of the translation is simply excellent, but if you translate an article using the API, the translation is stupidly machine-made.
Example:
We will translate from EN to RU.
Original text in 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.
Translation via https://translate.yandex.ru/:
What is a conversion rate? The conversion rate is the percentage of your website visitors who complete a transaction. A transaction for an e-commerce site is usually a sale. Transactions may be different for each site and may be a free download, a newsletter subscription, a donation, a request for a quote, or other activity.
Translation via Yandex API:
what is the conversion rate?
The conversion rate is the percentage of visitors to your site who complete a transaction. and nbsp;  transactions for an e-commerce site is usually sold. Operations may be different for each site and may be a free download, newsletter subscription,
donation, request or other activity.
Why is the
conversion rate important?
knowing your conversion rate allows you to make informed decisions.
Variant with HTML translation
HTML original:

"<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>"

Translation via translator page:
<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>

Clumsy translation via 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> 
<Р>имейте в виду, вы должны иметь веские основания для увеличения максимального количества результатов. Злоупотребление этой способностью может привести к производительности и безопасности. Чем выше вы установите значение, тем больше мощности процессора и памяти потребуется, чтобы вернуть результат. Для более популярных сайтов, это может открыть вам до отказу в обслуживании.</п> 





</див>

How can I make the result of the translation through the API be similar to the one on the translator's site?
To translate via api, I use this solution via composer
https://packagist.org/packages/yandex/translate-api
composer require yandex/translate-api

Answer the question

In order to leave comments, you need to log in

4 answer(s)
B
Boris Korobkov, 2019-04-28
@BorisKorobkov

It is possible that when translating through the API, some type tags <div>or carriage returns occur in your text. The translator regards this as the end of a sentence, so he translates parts of the text separately, and not as a coherent text.
Accordingly, you need to remove tags, \r, \n\ \t and other special characters from your text.

D
dr_foam_rubber, 2019-08-04
@dr_foam_rubber

Faced the same problem. Here's what support said:

The difference in translations on the service and through the API exists because the service uses hybrid translation (neural translation + statistical phrasing), while the API uses only statistical phrasing.
The paid version of the Yandex.Translate API on the Yandex.Cloud platform uses the same translation as on the service.
You can read more about this here: https://cloud.yandex.ru/services/translate

D
Dimonchik, 2019-04-28
@dimonchik2013

this is due to the resources
that need to be achieved from Yandex - does the paid API work correctly
, most likely, it works

A
Alexander Taratin, 2019-04-28
@Taraflex

If the volumes are small, use the api from the browser extension
https://chrome.google.com/webstore/detail/%D1%8D%D...
It is pretty easy to reverse.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question