از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ترجمه رشته ها در پایتون با TextBlob
سرفصلهای مطلب
معرفی
ترجمه متن یک مشکل کامپیوتری دشوار است که حل آن هر سال بهتر و آسان تر می شود. شرکت های بزرگی مانند گوگل فعالانه کار می کنند روی بهبود خدمات ترجمه متن آنها که به بقیه ما امکان می دهد آزادانه از آنها استفاده کنیم.
جدا از استفاده شخصی عالی، این سرویس ها می توانند توسط توسعه دهندگان از طریق API های مختلف مورد استفاده قرار گیرند. این مقاله در مورد TextBlob
که از یکی از این APIها برای انجام ترجمه متن استفاده می کند.
TextBlob چیست؟
TextBlob
یک کتابخانه پردازش متن است که به زبان پایتون نوشته شده است. با توجه به آن مستندات، می توان از آن برای برچسب گذاری قسمتی از گفتار، تجزیه، تحلیل احساسات، تصحیح املا، ترجمه و موارد دیگر استفاده کرد. در این مقاله، ما تمرکز می کنیم روی ترجمه متن
در داخل، TextBlob
متکی است روی API Google Translate. این بدان معناست که برای انجام ترجمه ها به یک اتصال اینترنتی فعال نیاز است.
در حال نصب TextBlob
بیایید با نصب شروع کنیم TextBlob
استفاده کردن pip
، و بارگیری مجموعه کلماتی که برای عملکرد نیاز دارد:
$ pip install -U textblob
$ python -m textblob.download_corpora
با استفاده از TextBlob
استفاده کردن TextBlob
سرراست و ساده است ما فقط import آن را، یک رشته به سازنده اختصاص دهید و سپس آن را از طریق ترجمه کنید translate()
تابع:
from textblob import TextBlob
blob = TextBlob("Buongiorno!")
print(blob.translate(to='en'))
را translate()
تابع دو آرگومان را می پذیرد – from_lang
و to
. را from_lang
بسته به طور خودکار تنظیم می شود روی زبانی که TextBlob تشخیص می دهد.
مثال بالا از عبارت ایتالیایی استفاده می کند Buongiorno
که ترجمه می شود Good morning
به انگلیسی.
گاهی اوقات، ممکن است بخواهیم زبانی را شناسایی کنیم تا تصمیم بگیریم که آیا متن اصلاً به ترجمه نیاز دارد یا خیر. برای تشخیص زبان برخی از متن ها، TextBlob
‘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.
شعر اصلی را به خط سیریلیک میدهیم 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
برای راحتی ترجمه ساده و ارضای کنجکاوی توسعه دهندگانی که از آنها استفاده می کنند، بیش از اندازه کافی هستند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-16 16:56:07