Python Çeviri Programı

Python Çeviri Programı

Herkese merhaba. Bu dersimizde İngilizce – Türkçe çeviri programı tasarlayacağız. Çeviri yapmak için TextBlob kütüphanesinden faydalanacağız. TextBlob kütüphanesi çeviri yaparak duygu analizi (Sentiment) de yapmaktadır. Bu analizi yaparken ingilizce kelimeler kullanmalıyız. Duygu analizi için Türkçe kelimeler desteklenmemektedir.

Bu örneğimizde çeviri (translate) programı yapacağız. Sentiment özelliğini diğer derslerimizde göreceğiz. Öncelikle hazırlayacağımız programın basit arayüzü aşağıdaki gibi olacaktır.

python çeviri programı
python çeviri programı

Arayüz de iki adet etiket, iki adet Text aracı ve iki adet buton kullanılmıştır. Şu hali ile sadece İngilizce’ den Türkçe’ye çeviri yapacağız. Şimdi kodlara ve açıklamalarına dikkatlice göz atalım.

Programın Kodları:

import tkinter as tk
from textblob import TextBlob
pencere = tk.Tk()
pencere.title("İng - Tr SÖZLÜK")
pencere.geometry("500x300")

def cevir ():
    en_cumle = tb1.get(1.0,tk.END)
    text = TextBlob(en_cumle)
    ceviri_cumle = text.translate(to="tr")
    tb2.delete(1.0,tk.END)
    tb2.insert(tk.END,ceviri_cumle)


def temizle():
    tb1.delete(1.0,tk.END)
    tb2.delete(1.0, tk.END)


e1 = tk.Label(text="EN :",font="Arial 13 bold")
e1.place(x=10,y=30)
e2 = tk.Label(text="TR :",font="Arial 13 bold")
e2.place(x=10,y=120)

tb1= tk.Text(width=50,height=5)
tb1.place(x=60,y=30)
tb2= tk.Text(width=50,height=5)
tb2.place(x=60,y=120)

btn1 = tk.Button(text="TRANSLATE",font="Arial 13 bold",command=cevir)
btn1.place(x=10,y=260)
btn2 = tk.Button(text="TEMİZLE",font="Arial 13 bold",command=temizle)
btn2.place(x=200,y=260)

pencere.mainloop()

Öncelikle TextBlob kütüphanesinden faydalanacağımı söylemiştik. Bu kütüphane python ile birlikte gelmez. Ayrıca yüklemeniz gerekecektir. Pycharm editörden pip install textblob komutunu vererek bu kütüphaneyi yükleyebilirsiniz.

TextBlob Kurulumu:

pip install textblob

TextBlob Kullanımı:

Daha sonra bu kütüphaneyi kullanmak için içeriye projenize import etmelisiniz. Aşağıdaki kodu kullanarak import edebilirsiniz.

from textblob import TextBlob

Kodları Anlatımı:

Öncelikle arayüz de 6 adet araç mevcut. Bu araçları place metodu ile ekrana yerleştirdik. Place metoduna x ve y değerleri vererek araçları istediğiniz yerlere yerleştirebilirsiniz. Araçların kodları:

e1 = tk.Label(text="EN :",font="Arial 13 bold")
e1.place(x=10,y=30)
e2 = tk.Label(text="TR :",font="Arial 13 bold")
e2.place(x=10,y=120)

tb1= tk.Text(width=50,height=5)
tb1.place(x=60,y=30)
tb2= tk.Text(width=50,height=5)
tb2.place(x=60,y=120)

btn1 = tk.Button(text="TRANSLATE",font="Arial 13 bold",command=cevir)
btn1.place(x=10,y=260)
btn2 = tk.Button(text="TEMİZLE",font="Arial 13 bold",command=temizle)
btn2.place(x=200,y=260)

e1 ve e2 etiketlerimiz. tb1 ve tb2 textbox araçlarımız. btn1 ve btn2 ise buton araçlarıdır. Bu yerleşimi yaptıktan sonra iki adet buton aracımıza command yani tıklanma görevi veriyoruz. btn1 butonu yani ÇEVİR butonu çevir fonksiyonuna, btn2 butonu yani TEMİZLE butonu ise temizle fonksiyonuna yönlendirilmiştir. Şimdi bu fonksiyonlarımı inceleyelim.

ÇEVİR fonksiyonu:
def cevir ():
    en_cumle = tb1.get(1.0,tk.END)
    text = TextBlob(en_cumle)
    ceviri_cumle = text.translate(to="tr")
    tb2.delete(1.0,tk.END)
    tb2.insert(tk.END,ceviri_cumle)

Öncelikle ÇEVİR butonuna tıkladığımızda bu fonksiyon çalışacaktır. İlk yapmamız gereken şey; tb1 Textbox aracına kullanıcının girdiği İngilizce metni almaktır. tb1.get(1.0 , tk.END) ile bu metni alıp en_cumle değişkenine atıyoruz.

Şimdi ise bu en_cumle değişkenini TextBlob kütüphanesine göndermeliyiz. TextBlob(en_cumle) komutu ile bu işlemi gerçekleştiriyoruz. Gönderdiğimiz cümleyi yada kelimeyi text isminde bir değişkene aktardık.

Son olarak text.translate(to=”tr”) ile text değişkenimizi translate ediyoruz. Parantez içerisine to=”tr” komutu ile çevireceğimiz dilin ülke kodunu seçmelisiniz. Boş bırakırsanız default olarak İngilizceye çeviri yapılacaktır. Örneğin “de” seçerseniz Almanca diline çeviri gerçekleşir. Çevirimizi yaptık ve ceviri_cumle değişkenine bunu atadık.

Şimdi ise tek yapmamız gerek şey kaldı. Programı kullanan kişinin bu çeviriyi görmesi için ceviri_cumle değişkenindeki bilgiyi tb2 isimli Textbox aracına eklemek.

tb2.delete(1.0,tk.END)
tb2.insert(tk.END,ceviri_cumle)

Önce tb2 isimli textbox aracını içeriğini siliyoruz. Hemen ardından insert komutu ile ceviri_cumle değişkeninde yer alan değeri tb2 Textbox aracına gönderiyoruz. Hepsi Bu kadar…

TEMİZLE fonksiyonu:

Bu fonksiyon ise kullanıcı TEMİZLE butonuna basınca çalışacaktır. İçerisinde sadece iki satır kod var. Bu kodlar ile tb1 ve tb2 isimli Textbox araçları temizlenmektedir.

def temizle():
    tb1.delete(1.0,tk.END)
    tb2.delete(1.0, tk.END)

İlerleyen derslerimizde bu programı geliştireceğiz. Radio butonlar koyarak birden fazla dile çeviri yapabileceğiz. İlerleyen derslerde görüşmek dileği ile….

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir