Вступление
Перевод текста - сложная компьютерная задача, которую с каждым годом решать все лучше и легче. Крупные компании, такие как 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
, более
чем достаточно, чтобы обеспечить удобство для простого перевода и
удовлетворить любопытство разработчиков, использующих их.