Рубрики
Без рубрики

Перевод твитов из Twitter API V2 Использование AWS Amazon Translate в Python

Исследователи используют API Twitter для получения данных Twitter для различных исследований. В некоторых случаях они … Теги с Python, Twitter, API, программированием.

Исследователи используют API Twitter для получения данных Twitter для различных исследований. В некоторых случаях они хотят перевести текст Tweet с одного языка на другое, а затем выполнить дальнейший анализ на тексте.

В этом посте мы узнаем, как получить твиты, используя Twitter API V2, а затем преобразовывать твиты с одного языка на другое, используя Amazon Translate в Python.

Предпосылка

Для того, чтобы следовать этому руководству, вам нужен Учетная запись Developer Twitter . После того, как у вас есть учетная запись разработчика, вам понадобится токен предъявителя для подключения к Twitter API V2, чтобы получить твиты. Следуйте этим инструкциям для получения токена на предъявителя.

Вам также понадобится учетная запись Amazon Web Services (AWS), чтобы использовать услугу Amazon Translate. Инструкции по настройке Ваши учетные данные AWS локально можно найти здесь Отказ Пожалуйста, установите его, чтобы получить образец код работы.

Для подключения к Twitter API V2 мы будем использовать Twarc Библиотека Отказ Для того, чтобы использовать Amazon Translate, мы будем использовать Библиотека Boto3 Отказ Таким образом, сначала мы импортируем необходимые библиотеки:

from twarc import Twarc2, expansions
import boto3

Далее мы настроим клиент Twarc, который мы будем использовать, чтобы получить твиты из Twitter API V2. Чтобы настроить его, мы передадим его токен предъявителя (полученный в разделе «Предварительные условия)

# Replace your bearer token below
client = Twarc2(bearer_token="REPLACE_ME")

Затем мы напишем небольшую функцию помощника, которая принимает входной текст Tweet, исходный язык (язык, в котором находится твит) и целевой язык (язык, к которому мы хотим Tweet, переведенный). В этой функции мы инициализируем клиент Amazon Translate, написав boto3.client («перевод») Отказ

Как только клиент настроен, мы передаем его Tweet Text, исходный язык и целевой язык. После того, как у нас есть ответ, мы вернем словарь с соответствующими значениями для исходного текста, переведенного текста, исходных и целевых языковых кодов из этой функции

def translate(input_text, source_lang, target_lang):

    translate_client = boto3.client("translate")

    result = translate_client.translate_text(Text=input_text, SourceLanguageCode=source_lang,
                                             TargetLanguageCode=target_lang)

    return {"originalText": input_text, "translatedText": result.get('TranslatedText'),
            "sourceLang": result.get('SourceLanguageCode'), "targetLang": result.get('TargetLanguageCode')}

Затем мы указываем основную функцию. В этой функции мы позвоним search_recent Метод библиотеки TWARC и пропустите его поисковой запрос. Это будет искать твиты с последних 7 дней на основе условий, указанных в поисковом запросе.

Для этой демонстрации я указываю, что хочу твиты из определенного аккаунта ( от: sentiplydev ), которые находятся на языке хинди ( lang: hifish ). Узнайте больше о написании поисковых запросов здесь Отказ

def main():

    # Replace the query below with your own
    query = "from:SentimentsDev lang:hi -is:retweet"

    # The search_all method call the recent-archive search endpoint to get Tweets based on the query
    search_results = client.search_recent(query=query, max_results=100)

    # Twarc returns all Tweets for the criteria set above, so we page through the results
    for page in search_results:
        # The Twitter API v2 returns the Tweet information and the user, media etc.  separately
        # so we use expansions.flatten to get all the information in a single JSON
        result = expansions.flatten(page)
        for tweet in result:
            # Here we are calling the translate function and passing it the tweet text, the source language code
            # and the target language code
            response = translate(tweet['text'], tweet['lang'], 'en')
            # Below we print the original text, the translated text, the source and target language codes
            print("Original Text: {}".format(response['originalText']))
            print("Translated Text: {}".format(response['translatedText']))
            print("Source Language: {}".format(response['sourceLang']))
            print("Target Language: {}".format(response['targetLang']))

Наконец мы позвоним основной функцией.

if __name__ == "__main__":
    main()

В этом примере твит был:

Следовательно, ответ будет выглядеть так:

Original Text: आज का मौसम बहुत अच्छा है
Translated Text: Today's weather is very good
Source Language: hi
Target Language: en

Как вы можете видеть, оригинальный твит был на языке хинди (обозначен кодом языка привет Несомненно И это превратилось в английский. Точно так же вы можете перевести между различными другими языками, используя Amazon Translate.

Я надеюсь, что это небольшое учебное пособие полезно для вас. Пожалуйста, обратитесь к мне в Twitter @suhemparack с вопросами или обратной связью.

Оригинал: “https://dev.to/twitterdev/translating-tweets-from-the-twitter-api-v2-using-aws-amazon-translate-in-python-1nj0”