GPT2 Kullanarak bir ChatBot geliştirelim.

Kubilay
3 min readJun 26, 2021

--

Herkese merhaba bu yazımda GPT2 kullanarak bir Chatbot uygulaması geliştirmekten bahsedeceğim . Uygulamadan kısaca bahsetmek gerekirse, genel olarak soru cevap şeklinde yada karşılıklı konuşma şeklinde toplanan verilerin bulunduğu bir veri setine ihtiyacımız var. Bu veri setini ele alarak kullanıcının girmiş olduğu/ yada söylemiş olduğun (input tipi size bağlı nasıl gelirtirmek isterseniz tip olarak Text yada Speech olabilir) veriye göre bir sonuç üretip bu sonucu geri döndürecek.

𝗩𝗲𝗿𝗶 𝘀𝗲𝘁𝗶

Öncelikle biz bu projemizde 𝘾𝙤𝙧𝙣𝙚𝙡𝙡 𝙈𝙤𝙫𝙞𝙚 — 𝘿𝙞𝙖𝙡𝙤𝙜𝙨 𝘾𝙤𝙧𝙥𝙪𝙨 isimli dataseti kullanacağız bu dataset İngilizce olup içerisinde onlarca filmin alt yazılarını içermekte.

Biz bu dataseti için sadece iki dosyayı ele alacağız.
movie_conversations.txt ve movie_lines.txt isimlerden anlayabileceğimiz gibi
movie_conversations: Konuşma İndexlerini içeriyor.
movie_lines: Konuşma metinlerini içeriyor.

Yukarıda paylaştığım ekran görüntüsüne bakarsanız Movie_Lines veri setimizin oldukça düzensiz olduğunu görebilirsiniz. İlk önce amacımız bu setimizi düzeltmek veri seti hakkında hangi index neyi belirtiyor gibi bilgilere girmek istemiyorum burada sadece bizi ilgilendiren kısım tüm satırların başında bulunan “id” kısmı ve son index içinde bulunan “konuşma metini”.

Bu ekran görüntüsünde ise bizim için önemli olan sadece son index.

[‘L866’, ‘L867’, ‘L868’, ‘L869’]

Burada bu array içindeki elemanlar bizim yukarıda düzenlemek istediğimiz veri seti için çok önemli daha anşılır olması için ele aldığımız örnek için konuşmak gerekirse array içinde bulunan her eleman(L866, L867 gibi ) bizim için Movie_Lines veri setindeki bulunan şu konuşma metinlerini point ediyor .

‘L869’: ‘Like my fear of wearing pastels?’,

‘L868’: ‘The “real you”.’,

‘L867’: ‘What good stuff?’, ‘

L866’: “I figured you’d get to the good stuff eventually.”,

Veri setini istenen hale getirmek için yapmamız gerekenler ;

Yaptığımız adımlar tek tek görseller ile göstermek gerekir ise ;

Movie_Lines veri setinin ilk hali
movie_conversations veri setinin ilk hali
Sadece Metinleri ve Metinlere Point eden İndex elemanlarını aldık .
Alıntıları gruplandırdık.
İstenen sonuç

GPT2 GEREKSİNİMLERİNİN EDİNİLMESİ.

Botumuzun çalışması için gerekli olan gereksinim olan GPT2 modelimizi yukarıda gösterdiğim kodları çalıştırarak Colab yada bilgisayarımız import ediyoruz. Daha sonra veri setimizi GPT2 modelimize import etdebilmemiz için bir “.txt” dosyasına çevirmemiz gerekiyor bunun için şu adımları uyguluyoruz.

Bu sayede verimizin son şekli görseldeki gibi oluyor .

𝗠𝗼𝗱𝗲𝗹𝗶𝗻 𝗲𝗴̆𝗶𝘁𝗶𝗹𝗺𝗲𝘀𝗶.

Yukarıda bulunan iki adet kod satırımızı çalıştırarak modelimizi eğitmeye başlıyoruz. Bu eğitim verinin büyüklüğüne bilgisayarınızın hızına göre değişiklik gösterebilir. Ek olarak modeli eğitirken GPU üzerinden çalıştırmayı unutmayın.

Modelin eğitimi bittikten sonra daha önceki yazılarımda anlatmış olduğum
TextBlob ve gTTS kullanarak modelimizi Türkçe ve sesli hale getirelim .

Son olarak bir run alıp sonuca hep beraber bakalım. İşte Bu !

Colab üzerinden test etmek için . TIKLAYIN.

--

--

No responses yet