Türkçe doğal dil metinlerinden python programlama dili kodu üretilmesi
Generation of python programming language code from Turkish natural language texts
Yazar: AYŞEGÜL HATİPOĞLU
Danışman: PROF. DR. TURGAY TUGAY BİLGİN
Bursa Teknik Üniversitesi / Lisansüstü Eğitim Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2024
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Dil insanların birbirleriyle iletişim kurmak, duygu ve düşüncelerini karşısında
bulunan kişiye aktarmak amacıyla kullandıkları iletişim aracıdır. İnsan yaşamının 
vazgeçilemez bir parçasıdır. Bilgisayar dünyası açısından bakıldığında ise diller
insanların günlük yaşamda kullandıkları İngilizce, Arapça, Türkçe gibi doğal diller 
ve belli kurallar çerçevesinde geliştirilen, bilgisayarların anlayıp makine koduna 
çevirebildiği ifadeler olan programlama dilleri olarak 2'ye ayrılabilir. Günümüzde 
çok sayıda programlama dili kullanılmaktadır. Bu dillerinin her birinin kendine özgü 
yazım kuralları olması dil öğrenimini ve diller arası geçişi zorlaştırmaktadır. 
Özellikle programlama dilini öğrenmeye yeni başlayan kişilerin bu kurallara alışması 
zaman almaktadır. Programlama dillerinin sentaksının İngilizce olması da farklı 
dillerden gelen kişilerin bu adaptasyon sürecini daha zor hale getirmektedir. Bu gibi 
problemler araştırmacıları doğal dilde programlama yapma fikrine sevk etmiştir. 
Günlük yaşamda birçok işlemde doğal dil işleme kullanan uygulamalara 
rastlanmaktadır. Bu uygulamalara örnek verilmek istenirse Bankalardaki sesli yanıt 
sistemleri, akıllı uygulamalarda karşılaştığımız sohbet robotları, diller arası çeviri 
programları, yazım denetim programları, metin özetleme sistemleri, dil bilgisi 
kontrol sistemleri, mesajlaşmalarımızda kullandığımız sonraki kelimenin tahmin 
edilmesi çalışmaları gibi örnekler verilebilir. Teknolojik cihazlar hayatımızın 
vazgeçilmez öğelerinden biri konumundadır. Günlük hayatımız da bu denli 
teknolojinin kullanılması programlama ile profesyonel olarak ilgilenmeyen, eğitim 
hayatında programlama dersi görmemiş kişilerin de yazılım teknolojilerine ilgi 
duymasına yol açmaktadır. Diğer bir taraftan da doğal dil işleme çalışmalarının bu 
kadar ilerlemesiyle birçok araştırmacı doğal dil ifadelerinden programlama dili
ifadeleri oluşturma üzerine çalışmıştır.
Bu tez çalışmasında Türkçe konuşma dilinde yazılmış doğal dil metinleri 
kullanılarak, kullanıcının isteklerini karşılayan Python programlama dili kodunun 
üretimini sağlayan bir sistem tasarımı oluşturulmaktır. Kullanıcıların sorabileceği 
olası sorulardan oluşan veri setleri çeşitli doğal dil işleme teknikleriyle bir dizi 
işlemden geçirilmiştir. Ön işleme aşamaları tamamlanan bu veriler Transformer 
Mimarisi kullanılarak eğitilmiştir. Bu eğitim verisinden elde edilen sonuçlar 
kullanılarak kullanıcıların girdiği doğal dildeki metinlerini anlamak ve sonuç 
üretebilmek için bir yapı kurulmuştur.
Bu tez çalışmasının amacı Türkçe doğal dilinde yazılmış cümleleri analiz edip, 
isteklere karşılık gelen Python programlama dili kodu üretimi sağlayan bir yapı
tasarlayarak Türkçe dilinde programlar yazabilme imkânı sunmaktır. Literatürde 
daha önce yapılan çalışmalar incelendiğinde Türkçe dili kullanılarak programlama 
dili kodu üretilmesi konusunda sınırlı sayıda çalışmaya rastlanmakta, çoğu çalışmanın İngilizce için yapıldığı görülmektedir. Bu nedenle bu alanda yapılacak 
Türkçe çalışmalar önem arz etmektedir. Yapılan bu çalışmayla hem otomatik 
programlama dili kodu üretilmesi konusunda Türkçe doğal dil işleme alanında 
literatürde bulunan bu eksikliğin doldurulmasına katkı sağlanacak hem de Python 
gibi çok kullanılan bir dil tercih edilerek bu dili öğrenme konusunda problem 
yaşayan kişiler için kolaylık sağlanacaktır.

Abstract:
Language is a communication tool that people use to communicate with each other 
and to convey their feelings and thoughts to the other person. It is an indispensable 
part of human life. From the point of view of the computer world, languages can be 
divided into natural languages such as English, Arabic, Turkish, which people use in 
daily life, and programming languages, which are expressions developed within the 
framework of certain rules, which computers can understand and translate into 
machine code. There are many programming languages in use today. The fact that 
each of these languages has its own writing rules makes language learning and 
transition between languages difficult. It takes time to get used to these rules, 
especially for people who are new to learning a programming language. The fact that 
the syntax of programming languages is English also makes this adaptation process 
more difficult for people from different languages. Such problems have led 
researchers to the idea of natural language programming.
There are applications that use natural language processing in many processes in 
daily life. Examples of these applications are voice response systems in banks, chat 
robots that we encounter in smart applications, interlingual translation programs, 
spell checking programs, text summarization systems, grammar control systems, 
prediction of the next word we use in our messaging. Technological devices are one 
of the indispensable elements of our lives. The use of so much technology in our 
daily lives causes people who are not professionally interested in programming and 
who have not taken a programming course in their education life to be interested in 
software technologies. On the other hand, with the advancement of natural language 
processing, many researchers have worked on creating programming language 
expressions from natural language expressions.
The aim of this thesis is to design a system that uses natural language texts written in 
Turkish spoken language to generate Python programming language code that meets 
the user's requests. Data sets consisting of possible questions that users may ask were 
subjected to a series of operations using various natural language processing 
techniques. After the pre-processing stages were completed, these data were trained 
using the Transformer Architecture. Using the results obtained from this training 
data, a structure was built to understand the natural language texts entered by users 
and to produce results.
The aim of this thesis is to analyze sentences written in Turkish natural language and 
to design a structure that generates Python programming language code that responds 
to the requests and provides the opportunity to write programs in Turkish language. 
When the previous studies in the literature are examined, it is seen that there is a 
limited number of studies on generating programming language code using the 
Turkish language, and most of the studies are conducted in English. For this reason, 
Turkish studies in this field are important. This study will contribute to filling this 
gap in the literature on automatic programming language code generation in the field 
of natural language processing in Turkish, and by choosing a widely used language 
such as Python, it will provide convenience for people who have problems in 
learning this language.