Firebase ML Kit ile Language Identification

En son güncellendiği tarih: 30 May 2020

Bu mobi'de hedeflenen, Makine Öğrenimi'ni kolay bir şekilde mobil uygulamalarımızda nasıl kullanabileceğimizi Language Identification örneği ile incelemektir. Yazı sonunda Firebase ML Kit ile oluşturacağımız demo uygulamayı indirebilirsiniz.


Mobil Dünyada Makine Öğrenimi


Hayatımızın bir parçası haline gelen akıllı telefonlarımız ve her geçen gün büyüyen ihtiyaçlarımızla birlikte yeni arayışların içine giriyoruz. Daha hızlı, etkileyici, kendimize özel çözümler arıyoruz. Bu nedenle, artık kaliteli uygulamalar oluşturmak yeterli olmuyor. Hedeflenen kullanıcı kitlemize göre mobil uygulamalarımızı kullanıcı ile uyumlu hale getirmeniz gerekiyor. Kullanıcılarımızın uygulama içerisindeki davranışlarına göre uygulamamızı şekillendirip, yönetebilmemiz gerekiyor. Peki nasıl yapabiliriz bunu? Makine öğrenmesinin yenilikçi çözümleri tam bu noktada mobil dünyaya dokunuyor.


Makine Öğrenimi, insan müdahalesi olmadan sonuçları otomatik olarak öğrenme, keşfetme ve öngörme yazılımı sağlayan Yapay Zeka’nın (AI) bir alt bilim dalıdır. Makine Öğrenimi pek çok farklı alanda kullanılmaktayken şimdi ise mobil uygulamalarımızda karşımıza çıkmakta ve kullanılmaktadır.


Günlük hayatta kullandığımız eğlence amaçlı mobil uygulamlardan bazıları makine öğrenmesi örneklerini içermektedir. Örneğin YouTube, Spotify vs. Bir kullanıcıya o kullanıcının beğenme veya izleme olasılığı yüksek olan videoları, şarkıları vs. karşısına çıkarması. Diğer örnekler görsel bir metin öğesini text'e dönüştürmek için kullandığımız uygulamalarda (Örneğin Text Scanner) veya bir QR kod okuturken karşımıza çıkıyor. Son olarak e-ticaret için kullandığımız mobil uygulamalar, aldığımız bir ürüne göre ihtiyacımızın olabileceği veya bu ürünle birlikte alınma ihtimali olan diğer ürünleri kullanıcılara önermesi.


Görsel Referansı


Daha bunun gibi pek çok örneği günlük yaşantımızın bir parçası olmuş durumda. Peki kendi uygulamalarımızda nasıl kullanabiliriz? Makine öğrenmesi uygulamaları geliştirmek mobil geliştiricilere çok fazla işlem yükü yüklemekte ve birbirinden farklı iki alanda da kendimizi geliştirmemiz gerekmekte. Bu duruma çözüm olarak Google, I / O’18 de Machine Learning Kit'i yayınladı.


Firebase Machine Learning Kit


Ml Kit, Google’ın makine öğrenimini güçlü ve kullanımı kolay bir pakette Android ve iOS uygulamalarına getiren bir mobil SDK’dır. Google Cloud Vision API, TensorFlow Lite ve Neural Network API gibi ML teknolojilerini tek bir SDK’ da bir araya getirerek uygulamalarımızda ML tekniklerini kolayca kullanabilmemizi sağlar.

Görsel Referansı


“Makine öğrenmesi ile ilgili bir deneyimim yok, daha önce hiç geliştirmedim ama makine öğrenmesinden faydalanarak uygulamamı geliştirmek istiyorum” diyenler için hazır modeller bulunmakta. ML Kit cihazda (on-device), bulutta (cloud) ve cihazda çalışabilen çeşitli hazır modeller sunar. Bu hazır modelleri bir kaç satır kod ile projelerimize ekleyip kullanabiliriz. Ve bence mobil geliştiriciler için en büyük avantajı; bunun için Makine Öğrenimi veya TensorFlow uzmanı olmamıza gerek yok.


ML Kit modelleri görme (Vision) ve doğal dil işleme (Natural language processing) olarak temel iki kategoriye ayrılmaktadır:


  • Görme modelleri, geliştiricilerin barkodları taramasına, yüzleri algılamasına, nesneleri ve yer işaretlerini etiketlemesine veya metin okumasına olanak tanır.

  • Doğal dil işleme modelleri, dili tanıyarak, farklı bir dile çevirerek veya içeriğe dayalı akıllı yanıtlar oluşturmasına olanak tanır.


Bazı modellerimiz sadece bulutta, sadece cihazda veya ikisinde de çalışabilmektedir. Cihazda çalışan modellerimiz ağ gereksinimi olmadan hızlı bir şekilde çalışırlar. Bulutta çalışan modellerimizi kullanarak, doğruluk oranı yüksek sonuçlar elde etme şansına sahip olabiliriz.


  • Bulutta çalışanlar: Landmark recognition, Text recognition, Image labeling

  • Cihazda çalışanlar: Text recognition, Image labeling, Barcode scanning, Face detection, Object detection, Language identification, Translation, Smart reply

  • Hem bulutta hem cihazda çalışanlar: Text recognition, Image labeling


Görsel Referansı

ML Kit'in ne olduğunu ve hazır modellerimiz ile Makine Öğrenmesi özelliklerini kolayca uygulamamıza implement edebileceğimizi öğrendik. Şimdi ise öğrendiklerimizi bir örnek ile gerçekleştirelim.


Makine öğrenmesinin kullanıldığı popüler örneklerden bir tanesi Google Translate, bilmediğimiz bir dildeki bir dökümanı nasıl çevirebiliriz? İlk olarak aslında yapmamız gereken şey "Hangi dil ile yazıldı?" sorusunun cevabını bulmak değil midir? Tam olarak Google Translate ilk olarak eklediğimiz verinin hangi dile ait olduğunu algılayarak başlıyor. Aşağıdaki görsellerden inceleyebilirsiniz.












Hedefimiz verilen bir metnin hangi dile ait olduğunu belirleyebilecek bir uygulama geliştirmek. Yanda tasarımı verilmiş uygulamayı doğal dil işleme modellerinden Language Identification hazır modelini kullanarak uygulamamızı geliştireceğiz.







Adım 1


Android Studio'da Language Identification isimli bir proje oluşturalım.


Adım 2


Hali hazırda var olan veya yeni eklediğiniz Firebase projesi ile uygulamamızı bağlıyoruz.


Adım 3


Öncelikle tasarımımızı gerçekleştirmek için aşağıdaki kütüphanelerin bağımlılıklarını app/build.gradle 'a ekliyoruz ve "Sync Now" 'a tıklıyoruz.


Adım 4


Daha sonra birer adet editText, button ve textView ekliyoruz. Ve editText ile alacağımız metnin hangi dile ait olduğunu bulup textview'a yazacağız.

Adım 5


ML Kit Android kütüphaneleri bağımlılıklarını app/build.gradle 'a ekliyoruz ve "Sync Now" 'a tıklıyoruz.


Adım 6


Tasarımda eklediğimiz editText, textView ve button'u tanımlayıp, button yardımı ile ediText'e girilen metnin boş olup olmadığını kontrol ediyoruz. Daha sonra editText'deki metnin hangi dile ait olduğunu kontrol etmek için showLanguage() isimli fonksiyonumuzu çağırıyoruz.



Adım 7


showLanguage(language_str: String) isimli metodumuzu ekliyoruz. Bir metnin dilini belirlemek için metnin örneğini FirebaseLanguageIdentificetion metoduna ve metni IdentifyLanguage() metoduna iletmeliyiz. Eğer çağrı başarılı bir şekilde gerçekleştirilirse IdentifyLanguage'a bir liste aktarılır. ML Kit güven değeri en az 0.01 olan dilleri geri döndürmektedir. Ayrıca varsayılan olarak ML Kit güven değeri en az 0.5 tanımlandığında "und" dışında bir değer döndürür.


Ve son olarak "run" diyip çalıştırıyoruz. Demoda da gördüğünüz üzre artık ML özelliklerini kolayca uygulamamızda kullanabiliyoruz.



“Makine öğrenmesine ilgi duyuyorum ve modelimi kullanıcının isteklerine göre özelleştirip uygulamada kullanmak istiyorum” diyenler de düşünülmüş ve özel modellerimizi geliştirme olanağı sunulmuş. Örneğin bir çiçekçideki çiçekleri analiz edelim. Çiçek isimlerini, çiçeklerin yetiştirilme ortamları vs. gibi bilgilerini resimdeki çiçekten algılayan bir uygulama geliştiriyor olalım.


Peki ama nasıl? Hazır modelleri bir kaç satır kod ile implement edip uygulamamızda kolayca kullanabiliyorduk. Özel modelimizle bizi nasıl bir senaryo bekliyor?


İşte tam burada TensorFlow Lite devreye giriyor. TensorFlow Lite, geliştiricilerin TensorFlow modellerinin mobilde, gömülü sistemlerde ve IoT cihazlarda çalıştırmasına yardımcı olan bir araçtır.

TensorFlow Lite temel iki bileşenden oluşur

  • TensorFlow Lite Interpreter

TensorFlow Lite Interpreter ile cep telefonları, gömülü Linux cihazlar ve mikrodenetleyiciler dahil birçok farklı donanım tiplerinde modeller optimize bir şekilde çalışabilir.

  • TensorFlow Lite Converter

TensorFlow Lite Converter ile bir TensorFlow modelini, TensorFlow Lite (.tflite) dosyasına dönüştürebiliriz.


TensorFlow Lite, verileri sunucudan ileri geri göndermek yerine, cihazlarda makine öğrenmesini kolaylaştırmak için tasarlanmıştır. Geliştiriciler için, cihaz üzerinde makine öğrenimi gerçekleştirirken başka avantajlar da sağlamaktadır. Örneğin: Sunucuya gidiş dönüş yoktur, internet bağlantısı gerekli değildir. Güç tüketimi azdır ve gizlilik korunur.  Haydi başlayalım!


  • Öncelikle Android projemize Firebase'i ekliyoruz.

  • Kullanmak istediğimiz TensorFlow modelini TensorFlow Lite modeline dönüştürüyoruz.


TensorFlow Lite modelimizi kullanmadan önce modelimizi ML Kit'in kullanımına sunmalıyız. ML Kit, Firebase kullanarak host edilmiş TensorFlow Lite modellerini kullanabilmektedir. Kendi modelimizi Firebase'de nasıl host edebiliriz?


  • Firebase konsolunda, ML Kit bölümünde Custom sekmesine geliyoruz.

  • Özel model ekle'ye tıklayarak modelimize (.tflite veya .lite uzantılı) isim verip ekliyoruz.

  • Son olarak, indirmeye izin vermek istediğimiz koşulları belirterek model indirme görevini başlatmak için bize Kotlin, Java, Swift gibi dillerde kod parçacıkları paylaşmaktadır .Artık modelimiz mobil uygulamamlarda kullanıma hazır.



Yazımın sonuna gelirken kendi özel modelini geliştirmek isteyenler için incelediğim ve hoşuma giden bu örneği paylaşmak istiyorum. Uygulamanın kaynak kodlarının yer aldığı repoyu da aşağıya ekliyorum.


Github: https://github.com/ajdakter/-language-identification


Bu yazıyı yazarken faydalandığım kaynaklar:

https://firebase.google.com/docs/ml-kit

https://firebase.google.com/docs/ml-kit/android/identify-languages

https://www.tensorflow.org/lite/convert

https://medium.com/androidiots/firebase-ml-kit-101-language-identification-5a6b9453b692

https://krify.co/11-apis-of-firebase-ml-kit-to-try-in-your-mobile-app/


#machinelearning #mlkit #firebase #textidentification # detectlanguage #android


0 yorum

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın