Yandex Translate API создания переводчика на Python
Ramas, 2019-09-26

Yandex Translate API создания переводчика на Python

API Яндекс.Переводчик

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

Как работает Яндекс.Переводчик

Как только пользователь вводит текст для перевода, Яндекс.Переводчик передает этот текст сразу двум системам: и нейронной сети, и статистическому переводчику.

яндекс переводчик
Получаем API Ключ

Авторизовываемся на сайте Яндекс, переходим по ссылке на страницу для разработчиков, нажимаем создать новый ключ, и радуемся :) Выглядеть он будем примерно так:

trnsl.1.1.20190924T114701Z.6515eb42f84cfec7.cd06f2d928f870b8b0d111...
Python код

Для работы с HTTP запросами будем использовать мощщщную библиотеку requests. Код:

import requests
def transfer(mytext):
    key = 'API KEY' # API KEY
    data = {'lang':'ru',
           'key':key,
           'text':mytext, 
           'format':'plain'
           }  # Параметры запроса
    r = requests.post('https://translate.yandex.net/api/v1.5/tr.json/translate', data = data).json() # POST запрос
    r['mytext'] = mytext # Добавим наш текст
    return r # ответ

print(transfer('Hello, i love Python'))
print('Статус: ', transfer('Hello, i love Python')['code'])
print('Наш текст: ', transfer('Hello, i love Python')['mytext'])
print('Перевод текста: ', transfer('Hello, i love Python')['text'][0])

Ответ:

{'code': 200, 'lang': 'en-ru', 'text': ['Привет, я люблю питон'], 'mytext': 'Hello, i love Python'}
Статус:  200
Наш текст:  Hello, i love Python
Перевод текста:  Привет, я люблю питон

Параметры POST запроса: key - Ваш API Ключ. text - Текст, который необходимо перевести. lang - язык перевода. (Поддерживаемые языки найдете ниже)

В виде пары кодов языков («с какого»-«на какой»), разделенных дефисом. Например, en-ru обозначает перевод с английского на русский.
В виде кода конечного языка (например ru). В этом случае сервис пытается определить исходный язык автоматически

format - Формат текста.

plain : текст без разметки (значение по умолчанию)
html : текст в формате HTML

Коды ответов:

яндекс переводчик коды

Ограничения:

Для POST-запросов максимальный размер передаваемого текста составляет 10 000 символов. В GET-запросах ограничивается не размер передаваемого текста, а размер всей строки запроса, которая кроме текста может содержать и другие параметры. Максимальный размер строки — от 2 до 10 КБ (зависит от версии используемого браузера).

Поддерживаемые языки:

яндекс переводчик языки

Для завершения :)

import requests
def transfer(mytext):
    key = 'API KEY'
    data = {'lang':'ru',
            'key':key,
            'text':mytext, 
            'format':'plain'
            } 
    r = requests.post('https://translate.yandex.net/api/v1.5/tr.json/translate', data = data).json()
    if r['code'] == 200:
        return r['text'][0]
    else:
        return 'error'

while True:
    text = input('Введите текст: ')
    print('Перевод: ',transfer(text))
python переводчик

Комментарии отсутствуют


Чтобы оставить комментарий Вам необходимо зарегистрироваться или войти