Перевод строк в Python с помощью TextBlob

Введение Перевод текста - сложная компьютерная задача, которую с каждым годом решать все лучше и легче. Крупные компании, такие как Google, активно работают над улучшением своих услуг по переводу текстов, что позволяет всем нам свободно пользоваться ими. Помимо большого личного использования, эти сервисы могут использоваться разработчиками через различные API. Эта статья о TextBlob, который использует один такой API для перевода текста. Что такое TextBlob? TextBlob - это запись библиотеки обработки текста

Вступление

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

Помимо большого личного использования, эти сервисы могут использоваться разработчиками через различные API. Эта статья о TextBlob который использует один такой API для перевода текста.

Что такое TextBlob?

TextBlob - это библиотека для обработки текста, написанная на Python. Согласно документации , его можно использовать для тегов части речи, синтаксического анализа, тонального анализа, исправления орфографии, перевода и т. Д. В этой статье мы сосредоточимся на переводе текста.

Внутренне TextBlob полагается на API Google Translate. Это означает, что для выполнения переводов требуется активное подключение к Интернету.

Установка TextBlob

Начнем с установки TextBlob с помощью pip и загрузки набора слов, необходимых для работы:

 $ pip install -U textblob 
 $ python -m textblob.download_corpora 

Использование TextBlob

Использовать TextBlob просто и просто. Мы просто импортируем его, назначаем строку конструктору и затем переводим ее с помощью функции translate() :

 from textblob import TextBlob 
 
 blob = TextBlob("Buongiorno!") 
 print(blob.translate(to='en')) 

Функция translate() принимает два аргумента - from_lang и to . from_lang автоматически устанавливается в зависимости от языка, который обнаруживает TextBlob.

В приведенном выше примере используется итальянская фраза Buongiorno которая переводится как « Good morning на английском языке.

Иногда нам может понадобиться определить язык, чтобы решить, нужен ли вообще текст перевод. Чтобы определить язык текста, используется TextBlob detect_language() :

 from textblob import TextBlob 
 
 blob = TextBlob("Buongiorno!") 
 if (blob.detect_language() != 'en') 
 blob.translate(to='en')) 

Примеры перевода и точность

Перевод предложений с английского на хинди

В качестве первого примера мы посмотрим, насколько хорошо английский переводится на хинди:

 blob = TextBlob('TextBlob is a great tool for developers') 
 print(blob.translate(to='hi')) 

Результат следующий:

 डेवलपर्स के लिए एक बढ़िया टूल है 

Перевод русской поэзии на хорватский язык

Давайте посмотрим, как TextBlob управляет поэзией. Это произведение русского поэта Владимира Маяковского, сначала на русском, а затем на английском языке:

 Послушайте! 
 Ведь, если звезды зажигают - 
 значит - это кому-нибудь нужно? 
 Значит - кто-то хочет, чтобы они были? 
 Значит - кто-то называет эти плевочки 
 жемчужиной? 

 Listen! 
 See, if stars light up 
 does it mean that there is someone who needs it? 
 Does it mean that someone wants them to exist? 
 It means that someone calls these little spits 
 magnificent. 

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

 from textblob import TextBlob 
 
 poem = 'Послушайте! Ведь, если звезды зажигают - значит - это кому-нибудь нужно? Значит - кто-то хочет, чтобы они были? Значит - кто-то называет эти плевочки жемчужиной?' 
 
 blob = TextBlob(poem) 
 print(blob.translate(to='hr')) 

Запустив приведенный выше код, мы получаем следующий вывод (отформатированный для удобства):

 Slušati! 
 Uostalom, ako su zvijezde upaljene 
 znači li to nekome treba? 
 Dakle - netko želi da to budu? 
 Dakle - netko naziva ove pljuvačke 
 biserom? 

Большая часть перевода хороша, за исключением первого слова, которое звучало бы лучше, если бы в звательном Slušajte а не Slušati Хотя и не идеально, вы могли понять перевод.

Перевод массива немецких слов на английский

В некоторых случаях нам не нужно переводить полные предложения. У нас может быть список или массив слов. Их намного проще перевести, поскольку нет контекста, в котором можно было бы изменить перевод:

 from textblob import TextBlob 
 
 worter = ['einer', 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben', 'acht', 'neun', 'zehn'] 
 
 for w in worter: 
 blob = TextBlob(w) 
 print(blob.translate(to='en')) 

Результат:

 one 
 two 
 three 
 four 
 five 
 six 
 seven 
 eight 
 nine 
 ten 

Выглядит неплохо!

Перевод еды с английского на французский

Наконец, давайте переведем английское слово на французский:

 from textblob import TextBlob 
 
 blob = TextBlob('An apple') 
 print(blob.translate(to='fr')) 

Французский перевод - Une pomme . Приятного аппетита!

Заключение

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

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

Однако для всех других целей таких инструментов, как TextBlob , более чем достаточно, чтобы обеспечить удобство для простого перевода и удовлетворить любопытство разработчиков, использующих их.

comments powered by Disqus