Как использовать Google или Microsoft Переводчик API с Python для перевода текстовых файлов? - PullRequest
1 голос
/ 18 февраля 2012

Я хотел бы автоматически предварительно перевести несколько текстовых файлов, которые у меня есть на жестком диске. Есть ли способ сделать это с помощью Python. Я уже получил ключ API Google Translate, и я хотел бы использовать это. Файлы, которые у меня есть, включают в себя некоторый код XML, однако сначала я бы хотел, чтобы переводчик работал с некоторыми текстовыми файлами. Один текстовый файл может выглядеть так:

Hello, my name is Stefan. I live in Germany and my hobbies are tennis, walking and reading.

Мой вопрос теперь заключается в том, как читать текстовый файл и автоматически переводить его с английского на немецкий.

Я довольно долго смотрел в Интернете, но не смог найти решение своей проблемы.

Любая прямая помощь или ссылка на другой пост / веб-сайт приветствуется.

Ответы [ 4 ]

0 голосов
/ 16 августа 2012

Если вы хотите посмотреть на вопрос синтаксического анализа, на который я ответил , который называется Perl, а не Python, то это часть программы, которая анализирует HTML для извлечения строк перед отправкой их переводчику Bing. Вам нужно будет сделать что-то подобное с XML, вероятно, через библиотеку синтаксического анализа Python .

Затем вы вызываете службу перевода по строке:

   # minor adjustment for simplified chinese....
    my $call_language = $language;
    $call_language =~ s/zh/zh-CHS/;

    # microsoft application id for translator....
    my $appId = 'blablabla';
    my $url =
"http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=$appId&text=$text&from=en&to=$call_language";

    ###my $url = "https://www.googleapis.com/language/translate/v2?key=<my-key>&q=$text%20world&source=en&target=$language" ;
    # Create a request
    my $req = HTTP::Request->new( GET => $url );

    # Pass request to the user agent and get a response back
    my $res = $ua->request($req);

    #sleep 2 ;
    # Check the outcome of the response
    if ( $res->is_success ) {
        $content = $res->content;

Опять же, это Perl, но я надеюсь, что это дает вам идею ...

0 голосов
/ 18 февраля 2012

Google Translate API теперь является только платным сервисом, вероятно, потому, что многие люди троллили через него огромные объемы данных.По сути, это RESTful API, что означает, что вы используете стандартные инструменты url и json для создания запроса в HTTP, а затем передаете его API в виде GET, а затем вы получите обратно объект json с вашим переводом.Фактически вы прочитаете исходный файл, соберете его в запрос, отправите HTTP GET вашего запроса в Google, затем проанализируете и воспользуетесь ответом.

0 голосов
/ 18 февраля 2012

Спасибо за ваши быстрые и полезные ответы. Теперь я закончил тем, что загрузил свой текстовый файл - фактически это файл XML - на мой веб-сайт и включил API Переводчика Google (http://translate.google.com/translate_tools) для перевода с английского на немецкий. Это работает, хотя я хотел бы избежать некоторых тегов разметки. Таким образом, ни Python, ни настоящее программирование не нужны. Сервис является платным сервисом, стоимость которого составляет 20 $ за 1 М символов.

0 голосов
/ 18 февраля 2012

Перейдите сюда, чтобы начать процесс добавления Google Translate на свою страницу.http://translate.google.com/translate_tools

...