Код ошибки 74005 гугл переводчик

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

Над автоматическими переводчиками начали работать ещё в середине XX века. После одного из успешных экспериментов в газетах писали, что скоро ручной перевод будет не нужен — переводчиков-людей заменят машины. С тех пор прошло 70 лет, но автоматический перевод всё ещё делает глупые и грубые ошибки. Что с ним не так?

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

Ещё 5-7 лет назад любой онлайн-переводчик выдавал наборы фраз, в которых с трудом можно было уловить смысл текста. Если вы переводили с иностранного языка на родной, то это можно было исправить. Но при переводе с родного языка на иностранный сразу было видно, что поработал Google Translate или другой переводчик. Виной всему была сама технология — статистический машинный перевод.

Чтобы лучше понимать, почему переводчики раньше были такими топорными, давайте коротко пройдёмся по основным технологиям, которые использовались для обработки текстов на разных языках. Работа над автоматизированными системами перевода начались ещё в середине XX века. Сначала в них использовали правила, которые составляли лингвисты. Их количество было огромным, а результат работы всё равно провальным. Переводчики не справлялись с многозначными словами и не понимали устойчивые выражения.

Разочарование от первых систем перевода было таким большим, что почти 30 лет никто не вкладывал в эту сферу большие деньги. Всё изменилось в начале 1990-х годов, когда одна из исследовательских групп компании IBM разработала новую переводную модель. Ключевая идея технологии — концепция канала с ошибками, которая рассматривает текст на языке A как зашифрованный текст на языке Б. Задача переводчика — расшифровать фрагмент.

Основой для модели IBM стали документы канадского правительства, написанные на английском и французском языках. Именно эта пара стала первой, над которой стали работать специалисты. Они собрали вероятности для всех сочетаний слов определённой длины на одном языке и вероятности для соответствия каждого из таких сочетаний сочетанию на другом языке. Фактически алгоритм пытается найти самую частотную фразу на языке А, которая имеет хоть какое-то отношение к фразе на языке Б.

Система статистического машинного перевода IBM стала прорывной. С появлением интернета у специалистов появился доступ к огромному количеству данных на разных языках. Исследователи сконцентрировались на сборе корпуса параллельных текстов — одинаковых документов, написанных на разных языках. Это протоколы международных организаций, научные материалы, публицистика. При их изучении устанавливалось соответствие предложений и слов. Например, при сравнении текстов на разных языках система понимает, что «cat» и «кошка» — вероятные переводы друг друга.

В статистической модели машинного перевода каждому слову и фразе соответствует числовой идентификатор, который определяет частоту использования в языке. При переводе предложение разбивается на независимые части. Для каждого элемента этого массива подбирается потенциальный перевод. Затем система собирает несколько вариантов предложения на другом языке и выбирает из них оптимальный с точки зрения сочетаемости слов.

Но машинный перевод всё равно работал неидеально. Главная проблема состояла в том, что слова и фразы переводились независимо. Переводчики не учитывали контекст и даже не согласовывали части предложения. Другая проблема — нехватка параллельных текстов. Из-за этого сложно установить соответствие. В качестве универсального связующего языка в статистическом машинном переводе используется английский.

Результат получается близким к натуральным, но даже в такой короткой цепочке могут возникнуть ошибки из-за многозначных слов.

Нейросети сделали перевод заметно лучше — иногда его сложно отличить от человеческого

Нейросети тоже анализируют массив параллельных текстов — в этом смысле ничего не изменилось. Но вместо простых идентификаторов при нейросетевом подходе используется векторное представление. Каждый вектор состоит из чисел, которые характеризуют слово по лексическим и семантическим признакам.

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

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

Несмотря на появление нейросетевого подхода, от статистического машинного анализа пока полностью не отказались. Например, в Яндекс. Переводчике используется гибридная модель перевода, которая включает статистический и нейросетевой подходы. После обработки текста двумя моделями в работу включается алгоритм, который выбирает лучший вариант.

Перевод стал лучше, но всё ещё очень много ошибок. Нейросети не справляются?

Количество ошибок в переводе зависит от многих факторов. Среди них — родство языков и объём данных, на которых была обучена нейросеть.

Например, алгоритмы Google Translate обучали на языковых парах «английский — испанский» и «английский — французский». Судя по результатам исследования, профессиональные переводчики оценили качество обработки текста в этих парах почти на уровне человеческого перевода.

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

Чем ближе языки друг к другу по структуре, тем выше точность перевода. Но если взять языки из разных систем — например, русский и японский, то здесь универсальные переводчики начинают хромать.

При нейросетевом переводе тоже используется корпус параллельных текстов. Соответственно, сохраняется проблема с нехваткой данных. Если параллельных текстов не хватает для перевода, в ход идёт язык-посредник — английский. Из-за этого возникают неточности. Вы можете сами это легко проверить, если переведёте предложение последовательно на несколько языков.

Например, вот перевод одного из абзацев из этой статьи: русский — английский — монгольский — венгерский — русский. Было так:

«Количество ошибок в переводе зависит от многих факторов. Среди них — родство языков и объём данных, на которых была обучена нейросеть».

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

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

Как можно улучшить работу онлайн-переводчиков

По словам разработчиков из команды Яндекса по машинному переводу, один из перспективных путей улучшения качества переводчиков — усиление роли контекста. Он может включать предыдущее предложение, информацию о сущностях и лицах, упомянутых в тексте, сведения о том, из какого места на веб-странице взят фрагмент.

Любой специалист по переводу скажет, что чем больше контекста или справочной информации, тем проще обрабатывать текст. Это легко проверить. Когда вы учите язык и начинаете на нём читать книги или смотреть фильмы, то часть слов понимаете просто из контекста.

Как это работает на примере онлайн-переводчика? Самая очевидная ситуация — система при переводе обращает внимание на предыдущее предложение. Как минимум это позволяет решить проблему с местоимениями. Учитывая контекст предыдущего предложения, переводчик выбирает правильный род для подлежащего или дополнения.

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

Улучшить качество перевода помогает также добавление в обучающий массив аудио и видео. Сейчас разработчики собирают данные. Например, если в приложении Google Translate запустить режим «Преобразование речи в текст», то появится предупреждение о том, что сделанная вами аудиозапись будет отправлена на обработку в Google. Компания может хранить расшифровку аудио в течение определённого времени в целях улучшения «Переводчика».

Сложность обработки аудиозаписей в том, что в них часто нет контекста. Когда люди разговаривают друг с другом, даже через переводчика, они используют и другие способы коммуникации — например, жестикулируют. Однако добавление аудио всё равно приносит пользу — чем больше данных, тем точнее перевод.

Помогают сделать сервисы лучше и люди. Например, в Яндексе работает группа лингвистической экспертизы, в которую входят редакторы-эксперты и переводчики. Они передают тексты в выборку для машинного обучения.

Google предлагает пользователям стать участниками сообщества «Переводчика», чтобы улучшать качество переводов и добавлять новые языки. Участники сообщества проверяют переводы. Варианты с высокими оценками от специалистов показываются со специальным значком — вы наверняка его видели.

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

Внести свою лепту в развитие «Google Переводчика» может каждый. Например, можно нажать на кнопку «Редактировать перевод» и предложить свой вариант. Он будет отправлен на рассмотрение участникам сообщества. Если они проголосуют за ваш вариант как за корректный, то он станет основным в переводчике.

Чтобы голосовать за варианты перевода и добавлять свои фразы, нажмите на кнопку «Сообщество» на главной странице Google Translate. Система предложит выбрать два языка. После этого вы сможете выбирать корректные варианты и делать онлайн-переводчик лучше.

Почему Google Переводчик и аналоги работают неидеально: как устроены их алгоритмы

Сейчас работа Google Translate, Яндекс. Переводчика и других подобных сервисов всё ещё кажется неидеальной. Но если оглянуться назад, то они стали переводить тексты намного точнее. По крайней мере, их возможностей уже сейчас достаточно для того, чтобы свободно общаться с носителями разных языков.

Использование Google Translate API с PHP

Прочитав это руководство, вы сможете получать переводы из API Google Translate прямо из своего приложения. Вы узнаете, как получить доступ к API, как его использовать и как обрабатывать ошибки в случае их возникновения.

Создание аккаунта Google API

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

ценообразование

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

Получение ключа API

Доступ к Translate API из вашего приложения

Запрос образца

Перевод и обнаружение услуг платные, но мы можем использовать третий метод — языки — просто чтобы проверить, может ли наше приложение соединиться с API. Для этого мы сделаем запрос по следующему URL: https://www. googleapis. com/language/translate/v2/languages

Весь код выглядит следующим образом:

Получение переводов

Метод перевода имеет несколько параметров. Наиболее важными являются:
q — ввод текста,
source — исходный язык (если он не указан, Google попытается определить его автоматически),
target — целевой язык

Если вы хотите получить переведенный текст, вы должны изменить URL-адрес запроса из предыдущего примера. Остальная часть кода выглядит очень похоже:

Пример ответа, содержащий переведенный текст, выглядит следующим образом:

Что произойдет, если вы не установите исходный язык?

Если вы решите не включать исходный язык (параметр источника ) в запрос, могут возникнуть два сценария:
1. Google удастся определить язык самостоятельно, поэтому ответ JSON будет содержать дополнительное свойство детектированное обнаружение ресурса, содержащее код исходного языка.
2. Исходный язык не будет успешно обнаружен (например, если исходный текст был слишком коротким), и Google Translate API вернет ошибку HTTP 500. Это приводит к следующей части урока — обработка ошибок.

Обработка ошибок

API Google Translate может возвращать следующие коды ошибок:
400 ( неверный запрос) — в вашем запросе отсутствуют некоторые параметры или вы передали неправильные значения параметрам, присутствующим в запросе (например, неверный код языка),
403 (запрещено) — вы ввели неверный ключ API или превысили квоту,
500 (Внутренняя ошибка сервера) — Google не может определить исходный язык вашего текста или произошла другая ошибка.

Кроме того, при возникновении ошибки API Google Translate возвращает ответ JSON, содержащий описание ошибки. Например, если один из обязательных параметров отсутствует, сервер ответит следующим ответом:

Поэтому лучший способ обработки ошибок при обращении к сервису API Google Translate — это просто совмещать проверку кода ответа HTTP и анализ ответа JSON с сервера. Что важно, curl_getinfo () должен быть вызван до curl_close () :

Несколько переводов в одном запросе

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

Вывод

Теперь вы знаете основы подключения вашего приложения к Google Translate API. Более сложные реализации API могут включать автоматическую выборку переводов, когда пользователь отправляет некоторый контент (или когда администратор сайта одобряет это), и сохранение переводов в базе данных. Мы расскажем о таких продвинутых примерах в следующей статье (часть 2 здесь ).

Если вы планируете использовать API Google Translate в своем приложении, не забудьте прочитать Условия предоставления услуг и требования к атрибуции, которые содержат несколько рекомендаций о том, как отображать переведенный контент на веб-странице.

Источники:

https://trashbox. ru/link/how-online-translators-works

https://coderlessons. com/articles/php/ispolzovanie-google-translate-api-s-php

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: