Массовый перевод большого набора записей с помощью Google Translate - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно перевести довольно большой набор записей с разных языков (язык заранее не известен) на английский. Набор составляет около 3 миллионов записей, и каждая запись является довольно коротким текстом. Это не сложные тексты, в основном просто описания предметов. Что-то вроде «Мобильного маршрутизатора 3G от Nokia Black», написанного на всех языках (хотя это не слишком экзотично, в основном это немецкий, французский, арабский, русский и т. Д.). Я также не знаю заранее, на каком языке написана каждая запись, поэтому мне нужно полагаться на автоматическое определение языка.

На данный момент я могу выполнить эту задачу с помощью Google Cloud API

Это довольно просто, я просто передаю одну запись за раз в API, не указывая исходный язык, и она может правильно переводить записи по мере необходимости.

Проблема здесь в том, что процесс мучительно медленный. Мы подбираем одну текстовую строку, подключаемся к API, пересылаем ее, получаем результат и сохраняем. Обработка каждой записи вносит значительные накладные расходы на связь с API, и когда вы выполняете перевод нескольких миллионов записей, это занимает очень много времени.

Мне было интересно, есть ли способ выполнить эту операцию навалом? Может быть, отправка большого количества строковых записей за один раз для перевода, чтобы минимизировать издержки при общении с Google API? Или, может быть, есть какой-то способ напрямую загрузить в Google файл со всеми записями, которые мне нужно перевести, и загрузить результат, когда он будет доступен?

1 Ответ

0 голосов
/ 13 сентября 2018

Я думаю, что сервис Cloud Translation API в настоящее время не поддерживает массовые запросы и запросы на перевод файлов. Основываясь на этом, вы могли бы разработать решение, используя Клиентские библиотеки GCP , которое объединяет ваши текстовые строки в одну строковую запись с разделителями; Таким образом, вы можете перевести несколько значений в одном вызове. После перевода полной строки на нужный язык ее можно разделить на основе значения разделителя, чтобы получить массив разделенных текстовых строк. Помните, что рекомендуется отправлять менее 5000 за запрос , чтобы избежать проблем с производительностью.

Если этот обходной путь не покрывает ваши текущие потребности, вы можете использовать кнопку Отправить отзыв , расположенную в нижнем левом и верхнем правом углах общедоступной документации службы , а также взгляните на инструмент Issue Tracker , чтобы поднять запрос функции перевода API и уведомить Google об этой желаемой функциональности.

...