Coder Social home page Coder Social logo

chatbot--turkish's Introduction

GPT2 Kullanarak bir ChatBot geliştirelim.

alt text

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 filimin 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.

alt text

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".

alt text

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 ;

https://gist.github.com/kubilaybzk/2b74742f1c49d7aab22b7884e577df98#file-adimlar-py

Yaptığımız adımlar tek tek görseller ile göstermek gerekir ise ; Movie_Lines veri setinin ilk hali

Movie_Lines veri setinin ilk hali

movie_conversations veri setinin ilk hali

movie_conversations veri setinin ilk hali

Sadece Metinleri ve Metinlere Point eden İndex elemanlarını aldık .

Sadece Metinleri ve Metinlere Point eden İndex elemanlarını aldık .

alt text

Alıntıları gruplandırdık.

Alıntıları gruplandırdık.

İstenen sonuç

İstenen sonuç

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

https://gist.github.com/kubilaybzk/96eeb44bfe5faeed97541ff87497e98e#file-import-py

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.

https://gist.github.com/kubilaybzk/9e7224ebe977127a5fc192ab5a9b0b8f#file-set_date-py

Bu sayede verimizin son şekli görseldeki gibi oluyor . Son gruplandırma.

𝗠𝗼𝗱𝗲𝗹𝗶𝗻 𝗲𝗴̆𝗶𝘁𝗶𝗹𝗺𝗲𝘀𝗶. https://gist.github.com/kubilaybzk/109161418fecc993b45080e3e3e7a718#file-train-py

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 .

https://gist.github.com/kubilaybzk/30a0183474363368e59c6be060c8831c#file-main-py

TextBlob: https://kubilaybozak.medium.com/working-on-natural-language-processing-with-textblob-f4c80cd0c8ad

gTTS: https://kubilaybozak.medium.com/convert-text-to-speech-with-colab-9ed89d310cba

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

Son

Colab üzerinden test etmek için . https://colab.research.google.com/drive/1pWCo4OONFaEeedbFUokGzGPjpEfqe2IQ?usp=sharing.

chatbot--turkish's People

Contributors

kubilaybzk avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.