Python söz dizimi hatalarının derin öğrenme yöntemleri ile onarılması

dc.contributor.advisorBilgin, Turgay Tugay
dc.contributor.authorDikici, Sena
dc.date.accessioned2024-11-05T17:46:57Z
dc.date.available2024-11-05T17:46:57Z
dc.date.issued2024
dc.departmentBTÜ, Lisansüstü Eğitim Enstitüsü, Bilgisayar Mühendisliği Ana Bilim Dalıen_US
dc.descriptionLisansüstü Eğitim Enstitüsü, Bilgisayar Mühendisliği Ana Bilim Dalı, Bilgisayar Mühendisliği Bilim Dalıen_US
dc.description.abstractOtomatik program onarımı (APR), yazılım geliştirme süreçlerinde karşılaşılan hataları tespit etmek ve onarmak için otomatik teknikler kullanan bir araştırma alanıdır. Bu alanda yapılan çalışmalar, hata düzeltme sürecini hızlandırmayı, yazılım kalitesini artırmayı ve geliştiricilerin üzerindeki yükü azaltmayı hedefler. Bu alandaki son yenilikler, derin öğrenme ve makine öğrenimi tekniklerinin yanı sıra geleneksel algoritmik yaklaşımları içermekte ve kod analizi, hata türü tahmini, hatalı kod segmentlerinin lokalizasyonu ve onarım önerileri sunma gibi aşamaları otomatize etmekte büyük ilerlemeler kaydetmektedir. Bu tez çalışması, Python programlama dilinde yazılmış kodların otomatik olarak onarılmasını hedefleyen ve yapay zeka teknolojilerini kullanan bir sistem üzerine odaklanmaktadır. Çalışma, BiLSTM ve LSTM ağları kullanılarak geliştirilen özel modeller ile hatalı kodların tespit edilip onarılması sürecini içermektedir. Çalışmanın ilk aşamasında, farklı hata türlerine sahip hatalı Python kodları üzerinde eğitim gerçekleştirilmiştir. BiLSTM hata türü tahmin modeli, %98'lik bir doğruluk değeri elde ederek hata türlerini etkin bir şekilde tespit edebildiğini kanıtlamıştır. Python dilinde yazılmış ve doğru biçimde işlev gösteren kod örnekleri üzerinden, bu kodların tokenize edilerek temel yapı taşlarına ayrılması ve her bir tokenin benzersiz tanımlayıcılar ile eşleştirilmesi işlemi gerçekleştirilmiştir. Bu işlem sonucunda oluşturulan veri seti, LSTM tabanlı bir token tahmin modelinin eğitimi için kullanılmıştır. Model, eğitim sonucunda %98,44'lük bir doğruluk oranı ve %98,91'lik F1 skoruna ulaşarak yüksek düzeyde başarı sergilemiştir. Sistemin performansı, mutasyon testiyle oluşturulmuş 925 adet hatalı kod örneği üzerinde deneyimlenmiş ve bu kodların 794'ü (%85,84) başarılı bir şekilde onarılmıştır. Bu sonuçlar, sistemin hatalı Python kodlarını tespit etme ve onarma konusunda oldukça yetkin olduğunu göstermektedir. Şablon tabanlı APR aracı olan PyNar Sohbet Robotu ile karşılaştırıldığında tez çalışmasının onarım sistemi, PyNar'ın %53,3'lük başarısına kıyasla %85,84 gibi daha yüksek bir başarı oranına ulaşmıştır. Bu karşılaştırma, geliştirilen otomatik onarım sisteminin etkinliğini ve yapay zeka destekli çözüm yaklaşımlarının bu alanda ne kadar başarılı olabileceğini gözler önüne sermiştir. Bu akademik çalışma, otomatik program onarımı konusunda önemli bir ilerlemeyi işaret ederek bu alandaki ileriye dönük çalışmalar için güçlü bir referans sağlamaktadır. Elde edilen yüksek doğruluk oranları ve onarım başarısı, APR araçlarının yazılım geliştirme alanında önemli bir etki yaratabileceğinin göstergesidir. Bu tür sistemlerin gelişimi ve iyileştirilmesi kod kalitesini artırma ve geliştirme süreçlerinin verimliliğini iyileştirme yolunda umut verici yenilikler sunmaktadır.en_US
dc.description.abstractAutomatic Program Repair (APR) is a field of research that employs automated techniques to detect and fix errors encountered in software development processes. Studies in this area aim to accelerate the error correction process, enhance software quality and reduce the burden on developers. Recent innovations in this field encompass deep learning and machine learning techniques, alongside traditional algorithmic approaches, making significant strides in automating stages such as code analysis, error type prediction, localization of faulty code segments and offering repair suggestions. This disputation focuses on a system that targets the automatic repair of code written in the Python programming language using artificial intelligence technologies. The work involves the development of specialized models using BiLSTM and LSTM networks for the detection and repair of faulty code. In the initial phase, training was conducted on faulty Python codes with various error types. The BiLSTM error type prediction model achieved a 98% accuracy rate, effectively demonstrating its capability to identify error types. Python code samples that function correctly were processed to tokenize and break them down into basic building blocks, with each token matched with unique identifiers. This process resulted in a dataset used for training a LSTM-based token prediction model. Post-training, the model exhibited high success, achieving a 98.44% accuracy rate and a 98.91% F1 score. The system's performance was tested on 925 faulty code samples created through mutation testing, successfully repairing 794 of them (85.84%). These results demonstrate the system's proficiency in detecting and repairing faulty Python code. When compared with PyNar, a template-based APR tool chatbot, the thesis's repair system reached a higher success rate of 85.84% compared to PyNar's 53.3%. This comparison highlights the effectiveness of the developed automatic repair system and underscores the potential success of AI-supported solution approaches in this field. This research marks a significant advancement in automatic program repair, providing a robust reference for future research in this area. The high accuracy and repair success rates indicate that APR tools could have a substantial impact in the field of software development. The continued development and improvement of such systems offer promising innovations for enhancing code quality and increasing the efficiency of development processes.en_US
dc.identifier.endpage144en_US
dc.identifier.startpage1en_US
dc.identifier.urihttps://tez.yok.gov.tr/UlusalTezMerkezi/TezGoster?key=weFMBHaUra8rsS5wi2bmHDgZ7ulzI66z8ckWQnnVe8s3k7WsX6nS6VdSDxvVzeEZ
dc.identifier.urihttps://hdl.handle.net/20.500.12885/2980
dc.identifier.yoktezid849512en_US
dc.language.isotren_US
dc.publisherBursa Teknik Üniversitesien_US
dc.relation.publicationcategoryTezen_US
dc.rightsinfo:eu-repo/semantics/openAccessen_US
dc.snmzKA_20241105
dc.subjectBilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolen_US
dc.subjectComputer Engineering and Computer Science and Controlen_US
dc.titlePython söz dizimi hatalarının derin öğrenme yöntemleri ile onarılmasıen_US
dc.title.alternativeFixing python syntax errors with deep learning methodsen_US
dc.typeMaster Thesisen_US

Dosyalar

Orijinal paket
Listeleniyor 1 - 1 / 1
Yükleniyor...
Küçük Resim
İsim:
849512 (1).pdf
Boyut:
3.26 MB
Biçim:
Adobe Portable Document Format