Вступление
Перевод текста-это сложная компьютерная задача, которую с каждым годом становится все легче и легче решать. Крупные компании, такие как Google, активно работают над улучшением своих услуг по переводу текстов, что позволяет остальным из нас свободно ими пользоваться.
Помимо их большого личного использования, эти сервисы могут быть использованы разработчиками через различные API. Эта статья о Text Blob
который использует один из таких API для выполнения перевода текста.
Что такое TextBlob?
TextBlob
-это библиотека обработки текста, написанная на Python. Согласно его документации , он может быть использован для маркировки частей речи, синтаксического анализа, анализа настроений, исправления орфографии, перевода и многого другого. В этой статье мы сосредоточимся на переводе текста.
Внутренне/| TextBlob полагается на API Google Translate. Это означает, что для выполнения переводов требуется активное подключение к Интернету.
Установка TextBlob
Давайте начнем с установки Text Blob
using 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
.
Иногда мы можем захотеть определить язык, чтобы решить, нуждается ли текст в переводе вообще. Для определения языка некоторого текста используется функция Text Blob
‘s 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.
Мы скормим оригинальное стихотворение на кириллице Text Blob
и посмотрите, как хорошо он переводится на хорватский. Поскольку и русский, и хорватский, и славянский языки, перевод ожидается относительно хорошим:
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'))
Французский перевод/| яблоко|/. Приятного аппетита!
Вывод
Перевод – интересная, но сложная компьютерная задача. Глубокое обучение и другие методы искусственного интеллекта становятся все более эффективными в понимании языка и выполнении автоматического перевода. Text Blob
– это один из инструментов, доступных разработчикам, который может быть использован для выполнения таких автоматизированных языковых переводов.
Такой подход имеет много преимуществ, однако не все переводы совершенны. Эти методы все еще развиваются, и если вы нуждаетесь в качественном переводе большой важности, всегда лучше проконсультироваться с профессиональным переводчиком.
Однако для всех других целей таких инструментов, как Text Blob
, более чем достаточно, чтобы обеспечить удобство простого перевода и удовлетворить любопытство разработчиков, использующих их.