You are on page 1of 39

T.C.

ONDOKUZ MAYIS ÜNİVERSİTESİ


MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

MOBİL AKILLI ASİSTAN: DELİ

SEMİNER RAPORU

GİZEM GÜLEÇ

MERVE KOCABAY

RUKİYE NUR BAŞTUĞ

DANIŞMAN
DR. ÖĞR. ÜYESİ İSMAİL İŞERİ

SAMSUN - KASIM - 2019


T.C.
ONDOKUZ MAYIS ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

MOBİL AKILLI ASİSTAN: DELİ

SEMİNER RAPORU

GİZEM GÜLEÇ

MERVE KOCABAY

RUKİYE NUR BAŞTUĞ

DANIŞMAN
DR. ÖĞR. ÜYESİ İSMAİL İŞERİ

SAMSUN - KASIM - 2019


ÖZET

ONDOKUZ MAYIS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ


BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

(TEZ DANIŞMANI:DR. ÖĞR. ÜYESİ İSMAİL İŞERİ)

SAMSUN, ARALIK - 2019

Mobil akıllı asistan, kullanıcılar için eylemler gerçekleştirebilen ve ihtiyaç


duydukları bilgiye ulaşmalarını sağlayan bir yazılım aracıdır. Bu teknoloji,
etkileşimli ses yanıtı öğelerini ve diğer yapay zeka projelerini, kullanıcılarla
diyalog kuran “sanal asistanlar” sunmak amacı ile bir araya getirir.
Bu projede, arka planda aktif olarak dinleme işlemini gerçekleştirecek
asistan, verilen sesli komutlar ile ajandaya hatırlatıcı ekleme, akıllı telefon
araması yapma, akıllı okuma, akıllı müzik oynatma, akıllı radar uyarısı
gerçekleştirmek üzere tasarlanacaktır. Ayrıca kullanıcı ile sohbet edebilecek bir
chatbot geliştirilecektir.

ANAHTAR KELİMELER: Mobil Akıllı Asistan, Derin Öğrenme, Chatbot,


Android.

i
İÇİNDEKİLER

Sayfa

ÖZET.............................................................................................................. i
İÇİNDEKİLER ............................................................................................. ii
ŞEKİL LİSTESİ............................................................................................iv
KISALTMALAR ........................................................................................... v
ÖNSÖZ ..........................................................................................................vi
1. GİRİŞ ......................................................................................................... 1
1.1 Akıllı Ajanda ..................................................................................... 1
1.2 Akıllı Okuma ..................................................................................... 1
1.3 Akıllı Arama ...................................................................................... 2
1.4 Akıllı Müzik ...................................................................................... 2
1.5 Akıllı Kullanım .................................................................................. 2
1.6 Akıllı Radar Uyarısı ........................................................................... 2
1.7 Chatbot .............................................................................................. 3
2. MOBİL AKILLI ASİSTAN ...................................................................... 4
2.1 Akıllı Asistan Nedir? ......................................................................... 4
2.2 Mobil Akıllı Asistan ve Yapay Zeka İlişkisi ....................................... 5
2.3 Chatbot .............................................................................................. 5
2.3.1 Chatbot Nedir? ............................................................................ 5
2.3.2 Chatbotun Kullanım Alanları ....................................................... 6
3. DERİN ÖĞRENME VE MAKİNE ÖĞRENİMİ ..................................... 7
3.1 Derin Öğrenme .................................................................................. 7
3.2 Derin Öğrenme Modelleri .................................................................. 7
3.2.1 CNN ............................................................................................ 7
3.2.1.1 Evrişimli Sinir Ağlarında En Popüler Mimariler ..................... 8
3.2.2 RNN ............................................................................................ 8
3.2.2.1 RNN’ nin Avantajları .............................................................. 8
3.2.2.2 RNN’ nin Dezavantajları......................................................... 9
3.2.3 LSTM.......................................................................................... 9
3.2.4 Otomatik Kodlayıcı ..................................................................... 9
3.2.4.1 Otomatik Kodlayıcı Çeşitleri................................................. 10
3.3 Makine Öğrenimi ............................................................................. 10
3.3.1 Anaconda .................................................................................. 10
3.3.2 Keras ......................................................................................... 11
4. ANDROİD GELİŞTİRME PROGRAMLARI ....................................... 12
4.1 Android Studio ................................................................................ 12
4.1.1 Android Studio’ da Derleme ...................................................... 13
4.2 AIDE ............................................................................................... 13
4.3 Unreal Engine .................................................................................. 14
4.4 PhoneGap ........................................................................................ 14
4.5 Unity 3D .......................................................................................... 14
5. DOĞAL DİL İŞLEME ............................................................................ 15
5.1 Doğal Dil İşleme Nedir? .................................................................. 15
5.2 Doğal Dil İşleme Ne İçin Kullanılır? ................................................ 15
5.3 Chatbot ve Doğal Dil İşleme ............................................................ 16
6. SONUÇ VE ÖNERİLER ........................................................................ 17
ii
7. UYGULAMANIN ARAYÜZ TASARIMLARI ..................................... 18
8. KAYNAKLAR ........................................................................................ 25
9. ÖZGEÇMİŞ............................................................................................. 29
9.1 Üye 1 ............................................................................................... 29
9.2 Üye 2 ............................................................................................... 30
9.3 Üye 3 ............................................................................................... 31

iii
ŞEKİL LİSTESİ

Sayfa

Şekil 2.1: Geliştirilen sanal asistanların hiyerarşik sıralaması [3]. ..................... 4


Şekil 4.2: Android derleme şeması [29]. ......................................................... 13
Şekil 6.3: Ana ekran. ...................................................................................... 18
Şekil 6.4: Deli açılış ekranı. ........................................................................... 18
Şekil 6.5: Takvim ekranı. ............................................................................... 19
Şekil 6.6: Etkinlik ekleme ekranı.................................................................... 19
Şekil 6.7: Etkinlik görüntüleme ekranı. .......................................................... 20
Şekil 6.8: Gazete ekranı. ................................................................................ 20
Şekil 6.9: Mail ekranı. .................................................................................... 21
Şekil 6.10: Mesaj ekranı. ................................................................................ 21
Şekil 6.11: Rehber ekranı. .............................................................................. 22
Şekil 6.12: Aynı isimdeki kişiler ekranı. ......................................................... 22
Şekil 6.13: Arama ekranı. ............................................................................... 23
Şekil 6.14: Youtube ekranı. ............................................................................ 23
Şekil 6.15: Harita ekranı. ............................................................................... 24
Şekil 6.16: Radar var ekranı. .......................................................................... 24

iv
KISALTMALAR

GPS: Global Positioning System


AI: Artificial Intelligence
NLP: Natural Language Process
CNN: Convolutional Neural Networks
ResNet: Residual Neural Network
Dense Net: Dense Convolutional Network
Inception Net: Inception Network
Xception Net: Xception Network
RNN: Recurrent Neural Network
FNN: Feedforward Neural Networks
LSTM: Long Short Term Memory
IDS: Intrusion Detection System
VAE: Variational Autoencoder
CAE: Contractive Autoencoder
AIDE: Android Integrated Development Environment
IDE: Integrated Development Environment
SDK: Software Development Kit
NDK: Android Native Development Kit
AIDL: Android Interface Definition Language
AAR: Android Archive Library
JAR: Java Archive
DEX: Dalvik Executable
APK: Android Package
XML: Extensible Markup Language
HTML: Hyper Text Markup Language
CSS: Cascading Style Sheets
AAA: American Automobile Association

v
ÖNSÖZ

Bu projede telefona verilen sesli komutlar ile not alma, müzik dinleme,
hatırlatıcı ekleme ve daha başka işlemleri gerçekleştirmek üzere mobil asistan
geliştirilmesi ve yapay zeka teknolojisinden faydalanılarak kullanıcının istediği
zaman sohbet edebileceği bir akıllı asistan oluşturulması hedeflenmiştir.

Öncelikle tez konusunu seçerken isteklerimizi göz önünde bulundurup bize


yardımcı olan ve bu projenin gerçekleştirilmesinde bilgilerini bizimle paylaşan tez
danışman hocamız Sayın Dr. Öğr. Üyesi İsmail İŞERİ’ ye teşekkürlerimizi
sunuyoruz.

vi
1. GİRİŞ

Hayata geçireceğimiz akıllı asistan “Deli”, günlük hayatta telefon ile


gerçekleştirilecek işlemleri daha hızlı ve daha kolay bir şekilde hallederek,
kullanıcının kendisini ayrıcalıklı hissetmesini sağlayacaktır.

Yaşlılar, çocuklar, okuma yazma bilmeyen insanlar başta olmak üzere


herkese hitap edebilecek bir uygulama yapılması düşünülmekte ve araçta telefon
kullanımından dolayı gerçekleşebilecek kazaların önüne geçmek hedeflenmektedir.
Aynı zamanda görme engelliler için telefondaki temel işlemlerin yapılmasını
kolaylaştırmak projenin amaçları arasındadır.

1.1 Akıllı Ajanda

Akıllı ajanda özelliği, uygulamaya “Ajanda” sesli komutu verildiğinde


ajandanın açılması, kullanıcının ajandaya eklemesini istediği programın söylenmesi
beklenmektedir. Program söylenildiğinde ise metne çevirip takvim içerisine beş gün
veya bir saat kala şeklinde hatırlatıcıların eklenmesi planlanmaktadır. Ayrıca
hatırlatıcının, zamanı geldiğinde ajandanın sesli ya da mesaj ile bildirim göndermesi
amaçlanmaktadır. Uygulamanın ajanda ile ilgili arayüzleri şekil 6.5, şekil 6.6 ve şekil
6.7 ’de görülmektedir.

1.2 Akıllı Okuma

Akıllı okuma özelliği, uygulamaya “Oku” sesli komutu verildiğinde,


kullanıcıya gazete, mail ya da mesaj seçeneklerinden hangisinin okunmasını
istediğinin sorulması ve kullanıcının seçimine göre okuma işleminin
gerçekleştirilmesi amaçlanmaktadır. Uygulamanın okuma işlemi ile ilgili arayüzleri
şekil 6.8, şekil 6.9 ve şekil 6.10 ’da görülmektedir.

1
1.3 Akıllı Arama

Akıllı arama özelliği, uygulamaya “Ara” sesli komutu verildiğinde rehberin


açılması ve kullanıcıdan aramak istediği kişinin adını söylemesi istenilmektedir. Bir
isimden birden fazla bulunuyor ise aynı isimde olan kişilerin listelenmesi ve
kullanıcının listelenen kişiler arasından aramak istenilen kişinin isminin tamamını
söylemesi beklenmektedir. Böylelikle belirlenen kişinin aranması hedeflenmektedir.
Uygulamanın arama ile ilgili arayüzleri şekil 6.11, şekil 6.12 ve şekil 6.13 ’de
görülmektedir.

1.4 Akıllı Müzik

Akıllı müzik özelliği, uygulamaya “Müzik Aç” sesli komutu verildiğinde,


kullanıcıya müzik tarzının sorulması ve kullanıcının yanıtına göre Youtube platformu
üzerinden müziğin oynatılması hedeflenmektedir. Uygulamanın müzik ekranı şekil
6.14 ’de görülmektedir.

1.5 Akıllı Kullanım

Akıllı kullanım özelliği, kullanıcının araç kullanma hızı ve ivmelenmelerinin


veri tabanında tutulması planlanmaktadır. Ayrıca konum bazlı araç kullanım
haritasının kaydedilmesi ve bu harita sayesinde, kullanıcıya ilgili bölgeye
yaklaştığında bildirim gönderilmesi hedeflenmektedir. Uygulamanın okuma işlemi
ile ilgili arayüzleri şekil 6.8, şekil 6.9 ve şekil 6.10 ’da görülmektedir.

1.6 Akıllı Radar Uyarısı

Akıllı radar uyarısı özelliği, uygulamaya “Radar Var” sesli komutu


verildiğinde, o anki GPS koordinatı alınarak veri tabanında tutulması
planlanmaktadır. O alana yaklaşan ve uygulamayı kullanan kullanıcılara bildirim
gönderilmesi halinde radar haritasının oluşturulması düşünülmektedir. Uygulamanın
okuma işlemi ile ilgili arayüzleri şekil 6.15, şekil 6.16 ’da görülmektedir.

2
1.7 Chatbot

Geliştirilecek yapay zeka özellikli chatbot sayesinde kullanıcının istediği


zaman bir konu hakkında konuşması amaçlanmaktadır.

3
2. MOBİL AKILLI ASİSTAN

2.1 Akıllı Asistan Nedir?

Akıllı asistan, doğal dili işleyebilen, sesli komutları algılayabilen ve bu


komutlar ile alakalı görevleri gerçekleştiren uygulamalardır.

Mobil akıllı asistana yönelik ilk proje, 2011 yılında Apple firması tarafından
geliştirilmiş Siri uygulamasıdır. Siri’ nin piyasaya sürülmesi bu alanda büyük bir etki
yaratarak diğer firmaların da kendilerine özel akıllı asistanlarını geliştirmelerine öncü
olmuştur. Sonrasında Amazon’ un Alexa’ sı, Google’ın DialogFlow’ u, Microsoft’
un Luis’ i, IBM’ in Watson’ı, Facebook’ un Wit’ i gibi şirketler kendilerine ait
teknolojilerini piyasaya sürmüştür. Bir sohbeti devam ettirmek için elinden geleni
yapan basit sistemlerden, kullanıcıların isteklerini anlayan ve kendi adına işlevlerini
yerine getiren kişiye özel asistanlara kadar birçok ürün geliştirilmiştir. Bunların
başında Siri, Google Asistan veya Microsoft Cortana gelmektedir.

Günümüzde akıllı asistanları kullanarak yapay zeka destekli çözümler ile


hayatımızı kolaylaştırıyoruz. Ayrıca akıllı asistanlardan istediğimiz zaman
faydalanabiliyor, devamlı ve gerçek zamanlı iletişim kurabiliyoruz [1] [2].

Şekil 2.1: Geliştirilen sanal asistanların hiyerarşik sıralaması [3].

4
2.2 Mobil Akıllı Asistan ve Yapay Zeka İlişkisi

Yapay zeka (AI), Android uygulama gelişiminin büyüyen dünyasında bazı


etkili dönüşümler gerçekleştirmeyi vaat eden birkaç yeni teknolojiden biridir. İş
ilişkilerini, büyümeyi ve beklentileri geliştirmeyi ön planda tutan şirketler için bu
teknoloji göz ardı edilemeyecek bir öneme sahiptir.

Bugün, uygulama geliştirme şirketlerinin çoğu sadece yapay zekayı


benimsemekle yetinmiyor, bununla birlikte teknolojiyi insanların kişisel ihtiyaçlarını
karşılayacak şekilde geliştirmeye odaklanıyor.

Uygulama geliştiricileri daha fazla kullanıcıyı kendine çekmek için mobil


uygulamaya yapay zeka teknolojisini entegre etmeye yöneliyorlar. Böylece
kullanıcıları ile daha güçlü ve daha uygulanabilir bir bağlantı kurmayı hedefliyorlar
[4].

2.3 Chatbot

2.3.1 Chatbot Nedir?

Chatbot, insanlarla sohbet etmek için tasarlanmış olup kullanıcı ile makine
arasındaki NLP ilişkilerinin arayüzlerinden biri olarak kabul gören bir uygulamadır.
Doğal dil işleme, derin öğrenme ve makine öğrenmesi gibi teknolojilerden
faydalanılarak oluşturulmaktadır. Chatbotlar çoğunlukla sohbet çubuğu, jest
algılama, metinden sese veya sesten metne dönüşüm gibi özellikleri iletişim amaçlı
kullanmaktadır [5] [6].

5
2.3.2 Chatbotun Kullanım Alanları

Chatbotlar e - ticaret dünyasında ön plana çıkmaya başladı. Birçok marka,


müşteri ile sürekli iletişim halinde olmak, ürünleri hakkında bilgi vermek veya
sipariş almak gibi işlemler için chatbotlardan yararlanıyorlar. Ayrıca chatbot,
kullanıcı ile bilgisayar programı arasındaki günlük konuşmayı gerçekleştiren bir
uygulamadır. Chatbotlar, öğrenim sürecinin çevikliğini arttıran, kullanıcının erişim
zamanını olabildiğince minimuma indiren ve öğrenme platformunu daha çeşitli hale
getiren bir teknoloji olarak tasarlanmıştır [7] [8].

6
3. DERİN ÖĞRENME VE MAKİNE ÖĞRENİMİ

3.1 Derin Öğrenme

Derin öğrenme, veri işlemede ve karar vermede kullanılmak üzere kalıplar


oluşturmada insan beyninin çalışmalarını taklit eden yapay zeka fonksiyonudur.
Derin öğrenme, düzenlenmemiş veya etiketlenmemiş verilerden kontrolsüz
öğrenebilen ağlara sahip yapay zekada makine öğreniminin bir alt kümesidir. Derin
sinirsel öğrenme veya derin sinir ağı da denilmektedir [9].

Bilgisayar görme, doğal dil işleme, ses tanıma, sosyal ağ filtreleme, makine
çevirisi, finansal, tıp gibi alanlara derin sinir ağları, tekrarlayan sinir ağları ve
evrişimli sinir ağları gibi derin öğrenme mimarileri uygulanmıştır. Tıbbi görüntü
analizi, malzeme denetlemesi ve masa oyunu programları burada insan beyniyle
kıyaslanabilir ve bazı durumlarda daha üstün sonuçlar üretebilir [10].

3.2 Derin Öğrenme Modelleri

3.2.1 CNN

Derin öğrenmede, CNN görüntüleri incelemek için kullanılan bir derin sinir
ağı sınıfıdır. CNN, görsel sınıflandırma, bölümleme, obje tanımlama ve birçok görsel
işleme görevi için kullanılır [11].

Evrişimli sinir ağları, çok katmanlı algılayıcıların düzenli sürümleridir. Bir


katmandaki sinir hücrelerinin her biri hemen sonrasındaki katmanda bulunan sinir
hücrelerinin hepsine bağlanır. Bu, çok katmanlı algılayıcıların mümkün olduğunca
fazla bilgi bulundurmasına imkan sağlar. Evrişimli sinir ağları normalleşmeye farklı
bir bakış açısı ile yaklaşır ve verilerdeki aşamalı kalıptan faydalanır. Küçük ve basit
biçimler kullanarak daha kompleks kalıplar elde ederler. Bundan dolayı, bağlılık ve
komplekslik kriterinde, evrişimli sinir ağları alt uçtadır [12].

7
3.2.1.1 Evrişimli Sinir Ağlarında En Popüler Mimariler

CNN modellerinin tahmin doğruluğunu arttırmak için, ünlü CNN


mimarilerinin bazıları aşağıdaki gibidir:

 VGG Net
 ResNet
 Dense Net
 Inception Net
 Xception Net [11]

3.2.2 RNN

RNN, düğümler arasındaki bağlantıların kalıcı olmayan bir dizi boyunca


yönlendirilmiş bir grafik oluşturduğu yapay sinir ağı sınıfıdır. Bu da etkin bir
davranış göstermesine neden olur. FNN’ nin aksine, tekrarlayan sinir ağları giriş
dizileri üzerinde işlem yapmak için hafızalarını kullanabilir. Bu, tekrarlayan sinir
ağlarının sınıflandırılmamış, el yazısı veya konuşma tanıma gibi görevler için
kullanılmasını sağlar. RNN, NLP’ de sıkça kullanılan sinir ağlarının çok önemli bir
çeşididir. Herhangi bir sinir ağında, bir girdi birden fazla katman aracılığı ile işlenir
ve peş peşe iki girdinin birbirinden ayrı olduğu düşünülerek bir çıktı elde edilir [13]
[14].

3.2.2.1 RNN’ nin Avantajları

 Veri dizisini modelleyebilir, bu sayede tüm örneklerin birbiriyle


bağlantılı olduğu kabul edilebilir.
 Etkin görüntü noktalarının komşuluğunu genişletmek için kıvrımlı
katmanlarla kullanılabilir.

8
3.2.2.2 RNN’ nin Dezavantajları

 Gradyan kaybolma ve patlama sorunları yaşanabilir.


 Eğitimi çok zordur [15].

3.2.3 LSTM

LSTM derin öğrenme konusunda kullanılan yapay bir RNN mimarisidir.


Standart FNN’ nin aksine, LSTM’ nin geri besleme bağlantıları bulunur. Tek veri
noktalarının ve aynı zamanda bütün veri dizilerinin üzerinde işlem yapamaz.
Örneğin, LSTM sınıflandırılmamış bağlı el yazısı tanıma, konuşma tanıma, ağ
trafiğinde veya IDS’ lerde anomali tespiti gibi işlemlerde kullanılır [16].

Uzun kısa süreli bellekler, zaman ve katmanlar boyunca geri çoğaltılabilen


hatanın korunmasına destekte bulunur. Sabit bir hatayı muhafaza ederek, yineleyen
ağların zaman aşamalarında öğrenmeyi sürdürmesine olanak sağlar, bu sayede
nedenleri ve etkileri uzaktan birleştirmek amacı ile bir kanal açar. Bu, makine
öğrenimi ve yapay zeka için ana zorluklardan bir tanesidir, çünkü algoritmalar
çoğunlukla ödül sinyallerinin seyrek ve gecikmeli olduğu ortamlarla karşı karşıya
kalır [17].

3.2.4 Otomatik Kodlayıcı

Otomatik kodlayıcı, çok boyutlu veriyi ilk olarak gizli katmanda sıkıştıran
ardından sıkıştırılmış gizli katmandan veriyi yeniden oluşturan denetimsiz ve üç
katmanlı yapay sinir ağıdır. Bu katmanlar: Giriş katmanı, gizli katman ve bir kod
çözme katmanıdır. Ağ girişlerini yeniden oluşturmak üzere eğitilmiştir, bu da gizli
katmanı, girdilerin örneklerini öğrenmesini zorunlu kılar. Bir otomatik kodlayıcı sinir
ağı, kontrolsüz bir makine öğrenme algoritmasıdır. Otomatik kodlayıcı, kopyalama
işlemini gerçekleştirmesi amacı ile eğitilmiştir [18].

9
3.2.4.1 Otomatik Kodlayıcı Çeşitleri

Otomatik kodlayıcı üretken veri modellerini öğrenmek için kullanılmaktadır.


En yaygın kullanılan otomatik kodlayıcılardan bazıları aşağıdaki gibidir:

 Gürültü arındırıcı otomatik kodlayıcı


 Seyrek otomatik kodlayıcı
 Varyasyonel otomatik kodlayıcı (VAE)
 Büzülmeli otomatik kodlayıcı (CAE) [19]

3.3 Makine Öğrenimi

Makine öğrenimi, sistemlere direkt olarak programlanmadan deneyim ile


kendiliğinden öğrenme ve geliştirme kabiliyeti sağlayan yapay zeka uygulamasıdır.
Makine öğrenimi, verilere ulaşabilen ve geliştirme kabiliyeti sağlayan yapay zeka
uygulamasıdır. Makine öğrenimi, verilere ulaşabilen ve öğrenmeyi kendileri için
kullanabilen bilgisayar programlarının geliştirilmesine odaklanır.

Öğrenme süreci, verdiğimiz örnekleri baz alarak verilerdeki kalıpları aramak


amacıyla gelecekte daha iyi kararlar vermek için örnekler, direkt olarak deneyim,
komutlar gibi gözlemler veya verilerle başlar. Birincil amaç, bilgisayarların
müdahalesi veya yardımı olmaksızın kendiliğinden öğrenmelerini sağlamak ve
eylemlerini buna göre düzenlemektir [20].

3.3.1 Anaconda

Anaconda, popüler bir veri bilimi platformu olup günümüz makine


öğrenmesinin temelini oluşturur. Bilgi işlem için paket yönetimi ve dağıtımını kolay
hale getirmeyi hedefleyen ücretsiz ve açık kaynaklı bir tümleşik Python/R
platformudur. Yüksek işlem performansı sağlaması, çalışma platformunun
paylaşımını kolay hale getirmesi, kendi sanal ortamını oluşturabilmesi ve proje
dosyaları ile kütüphaneleri tam olarak bulundurması önemli avantajlarıdır. Anaconda
dağıtımı, Windows, Linux ve macOS için veri bilimi paketleri içerir [21-24].

10
3.3.2 Keras

Keras, Python’ da yazılmış açık kaynaklı Theano veya TensorFlow’ da


çalışabilen sinir ağı kütüphanesidir. Hızlı deneyler yapabilmek için tasarlanan Keras,
modüler olmaya odaklanmaktadır. Katmanlar, amaçlar, aktivasyon fonksiyonları ve
optimize ediciler gibi genel olarak kullanılan sinir ağının çok sayıda uygulamasını
bulundurur. Keras, dört rehber ile kullanılır:

 Modülerlik
 Minimalizm
 Genişletilebilirlik
 Python [25] [26].

11
4. ANDROİD GELİŞTİRME PROGRAMLARI

Bu bölümde Android cihazlarda uygulama geliştirmek için kullanılan bazı


programları inceleyeceğiz. Günümüzde Android uygulama geliştirmek için yaygın
olarak kullanılan programlar: Android Studio, AIDE, Unreal Engine, PhoneGap,
Unity 3D.

4.1 Android Studio

Android Studio, JetBrains’ e ait IntelliJ IDEA yazılımı üzerine kurulmuş ve


Android geliştirmek için özel olarak tasarlanmış, Google’ ın Android sistemi için
resmi entegre geliştirme ortamıdır (IDE). Windows, macOS ve Linux tabanlı işletim
sistemlerinde kullanılabilir [27].

Android Studio, Gradle tabanlı derleme desteğine sahiptir. Yerel uygulama


geliştirmek için SDK ve NDK araçlarını destekler. Bu IDE’ de Java, C++ ve Kotlin
dilleri kullanılarak uygulama geliştirilebilir. Ayrıca bellek, ağ etkinliği gibi gerçek
zamanlı istatistikler sağlar [28].

12
4.1.1 Android Studio’ da Derleme

Çalışan bir program oluştururken, ilk olarak programın kaynak kodları


derlenir. Derleyici, sanal bir makine aracılığı ile okunabilen bir DEX dosyası
verecektir. Bu makine aracılığı ile okunabilir dosya ve program ile alakalı bir takım
bilgiler paket yöneticisi aracılığı ile paketlenir. APK adı verilen paket programın son
halidir.

Şekil 4.2: Android derleme şeması [29].

4.2 AIDE

AIDE uygulamasının açılımı “Android IDE” dir. AIDE’ yi diğer


uygulamalardan farklı kılan özelliği, mobil cihaz üzerinden veya tablet üzerinden
uygulamanın geliştirilebilmesidir. AIDE’ de Java, C, C++, XML, HTML, CSS,
JavaScript dilleri ile kodlama yapılabilir [30].

13
4.3 Unreal Engine

Mayıs 1998’ de, Epic Games tarafından piyasaya sürülen Unreal Engine, bir
oyun geliştirme platformudur. Çeşitli üç boyutlu, iki boyutlu ve sanal gerçeklik gibi
oyun stilleri oluşturmak için kullanılabilir. Platform, etkileyici grafik ve aydınlatma
özellikleri ile bilinir. Ayrıca materyaller, nesneler ve karakterler içeren bir kütüphane
de barındırır. Desteklenen kodlama türleri haricinde, Unreal Engine, oyunun
kurallarını oluşturmak için kodlama tecrübesi gerektirmeyen Blueprints adlı görsel
bir düzenleyici sunar. Epic’ in kendi hayatta kalma türündeki Fortnite oyunu gibi
birçok modern AAA oyununda veya Psyonix’ s ‘Rocket League’ gibi diğer hit
oyunlarda kullanır [31] [32].

4.4 PhoneGap

Adobe System aracılığıyla mobil uygulamalar geliştirmek için kullanılan açık


kaynaklı bir yazılım geliştirme platformudur. PhoneGap kullanarak uygulamalar
geliştirmek için geliştiricinin mobil programlama dili hakkında bilgi sahibi olması
gerekmez, sadece HTML, CSS ve JavaScript gibi web geliştirme dillerine hakim
olması yeterlidir [33] [34].

4.5 Unity 3D

Unity, Unity Technologies tarafından geliştirilen, dünyanın en popüler çapraz


platform oyun motorudur. Çoğu özelliği bir araya getirir ve hemen hemen her oyunu
oluşturabilecek kadar geniştir. Unity, kullanıcılara hem iki boyutlu hem de üç
boyutlu oyunlar ve deneyimler oluşturmasına imkan sağlar. Bu oyun motoru hem
eklenti biçimindeki Unity editörü hem de oyunların kendisi için sürükleme ve
bırakma işlevselliği ile C#’ da birincil komut dosyası API’ si sunar. C# oyun motoru
için kullanılan birincil programlama dilidir. Pokemon Go, Heathstone, Rimworld,
Cuphead gibi birçok oyun oluşturmak için kullanıldı [35] [36].

14
5. DOĞAL DİL İŞLEME

5.1 Doğal Dil İşleme Nedir?

Doğal dil işleme (NLP), insan konuşmasını anlama yeteneğini ifade eder.
Yapay zekanın önemli bir unsurudur ve programın konuşma anlayışının gelişmesini
sağlamak için verileri analiz ederek kullanan makine öğrenimine dayanmaktadır.

5.2 Doğal Dil İşleme Ne İçin Kullanılır?

 Cümlenin dil bilgisel yapısını daha iyi kavrayabilmek, bölümleri


incelemek için kullanılabilir. Derin analitik, büyük veri setlerinden
belli verileri çıkarmak için gelişmiş bilgi işleme yöntemlerinin
uygulamasını kapsar.
 Bir insan dilinin otomatik olarak diğer bir insan diline dönüştürüldüğü
makine çeviri programları için git gide daha fazla kullanılmaktadır.
 Metin kısmında, aynı nesnelere göndermede bulunarak hangi
kelimelerin kullanıldığını tespit etmek için eş kaynak çözünürlüğü
kullanılabilir.
 Büyük bir metin grubundan okunabilir bir özet ortaya çıkarmak için
kullanılabilir. Örneğin, derin bir akademik çalışmanın özetini
hazırlamak için otomatik özetleme yapılabilir.

Doğal dil işlemenin faydaları oldukça fazladır. Şirketler tarafından


dokümantasyon süreçlerinin verimliliği ile doğruluğunu olabildiğince maksimuma
çıkarmak ve büyük veri tabanlarından en uygun bilgileri tespit etmek için
kullanılabilir [37].

15
5.3 Chatbot ve Doğal Dil İşleme

NLP, chatbotların iletileri anlayabilmesine ve doğru biçimde cevaplamasına


imkan sağlar. Chatbota ‘selam’ şeklinde bir ileti gönderildiğini bildiren doğal dil
işlemedir ve bu da chatbotun yapay zeka kabiliyetlerinden en doğru cevabı
vermesine imkan tanır. Bu durumda, chatbot geri dönüş olarak selamlama ile karşılık
verecektir.

NLP olmadan, bir chatbot ‘selam’ ve ‘naber’ cevaplarını anlamlı bir şekilde
ayırt edemez. Doğal Dil İşleme, yapay zeka temelli en uygun cevabı verebilmek
amacı ile bağlam ve anlam sağlamasına katkıda bulunur [38].

16
6. SONUÇ VE ÖNERİLER

Geliştireceğimiz mobil akıllı asistan, ilerleyen teknoloji ile beraber


hayatımızın her anında kullanabileceğimiz bir uygulama haline gelmeye başlamıştır.
Bu uygulama sayesinde insanların yapacakları işlerini basit ve hızlı bir şekilde
gerçekleştirmesi hedeflenmiştir.

Uygulamamızı geliştirmek için doğal dil işleme, derin öğrenme ve makine


öğrenmesi yöntemlerini inceledik. Derin öğrenme adı altında CNN, RNN, LSTM ve
otomatik kodlayıcı gibi önde gelen mimarileri araştırdık. Android uygulama
geliştirme platformlarını inceledik. Yapılan araştırmalar sonucunda, doğal dil işleme
ve derin öğrenmenin bizim için daha faydalı ve kullanışlı olduğunun farkına vardık.
İncelediğimiz mimarileri uygulayabilmemiz için Keras API’ sini kullanmanın daha
uygun olduğunu gördük. Mobil akıllı asistanı geliştirmek amacı ile araştırdığımız
Android geliştirme platformları arasında daha önce uygulama geliştirip, proje
yaptığımız için Android Studio IDE’ sinin en uygun platform olduğunun sonucuna
vardık.

17
7. UYGULAMANIN ARAYÜZ TASARIMLARI

Şekil 7.3: Ana ekran.

Şekil 7.4: Deli açılış ekranı.

18
Şekil 7.5: Takvim ekranı.

Şekil 7.6: Etkinlik ekleme ekranı.

19
Şekil 7.7: Etkinlik görüntüleme ekranı.

Şekil 7.8: Gazete ekranı.

20
Şekil 7.9: Mail ekranı.

Şekil 7.10: Mesaj ekranı.

21
Şekil 7.11: Rehber ekranı.

Şekil 7.12: Aynı isimdeki kişiler ekranı.

22
Şekil 7.13: Arama ekranı.

Şekil 7.14: Youtube ekranı.

23
Şekil 7.15: Harita ekranı.

Şekil 7.16: Radar var ekranı.

24
8. KAYNAKLAR

[1] B. Pehlivan, «yapayzekatr,» AI Teknolojileri, 30 04 2019. [Çevrimiçi]. Available:


http://www.yapayzekatr.com/2019/04/30/akilli-asistan-sanal-asistan-nedir/. [%1
tarihinde erişilmiştir21 12 2019].

[2] M. Coranado, «A cognitive assistant for learning java featuring social dialogue,»
International Journal of Human-Computer Studies, no. 117, pp. 55-67, 2018.

[3] C. Şişman, Artist, CEYD-A Türkçe Mobil Asistan. [Art]. 2018.

[4] ChatbotNews, «Chatbot News Daily,» 15 03 2019. [Çevrimiçi]. Available:


https://chatbotnewsdaily.com/how-to-implement-artificial-intelligence-in-mobile-
app-development-4cf6867bb1f6. [%1 tarihinde erişilmiştir21 12 2019].

[5] S. R. Kannan Balakrishnan, «Implementation of an inquisitive chatbot for database


supported knowledge bases,» Sadhana Academy Proceedings In Engineering Sciences,
2016.

[6] M. L.-S. I. R. P. A. A. P. Dolça Tellols, « Enhancing Sentient Embodied Conversational


Agents with Machine Learning,» Pattern Recognition Letters, no. 129, pp. 317-323,
2019.

[7] T. C. L. Oanh Thi Tran, «Understanding What the Users Say in Chatbots: A Case Study
for the Vietnamese Language,» Engineering Applications of Artificial Intelligence, no.
87, 2019.

[8] S. G. Yashvardhan Sharma, «Deep Learning Approaches for Questions Answering


System,» Procedia Computer Science, no. 132, pp. 785-794, 2018.

[9] M. HARGRAVE, «Investopedia,» Investopedia, 30 04 2019. [Çevrimiçi]. Available:


https://www.investopedia.com/terms/d/deep-learning.asp. [%1 tarihinde
erişilmiştir21 12 2019].

[10] Wikipedia, «wikizeroo,» Wikipedia, [Çevrimiçi]. Available:


https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3d
pa2kvRGVlcF9sZWFybmluZw. [%1 tarihinde erişilmiştir22 12 2019].

25
[11] S. K. Basaveswara, «towardsdatascience,» Medium, 27 08 2019. [Çevrimiçi]. Available:
https://towardsdatascience.com/cnn-architectures-a-deep-dive-a99441d18049. [%1
tarihinde erişilmiştir24 12 2019].

[12] Wikipedia, «wikipedia,» Wikipedia, [Çevrimiçi]. Available:


https://en.wikipedia.org/wiki/Convolutional_neural_network. [%1 tarihinde
erişilmiştir24 12 2019].

[13] Wikipedia, «wikipedia,» Wikipedia, [Çevrimiçi]. Available:


https://en.wikipedia.org/wiki/Recurrent_neural_network#References. [%1 tarihinde
erişilmiştir24 12 2019].

[14] V. Nigam, «towardsdatascience,» Medium, 11 09 2018. [Çevrimiçi]. Available:


https://towardsdatascience.com/understanding-neural-networks-from-neuron-to-
rnn-cnn-and-deep-learning-cd88e90e0a90. [%1 tarihinde erişilmiştir24 12 2019].

[15] A. Mittal, «towardsdatascience,» Medium, 12 11 2019. [Çevrimiçi]. Available:


https://towardsdatascience.com/understanding-rnn-and-lstm-f7cdf6dfc14e. [%1
tarihinde erişilmiştir24 12 2019].

[16] Wikipedia, «wikipedia,» Wikipedia, [Çevrimiçi]. Available:


https://en.wikipedia.org/wiki/Long_short-term_memory. [%1 tarihinde erişilmiştir24
12 2019].

[17] C. Nicholson, «pathmind,» Pathmind, [Çevrimiçi]. Available:


https://pathmind.com/wiki/lstm. [%1 tarihinde erişilmiştir24 12 2019].

[18] M. Buyukkinaci, «medium,» Medium, 29 12 2017. [Çevrimiçi]. Available:


https://medium.com/@muhammedbuyukkinaci/autoencoders-nedir-
t%C3%BCrk%C3%A7e-4712c826f90e. [%1 tarihinde erişilmiştir24 12 2019].

[19] P. Chandrayan, «codeburst,» Medium, 19 09 2017. [Çevrimiçi]. Available:


https://codeburst.io/deep-learning-types-and-autoencoders-a40ee6754663. [%1
tarihinde erişilmiştir24 12 2019].

[20] E. S. Team, «expertsystem,» Expert System, 07 03 2017. [Çevrimiçi]. Available:


https://expertsystem.com/machine-learning-definition/. [%1 tarihinde erişilmiştir22
12 2019].

[21] A. Team, «Anaconda,» Anaconda, [Çevrimiçi]. Available:


https://www.anaconda.com/about-us/. [%1 tarihinde erişilmiştir22 12 2019].

[22] S. Durhan, «matkafasi,» MATEMATİK KAFASI, 18 12 2017. [Çevrimiçi]. Available:


http://matkafasi.com/112536/anaconda-nedir-nasil-kurulur. [%1 tarihinde
erişilmiştir22 12 2019].

26
[23] Wikipedia, «wikizeroo,» Wikipedia, [Çevrimiçi]. Available:
https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3d
pa2kvQW5hY29uZGFfKFB5dGhvbl9kaXN0cmlidXRpb24p. [%1 tarihinde erişilmiştir22
12 2019].

[24] F. ERYILMAZ, «farukeryilmaz,» 19 05 2019. [Çevrimiçi]. Available:


https://farukeryilmaz.com/anaconda-python-r-dagitimi-nedir-nasil-kullanilir-6n1k/.
[%1 tarihinde erişilmiştir22 12 2019].

[25] J. Brownlee, «machinelearningmastery,» 10 05 2016. [Çevrimiçi]. Available:


https://machinelearningmastery.com/introduction-python-deep-learning-library-
keras/. [%1 tarihinde erişilmiştir22 12 2019].

[26] Wikipedia, «wikipedia,» Wikipedia, [Çevrimiçi]. Available:


https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3d
pa2kvS2VyYXM. [%1 tarihinde erişilmiştir22 12 2019].

[27] Wikipedia, «wikizeroo,» Wikipedia, [Çevrimiçi]. Available:


https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3d
pa2kvQW5kcm9pZF9TdHVkaW8. [%1 tarihinde erişilmiştir22 12 2019].

[28] C. Harvey, «developer,» 15 09 2017. [Çevrimiçi]. Available:


https://www.developer.com/ws/android/development-tools/top-android-ides-for-
developers.html. [%1 tarihinde erişilmiştir22 12 2019].

[29] O. Tuna, «medium,» Medium, 14 10 2018. [Çevrimiçi]. Available:


https://medium.com/free-code-camp/c-usage-in-android-4b57edf84322. [%1
tarihinde erişilmiştir22 12 2019].

[30] ogznet, «ogznet,» 19 11 2018. [Çevrimiçi]. Available: https://ogznet.com/android-


uygulama-gelistirme-icin-en-iyi-ideler. [%1 tarihinde erişilmiştir22 12 2019].

[31] C. Hope, «computerhope,» Computer Hope, 08 02 2019. [Çevrimiçi]. Available:


https://www.computerhope.com/jargon/u/unreal-engine.htm. [%1 tarihinde
erişilmiştir22 12 2019].

[32] T. Denham, «conceptartempire,» 2019. [Çevrimiçi]. Available:


https://conceptartempire.com/what-is-unreal-engine/. [%1 tarihinde erişilmiştir22 12
2019].

[33] G. Firms, «goodfirms,» Good Firms, [Çevrimiçi]. Available:


https://www.goodfirms.co/glossary/phonegap/. [%1 tarihinde erişilmiştir22 12 2019].

[34] tutorialspoint, «tutorialspoint,» tutorialspoint, 2019. [Çevrimiçi]. Available:


https://www.tutorialspoint.com/phonegap/index.htm. [%1 tarihinde erişilmiştir22 12
2019].

27
[35] Wikipedia, «wikizeroo,» Wikipedia, [Çevrimiçi]. Available:
https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3d
pa2kvVW5pdHlfKGdhbWVfZW5naW5lKQ. [%1 tarihinde erişilmiştir22 12 2019].

[36] J. Petty, «conceptartempire,» 2019. [Çevrimiçi]. Available:


https://conceptartempire.com/what-is-unity/. [%1 tarihinde erişilmiştir22 12 2019].

[37] S. Sims, «kdnuggets,» Buzzlogix, 12 2015. [Çevrimiçi]. Available:


https://www.kdnuggets.com/2015/12/natural-language-processing-101.html. [%1
tarihinde erişilmiştir22 12 2019].

[38] C. Phillips, «chatbotsmagazine,» Medium, 25 05 2018. [Çevrimiçi]. Available:


https://chatbotsmagazine.com/natural-language-processing-nlp-why-chatbots-need-
it-a9d98f30ab13. [%1 tarihinde erişilmiştir22 12 2019].

28
9. ÖZGEÇMİŞ

9.1 Üye 1

Adı Soyadı : Gizem GÜLEÇ

Doğum Yeri ve Tarihi : İstanbul / 06.09.1997

Lisans Üniversite : Ondokuz Mayıs Üniversitesi

Elektronik posta : gizem.gulec@bil.omu.edu.tr

İletişim Adresi : Turgut Özal Öğrenci Yurdu

29
9.2 Üye 2

Adı Soyadı : Merve KOCABAY

Doğum Yeri ve Tarihi : Sivas / 24.07.1998

Lisans Üniversite : Ondokuz Mayıs Üniversitesi

Elektronik posta : merve.kocabay@bil.omu.edu.tr

İletişim Adresi : Turgut Özal Öğrenci Yurdu

30
9.3 Üye 3

Adı Soyadı : Rukiye Nur BAŞTUĞ

Doğum Yeri ve Tarihi : Ordu / 22.04.1998

Lisans Üniversite : Ondokuz Mayıs Üniversitesi

Elektronik posta : nur.bastug@bil.omu.edu.tr

İletişim Adresi : Samsun Kız Yurdu

31

You might also like