Microsoft Translator Text не выдает ошибку при передаче неверных параметров с помощью пользовательского движка - PullRequest
0 голосов
/ 25 марта 2020

Я заметил 2 случая, когда Microsoft Translator Text должен вызывать ошибки при использовании пользовательских движков, но вместо этого имеет неожиданное поведение.

Нормальный регистр

Я отправляю запрос методом POST.
URL = https://api.cognitive.microsofttranslator.com/translate
Параметры:
- api-версия = 3,0
- textType = plain
- категория = my_engine_id
- от = de
- до = en

Headers = {"Ocp-Apim-Subscription-Key": my_key , 'Content-type': 'application / json'}

Тело (JSON формат ):

[{"Text": "Klicken S ie in jedem Bildschirm auf das Textbeispiel, das am besten lesbar ist."},
{"Text": "Verschiedene Themen aus den Bereichen Wortschatz, Satzbau, Kohärenz, Textwiedergabe,
Kommasetzung und Orthograph ie werden anhand von Textbeispielen und Übungen vorgestellt. "},
{" Text ":" Auch wen in zensis zensi zwe " s ie doch füreinander nicht Ausland; ihre Beziehungen zueinander können nur von besonderer Art sein. «"},
{"Text": "Дитя сухих веществ Формель Брихт дер Нойе Канцлер Эйн Джарзентеланжес Т" abu. "},
{" Text ":" Bislang wird der östliche Teil Deutschlands von den bundesdeutschen Politikern als SBZ, Zone oder „sogenannte DDR“ bezei chnet.}}]

Ответ, как и ожидалось:

[{"translations":
[{"text": "На каждом экране нажимайте образец текста, который наиболее читабелен.",
"to": "en"}]},
{"translations":
[{"text": "Различные темы из лексики, набор текста, согласованность, воспроизведение текста, установка запятой и Орфография представлена ​​с использованием текстовых примеров и упражнений. ",
" to ":" en "}]},
et c.

Case 1

Я изменяю параметр на = fr в URL (вместо «en»).

Ответ показывает, что текст был переведен на французский , хотя пользовательский движок обучается только из DE> EN (поэтому я думаю, что вместо него использовался обобщенный c движок, но в ответе HTTP нет информации)!

[ { "транс lations ": [{" text ":" Sur chaque écran, cliquez sur l'échantillon de texte le plus lisible. "," to ":" fr "}]}, {" translations ": [{" text ":" Divers sujets des domaines du vocabulaire, du typage, de la coherence, репродукция текста, декорация девственницы и фотографа с современными образцами и упражнениями. "," To " : "fr"}]}, {"translations": [{"text": "\" Méme si deux États существуют в Аллемании, ils ne sont pas étrangers l'un à l'autre; Leurs Relations les uns ave c les autres ne peuvent être que d'un жанр особенно. "," To ":" fr "}]}, {" translations ": [{" text ":" Ave c cette Formule, Le Nouveau Chancelier Brise Un Tabou De DIX ANS. "," to ":" fr "}]}, {" translations ": [{" text ":" Jusqu'a présent, la part ie ориентация на l " 'Allemagne est appelée par les politiciens fédéraux утверждает SBZ, zone ou «soi-disant DDR». "," To ":" fr "}]}]

Вместо этого поведения я бы Ожидается ошибка в ответе HTTP:
400075 The language pair and category combination is not valid.

Случай 2

Я изменяю параметр с = da в URL (вместо «de»).

Ответ показывает, что перевод является просто копией исходного текста, хотя и указывает, что он был переведен в «en»!

[{"translations": [{"text": "Klicken S ie in jedem Bildschirm auf das Textbeispiel, das am besten lesbar ist.", "to": "en"}]}, {"translations": [ {"текст": "Verschiedene Themen aus den Bereichen Wortschatz, Satzbau, Kohärenz, Textwiedergabe, Kommasetzung und Orthograph ie werden anhand von Textbeispielen und Übungen vorgestellt. "," to ":" en "}]}, {" translations ": [{" text ":" \ "Auch wenn zwei Staated in Deutschland existieren, sind s ie doch füreinander nicht Ausland; ihre Beziehungen zueinander können nur von besonderer Art sein. \ "", "to": "en"}]}, {"translations": [{"text": "Mit dieser Formula bricht der neue Kanzler ein jahrzehntelanges Tabu.", "to": " en "}]}, {" translations ": [{" text ":" Bislang wird der östliche Teil Deutschlands von den bundesdeutschen Politikern als SBZ, Zone oder \ "sogenannte DDR \" bezei chnet. "," to ":" en "}]}]

То же, что и в случае 1, вместо этого поведения я бы ожидал ошибку в ответе HTTP:
400075 The language pair and category combination is not valid.

Это нормально, что я не получаю сообщение об ошибке в этих 2 случаях? Кто-нибудь еще сталкивался с таким поведением раньше?

На самом деле я хотел бы использовать эти коды ошибок или проверить перед отправкой запрос на перевод, что языковая пара соответствует пользовательскому движку, знаете ли вы какой-нибудь способ сделать это?

1 Ответ

0 голосов
/ 26 марта 2020

Для case1 перевод выполняется в два прыжка - de> en, en> fr. Пользовательский движок используется для первого прыжка, а наша общая модель - для второго. Если вы хотите, чтобы трансляция в этом случае не выполнялась, вы можете установить для параметра allowFallback значение false

allowFallback Необязательный параметр. Указывает, что службе разрешено выполнять откат к общей системе, когда пользовательская система не существует. Возможные значения: true (по умолчанию) или false. документы

Во втором случае запрос содержит текст на немецком языке, но помечен как Dani sh. Здесь мы ничего не можем сделать, кроме как вернуть ввод. Если вы хотите, чтобы API определял язык from, пропустите его из параметров, и API запустит автоопределение текста.

Если параметр from не указан, automati c language обнаружение применяется для определения исходного языка.

...