Yandex translator api python

Используем Яндекс.API для создания переводчика.

Недавно передо мной встала задача — создать переводчик, который бы мог переводить текст хранящийся в файлах ‘*.txt’. Как открывать, закрывать и записывать в файлы достаточно много рассказано и без меня. В этой статье мы рассмотрим именно взаимодействие интерпретатора Python 3 и сервиса переводов Yandex.Translate.

Почему Яндекс? Ну, потому что бесплатно (Гугл закрыл свой открытый API, а разбираться с оставшимися возможностями как-то лень). Во вторых, достаточно развернутая и подробная документация. Использование Яндекс-API позволяет отправлять/получать данные в форматах XML, JSON, JSONP.

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

Заметка! Весь приведенный код тестировался на Python3.6.3!

Для начала нужно установить модуль requests. После добавления в Python программ установки pip эта операция не представляет особого труда. Откройте текстовую строку Windows и выполните команду:

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

Далее будет не лишним ознакомится с ограничениями Яндекса на бесплатный машинный перевод. Если вкратце, то на каждом переведенном тексте (в шапке или футере) должна стоять надпись «Переведено сервисом «Яндекс.Переводчик» с активной ссылкой на этот самый переводчик. Кроме того, объем переводимого бесплатно текста ограничен 1 000 000 знаков в сутки и 10 000 000 знаков в месяц. Если нужно больше — платите.

Изучить эти ограничения особенно актуально, если Вы пишете программу на заказ.

Даже если Вы пишете программу для себя, нужно зарегистрироваться в Яндекс и получить там API-ключ вида ‘trnsl.1.1.*, где * — набор символов (цифры, латиница и точка). Писать свой API я, по понятным причинам, не буду. Но получить его достаточно просто — он нам понадобиться в дальнейшем.

Итак, библиотека requests установлена, API-ключ есть. Можно приступать к организации перевода. Все приведенные ниже команды можно выполнить в IDLE, для отработки алгоритма. Все полностью работает.

Сначала импортируем модуль requests:

Далее, настроим переменные, которые будем использовать в отправке запроса.

>>> eng_text = 'text for translate' >>> token = >>> url_trans = 'https://translate.yandex.net/api/v1.5/tr.json/translate'

Предполагается, что текст для перевода хранится в переменной eng_text; в переменной token хранится Ваш API-ключ. А в переменной url_trans находится адрес, на который мы и будем отправлять запрос.

Читайте также:  Javascript считать до символа

Составляем строку параметров запроса

>>> trans_option = 'key':token, 'lang':'en-ru', 'text': eng_text>

Эта строка будет использоваться в GET-запросе, который мы отправим на Яндекс.Переводчик из Python 3. Параметр ‘lang’ указывает направление перевода.

Теперь составляем и отправляем сам запрос:

>>> webRequest = requests.get(url_trans, params = trans_option)

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

Собственно, осталось обработать эту строку. Вы можете обработать строку как сочтете нужным. Я просто вырезал русский текст при помощи среза, удалив, таким образом, все ненужные символы в ответе сервера:

>>> rus_text = webRequest.text >>> rus_text = rus_text[36:(len(rus_text)-3)] >>> rus_text 'текст для перевода'

Вот, собственно и все. Остальное (перебор в цикле для потокового перевода) достаточно просто, как и сохранение результата в файл. Самая проблема была именно в автоматическом переводе.

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

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

Если Вам понравилась статья, не забывайте ставить лайк ;).

Источник

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

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

⚠ Предупреждение:

Яндекс приостановили выдачу ключей для бесплатного использования API Переводчика, поэтому прошу сюда API Google Translate перевод текста на Python или Машинный перевод текста на 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 = # Параметры запроса 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]) 
 Статус: 200 #Наш текст: Hello, i love Python #Перевод текста: Привет, я люблю питон 
  • key Ваш API Ключ.
  • text Текст, который необходимо перевести.
  • lang язык перевода. (Поддерживаемые языки найдете ниже)
Читайте также:  Search input type in html

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

В виде кода конечного языка (например ru). В этом случае сервис пытается определить исходный язык автоматически

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

html : текст в формате HTML

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

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

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

import requests def transfer(mytext): key = 'API KEY' data = 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)) 

Источник

yandex-translater 6.0

This module uses the Yandex.Translate API for machine translation.
A Yandex API key is required; see https://translate.yandex.com/developers
for more information.

Note also that the “Yandex Terms of Use of API Yandex.Translate Service”
at https://yandex.com/legal/translate_api/ must be observed.

$ pip install yandex-translater

>>> from yandex.Translater import Translater
>>> tr = Translater()
>>> tr.set_key(‘yandex_key’) # Api key found on https://translate.yandex.com/developers/keys
>>> tr.set_from_lang(‘en’)
>>> tr.set_to_lang(‘ru’)
>>> tr.translate()
Привет

.. code-block:: pycon
>>> tr = Translater(attributes)

This constructor returns a new object. Optional attributes include:

This method is used to pass a Yandex API key (string),
instead of passing it in Constructor. A tr object can be
instantiated without any attributes.

This method is used to pass a text to translate (string).

This method is used to pass a source language (string).
For example, Chinese would be given as zh.

This method is used to pass a destination language (string).
For example, Arabic would be given as ar.

This method is used to set the user interface language (string).
For example, French would be given as fr.

This method is used to set the default user interface language (string).
Either ru (Russian) or en (English) or tr (Turkish) can be given.

This method is used to set the list of likely languages for
detecting the text language (array reference). For example,
Spanish and Portuguese would be given as attributes.

This method is used to get the translated text (string)

This method is used to detect the language of the text. It returns a string.

Читайте также:  Css input password show

This method is used to get the list of supported translation directions.
In array context, it returns an array of these directions; in scalar context,
it returns the count of them.

Please report any bugs or feature requests on my email or created in the website.
yandex-translate-bugs

This is open source software. The code repository is available for
public review and contribution under the terms of the license.

This software is copyleft © 2017 by James Axl.

This is free software; you can redistribute it and/or
modify it under the same terms as the Perl 5 programming language system itself.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Python module for Yandex.Translate API

License

dveselov/python-yandex-translate

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Python module for Yandex.Translate API.

This module is fully-compatible with Python 2.7+ and 3.3+ versions.

pip install yandex.translate
from yandex_translate import YandexTranslate translate = YandexTranslate('Your API key here.') print('Languages:', translate.langs) print('Translate directions:', translate.directions) print('Detect language:', translate.detect('Привет, мир!')) print('Translate:', translate.translate('Привет, мир!', 'ru-en')) # or just 'en'
Languages: Translate directions: ['az-ru', 'be-bg', 'be-cs', ..] Detect language: 'ru' Translate:

Also, it’s possible to use proxies when doing requests to Yandex.Translate API — just pass proxies dictionary with data in same format that requests use.

Источник

Оцените статью