وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

ترجمه رشته ها در پایتون با TextBlob

0 37
زمان لازم برای مطالعه: 3 دقیقه


معرفی

ترجمه متن یک مشکل کامپیوتری دشوار است که حل آن هر سال بهتر و آسان تر می شود. شرکت های بزرگی مانند گوگل فعالانه کار می کنند روی بهبود خدمات ترجمه متن آنها که به بقیه ما امکان می دهد آزادانه از آنها استفاده کنیم.

جدا از استفاده شخصی عالی، این سرویس ها می توانند توسط توسعه دهندگان از طریق 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

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید