Şub 182017
 
1.962 views

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Zirvesi 15 Şubat’ta izleyicileriyle buluştu. Etkinlik, aynı zamanda Mountain View üzerinden canlı olarak da yayınlandı. Bu yayına ait kayıtlara https://events.withgoogle.com/tensorflow-dev-summit/watch-the-videos/#content adresinden erişebilirsiniz. Sözkonusu yayının süresi 8 saat 17 dakikadır.

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Summit

TensorFlow kendi web sayfasında: “sayısal hesaplama için akış grafiklerini kullanan açık kaynaklı bir yazılım kütüphanesi” olarak tanımlanıyor. “Grafik üzerindeki düğümler matematiksel işlemleri temsil ederken, kenarlar, bunların arasında iletişim gerçekleştiren çok boyutlu veri dizilerini (tensor) ifade etmektedir.”

Tensorflow kütüphanesi tek veya birden fazla CPU veya GPU üzerinden çalışabilmektedir. Şu anda kütüphanenin 1.0 sürümü yayınlanmış durumdadır.

Eğer bu kütüphane bilgisayarınızda daha önceden kurulmuşsa sürüm numarasını şu komutla sorgulayabilirsiniz:

TensorFlow kütüphanenizi en güncel (1.0.0) sürümüne yükseltmek istiyorsanız ya da tamamen yeniden kurmak niyetindeyseniz https://www.tensorflow.org/ adresindeki ilgili linkleri takip etmeniz yeterlidir.

Örneğin benim bir önceki TensorFlow sürüm numaram (0.11.0) idi. Bu sürümü yeni sürüme yükseltmek için Ubuntuda sadece şu komut yeterli oldu:

Yeni sürümüm: tensorflow (1.0.0)

Bir çok kütüphanenin yeni sürümüyle ilgili çalışan örnek bulmak çoğu zaman biraz problemlidir. TensorFlow 1.0.0 konusunda şanslıyız. Hemen kodlayıp çalıştırabileceğiniz kodlarla dolu bir github sayfası var: https://github.com/aymericdamien/TensorFlow-Examples. Bazı kodlarda artık kullanılmayan bazı metodlarla karşılaşabilirsiniz. Endişelenmeyin. Hata mesajını araştırdığınızda yanıtlarını hemen bulabiliyorsunuz.

Örneğin, tf.neg() metodu yeni düzenlemede tf.negative() şeklini almış. Yani sadece küçük isim değişiklikleriyle baş etmek zorundasınız.

Kütüphane, örnek veri setlerine de sahip. Elle yazılmış rakam görüntülerinden oluşan “mnist” veri seti, örneklerde yoğun şekilde kullanılıyor. Örneklerin bir çoğunu 8GB belleğe sahip, 4 CPU’lu i5 makineye kurulu Ubuntu 16.04 üzerinde, Python-3.5.2 ile test ettim. Sorunsuz çalışıyorlar.

Eğer bilgisayarınızda GPU kullanma imkanınız varsa, verilen örneklerin sonuçlarını çok kısa sürede alabilirsiniz. Benim gibi sadece CPU kullansanız bile, kodların çalışma süresi aşırı uzun değil.

TensorFlow, “herkesin makine öğrenmesini kolayca uygulayabilmesini” hedefliyor. Bunda da başarılı olacak gibi.

Eğer siz de makine öğrenmesi konularıyla ilgileniyorsanız, TensorFlow’la bir an önce tanışmayı programınıza alın.

Ahmet Aksoy

Kaynaklar:

Kas 112016
 
4.750 views

Python ile Harflerden Resim Kodlamak

Python ile çok farklı alanlarda çalışmak mümkün. Örneğin herhangi bir görüntüyü alıp, onu sadece ASCII tablosunda yer alan bazı işaretleri kullanacak şekilde kodlamak mümkün. İngilizcede bu tür çalışmalar “ASCII Art” terimiyle ifade ediliyor. Dilimizde somut bir karşılığı yok.

Aşağıdaki görüntü, günümüzün popüler dizilerinden birindeki Defne karakterini canlandıran sanatçı Elçin Sangu‘ya ait.

Resim Kodlamak

Bu kodlamayı gerçekleştiren küçük pyhon betiğini https://gist.github.com/cdiener/10491632 adresinden indirebilirsiniz.

Bu betik aslında doğrudan komut modunda çalıştırılmak üzere hazırlanmış. Ben, onun yerine belli bir resmi kullanacak şekilde küçük bir değişiklik yaptım.

chars dizisinin içeriği ile oynayarak tonlamalarda farklı sonuçlar elde etmek mümkün. Benzer şekilde SC, GCF ve WCF parametreleriyle de oynayabilirsiniz.

Kodlar şöyle:

Kullandığım orijinal resimdeki renkler ve gölge kontrastları, yapılan dönüşüm için çok uygun değildi. Siz, kontrastı daha güçlü görseller kullanarak daha çarpıcı sonuçlar elde edebilirsiniz. Parametrelerle de oynamak gerekebilir.

Yapay zeka çalışmalarıyla günümüzde olağanüstü görseller elde edilebiliyor artık. Biz de şimdilik “çöp adam çizer gibi” bir ucundan başlayalım dedik. İleride daha kapsamlı çalışmalar da yapabiliriz fırsat bulursak.

Ne dersiniz?

Deneme sonuçlarınızı lütfen benimle de paylaşın!

Yukarıdaki kodları Ubuntu 16.04 üzerinde, Python 3.5.2 ile çalıştırdım.
Sisteminizde hazır değilse PIL ve numpy kütüphanelerini öncelikle kurmanız gerekeceğini unutmayın.

Ahmet Aksoy

http://gurmezin.com/python-ile-harflerden-resim-kodlamak

Ek açıklama: Yukarıda kodlarını paylaştığım yazarın satırlarına gist.github.com üzerinden ulaşmıştım. Buradaki kodların arasında ayrıntılı lisans bilgileri mevcut değildi. O yüzden sadece kodların orijinal linkini vermekle yetinmiştim.
Ancak yazarın github sayfasında aynı kodlara ilişkin lisans bilgileri de mevcut. Etik olarak bu satırları da sayfaya eklemenin daha doğru olacağını düşünüyorum.
Sonuç itibariyle etkin kod satırlarımızın sayısında bir değişiklik olmayacak zaten.

Kas 032016
 
1.663 views

Türkçe Kelime Köklerinin Sayısal Dağılımı

Türkçe kelime köklerinin içerdiği harf sayısı bir ile yirmi bir arasında değişmektedir. Bu değişimi sayısal olarak grafikleştirdiğimizde karşımıza aşağıdaki gibi bir tablo çıkmaktadır.
Türkçe Kelime Köklerinin Sayısal Dağılımı

En kısa Türkçe kelime kökü “o”dur. Tek karakter uzunluğundadır. (C, I, L, V, X gibi Romen rakamlarını ve tek karakterli bazı atomik işaretleri bu listeye katmıyorum. Onlar da aslında yaşayan Türkçenin bir parçasıdır ama, onları ayrı bir kategoride işlemekte yarar var.)

Harf sayısını ikiye yükselttiğimizde yalın kök sayısı 110 adedi bulur. Güncel kısaltmaları da bu listeye ilave edersek anlamlı kök sayısı 187’ye kadar yükselir.

Kısaltmaları dikkate almadığımızda elde ettiğimiz 2 harfli kökleri şu şekilde listeleyebiliriz:

ad, af, ah, al, an, ar, as, at, ay, az, aç, ağ, be, bu, da, de, do, ed, eh, ek, el, em, en, er, es, et, ev, ey, ez, eğ, eş, fa, ha, he, hu, hı, ıh, ıs, il, im, in, is, it, iv, iz, iç, iğ, iş, ki, la, le, mi, mu, mü, mı, na, ne, nü, od, of, oh, ok, ol, om, on, ot, ov, oy, oz, öc, öd, öf, ök, öl, ön, öp, ör, öt, öv, öz, öç, pi, re, si, su, sü, şu, ta, te, ti, uc, uç, ud, uf, um, un, ur, us, ut, uy, uz, üç, ün, üs, üş, üt, üz, ve, ya, ye

Harf sayısını üçe çıkardığımızda, kök sayısı 936’ya yükselir.

Dört harfli kelime sayısı 3015 olur.

En yüksek sayı 6 harfli köklerdedir: 8232

Bu sayıları bir tablo haline dönüştürelim.

Harf sayısı Kök sayısı
1 1
2 110
3 936
4 3015
5 8224
6 8232
7 8082
8 7172
9 4374
10 2662
11 1340
12 659
13 330
14 164
15 66
16 29
17 7
18 4
19 2
20 1
21 1
22 0

Yukarıdaki rakamları Python diliyle yazdığım betiklerle elde ettim. Grafik içinse matplotlib kütüphanesinden yararlandım.

En uzun köklerimizi de örnekleyelim:

18 harfliler:
elektrokardiyograf
elektrokardiyogram
karıncayiyengiller
yılanyastığıgiller

19 harfliler:
elektroansefalogram
elektrokardiyografi

20 harfli
elektroansefalografi

21 harfli
barbaroshayrettinpaşa
(Bir yer ismi olan bu sözcük aslında bitişik yazılmayabilir. O zaman en uzun kelime kökü 20’de kalmış olur)

Dikkat ederseniz, en uzun Türkçe sözcük köklerinin çoğu aslında Türkçeye dışarıdan girmiş birleşik sözcüklerdir. Ama onları gündelik yaşamımızın içinde kullanmaya devam ediyoruz. Onların ifade ettiği kavramlara karşılık gelen -öz-Türkçe sözcüklerimiz olmadıkça, bizler de bu sözcükleri ister istemez kullanmaya, onları sahiplenmeye devam edeceğiz.

Bu yazı, onaylanmış bir akademik çalışma değildir. Daha çok bir deneme niteliğindedir. Dolayısıyla bazı eksik ve hatalar içerebilir. Eğer böyle bir eksik veya hata tespit ederseniz, lütfen benimle de paylaşın. Sorunları birlikte yorumlayalım. Doğrularını üretelim.

Ahmet Aksoy

May 212016
 
939 views

Örnekleriyle Türkçe Sözcüklerde Yapım Ekleri

Türkçede pek çok sözcüğün gövdesi, kök sözcüklere ulama yapılarak oluşturulmuştur. Bu tür eklere “yapım ekleri” denir.

Türkçede 4 tip yapım eki bulunur:

1- Addan ad üreten yapım ekleri
2- Addan fiil üreten yapım ekleri
3- Fiilden ad üreten yapım ekleri
4- Fiilden fiil üreten yapım ekleri

1- Addan ad üreten yapım ekleri:

cağız/ceğiz: adamcağız, çocukcağız, hayvancağız, kadıncağız, kızcağız, yavrucağız, köyceğiz, kızancağız
ca/ce/ça/çe: Türkçe, İngilizce, Arapça, Farsça, Almanca, Portekizce
cı/ci/cu/cü/çı/çi/çu/çü: sanatçı, gözcü, izci, sözcü, yolcu, simitçi, alaycı
cık/cik/cuk/cük: adacık, adamcık, anacık, dalgacık, ihtiyarcık, kapıcık, meydancık, beyincik, bebecik, sözcük, tomurcuk
cıl/cil/cul/cül: insancıl, evcil, bencil, merkezcil, yosuncul, ölümcül, öncül, bütüncül, kötücül
daş/deş/taş/teş: yurttaş, sırdaş, çağdaş, arkadaş, paydaş, vatandaş, yandaş, yoldaş, ülküdaş, özdeş, kardeş, kökteş, gönüldeş
ımsı/imsi/umsu/ümsü: acımsı,ekşimsi, tatlımsı, siyahımsı, masalımsı, beyazımsı, kadınımsı, esmerimsi, fiilimsi, mavimsi, morumsu, öykümsü
ımtırak/imtrak/umtırak/ümtırak: yeşilimtırak, sarımtırak, beyazımtırak, mavimtırak, siyahımtırak, ekşimtırak, morumtırak
ıncı/inci/uncu/üncü: birinci, ikinci, üçüncü, dördüncü, beşinci, altıncı, dokuzuncu, onuncu
ıt/it/ut/üt: yaşıt, bağıt, yazıt, özüt, dikit, somut, gömüt
lı/li/lu/lü: şehirli, paralı, akıllı, ağaçlı, kültürlü, evli, devamlı, fiyakalı, cilalı, efkârlı, cesaretli, emniyetli, güllü, hüzünlü
lık/lik/luk/lük: odunluk, kömürlük, sabahlık, kitaplık, tuzluk, fidanlık, ağaçlık, gelinlik, askerlik, aksilik, abonelik, bademlik
man/men: uzman, Türkmen, kocaman, toraman, katman, yazman, ataman, evcimen, gökmen, küçümen
sal/sel: kimyasal, anıtsal, anlamsal, açısal, hukuksal, kalıtımsal, fiziksel, bedensel, belgesel, çözümsel, geleneksel
sıl/sil/sul/sül: varsıl, dişsil, yoksul, damaksıl
sız/siz/suz/süz: susuz, parasız, vicdansız, ilkesiz, yersiz, yurtsuz, evsiz, barksız, kültürsüz, hükümsüz, güçsüz, çözümsüz
şın: akşın, karaşın, sarışın
tay: danıştay, kamutay, kurultay, sayıştay, yargıtay

2- Addan fiil üreten yapım ekleri

a: ada, boşa, kana, yaşa
al/el: azal, çoğal, daral, kısal, kocal, sağal, ufal, yoğal, dikel, dincel, düzel, incel, körel, sertel, seyrel, yönel, yücel
ar/er: ağar, bolar, bozar, kabar, kızar, sarar, yeşer
at/et: boşat, boyat, kanat, kocat, yaşat, gözet, yönet
da/de: cayırda, cazırda, cırılda,cızırda,çağılda, çatırda, çıngılda, hışırda, horulda, kıkırda, zırılda, gümbürde
ık/ik: acık, ayık, birik, gecik, gözük
ımsa/imse: anımsa, ayrımsa, azımsa, kaçımsa, sayrımsa, benimse, mühimse
kır/kir/kur/kür: fışkır, haykır, hıçkır, höykür, püfkür, püskür, sümkür
l: doğrul, eğril, sivril
la/le: alala, ayala, cilala, çapa, ıslıkla, kolala, rahatla, sırala, sula, tamamla, taşla, tavla, tıkla, tuzla, uğurla, zorla, gölgele, dizle
lan/len: akıllan, aklan, allan, avlan, aydınlan, coşkulan, duygulan, hoşlan, kanatlan, bilgilen, dertlen, hüzünlen
laş/leş: abanozlaş, ahmaklaş, aklaş, fenalaş, inatlaş, telefonlaş, aktifleş, cimrileş, çölleş, dertleş, gençleş, zenginleş
sa/se: çoksa, ıraksa, kapsa, susa, yakınsa, benimse, garipse, mühimse, önemse, örnekse, özümse

3- Fiilden ad üreten yapım ekleri

acak/ecek: açacak, alacak, gelecek, giyecek, yakacak, verecek
ak: durak, kaçak, yatak, yutak
ar/er: gider, tutar
ca/ce: düşünce, eğlence, sakınca
ga/ge: bilge, bölge, süpürge
gı/gi/gu/gü: algı, askı, çalgı, duygu, saygı, sevgi
gıç/giç: bilgiç, dalgıç
gın/gin/gun/gün: bezgin, bilgin, bitkin, dalgın, solgun, yorgun, ölgün, süzgün
ı/i/u/ü: çatı, doğu, koku, ölü, sevi, yapı, yazı
ıcı/ici/ucu/ücü: alıcı, görücü, satıcı, yapıcı, yazıcı
ık/ik/uk/ük: açık, göçük, kesik, seçik, soluk
ım/im/um/üm: onarım, oturum, ölüm, ölçüm, sayım, seçim
ın/in/un/ün: akın, ekin, tütün, yığın
ıntı/inti/untu/üntü: akıntı, çarpıntı, çıkıntı, döküntü, kesinti, yığıntı, görüntü
ır/ir/ur/ür: yatır, gelir, okur
ış/iş/uş/üş: oturuş, sürüş, veriş, yürüyüş,
ıt/it/ut/üt: geçit, dikit, ölçüt, sarkıt, yakıt
kan/gan: çalışkan, kaygan, unutkan
ma/me: açma, gülme, kapama, konuşma, serpme, sevme, uyuma
mak/mek: açmak, gelmek, gitmek, kapamak, uyumak
ınç/inç/unç/ünç: gülünç, sevinç, basınç, erinç
tı/ti: belirti, karartı, kızartı, morartı

4- Fiilden fiil üreten yapım ekleri

ala/ele: durala, itele, kovala, tepele
dır/dir/dur/dür: açtır, astır, bezdir, bildir, buldur, çizdir, deldir, koştur, soktur, sordur, yazdır
l: atıl, ayrıl, bozul, gidil, sayıl, soyul, tutul, yazıl
n: aran, başlan, bilin, gerin, sürün, taran, taşın, yıkan
r: batır, çıkar, düşür, içir, kaçır, kopar, uçur
ş: atış, bekleş, dövüş, görüş, itiş, selamlaş, seviş, tartış, uçuş, yazış
t: acıt, akıt, anlat, arat, kızart, okut, yürüt

Ahmet Aksoy

Mar 292016
 
1.013 views

Python Pygame ve Thread Uygulaması

Python Pygame ve Thread Uygulaması

Al Sweigart tarafından Python 2 ve 3 için uyumlu şekilde yazılmış “threadworms” isimli bir uygulama var. Proje https://github.com/asweigart/threadworms adresinde paylaşılıyor.

Programın içinde ayrıntılı açıklamaların bulunması özellikle thread, pygame veya Python konusunda öğretici örnek arayanlar için onu daha değerli hale getiriyor.

Açıklamalar İngilizce. Ben de dil sorunu olan arkadaşlarımız için kodların arasına serpiştirilmiş açıklamaları büyük oranda Türkçeleştirdim. Kalan kısmını da en kısa zamanda halletmeye çalışacağım.

Tamamlanmamamış haliyle bile bu açıklamaların işe yarayacağını düşünüyorum.

Türkçe açıklamaları içeren dosyaya https://github.com/ahmetax/threadworms adresinden ulaşabilirsiniz. Orijinal kod dosyasının adı: threadworms.py. Türkçe açıklamaları içeren dosya adı ise: threadworms-tr.py. Her iki dosyadaki kodlar aynı. Sadece açıklamalar ve bazı parametreler farklı.

Bu program, thread kullanımı açısından da çok yararlı ve güzel bir örnek. Solucanların işgal ettiği hücrelerin çakışmamasını sağlayan kilit mekanizmaları adım adım açıklanıyor.

Solucan sayısını, kullanılan renkleri, hücre boyutlarını, yatay ve düşey hücre sayısını değiştirmeniz mümkün. Solucanların hızını da ayarlayabilirsiniz.

setGridSquares(squares) satırının başındaki # işaretini kaldırırsanız, squares değişkeni tarafından tanımlanan engeller ızgara üzerinde etkin hale gelir.

Thread ve/veya pygame konusunda kendinizi geliştirmek istiyorsanız, bu örneği mutlaka inceleyin!

Ahmet Aksoy

Mar 242016
 
1.344 views

Hürriyet Gazetesinde Yıllara Göre Sözcük Kullanımı

Hürriyet Gazetesinde Yıllara Göre Sözcük KullanımıHürriyet Gazetesi arşivlerini yıllara göre tarama çalışmamız devam ediyor. 2010 ve 2011 yıllarına ait taramalar tamamlandı. (2012, 2013, 2014 ve 2015 te tamam.)

Aşağıda, elde ettiğimiz sözcük frekans listelerinin başında yer alan sözcükleri karşılaştıran bir tablomuz var. Gördüğünüz gibi listeler neredeyse birbirlerinin aynısı. Sadece küçük yer değiştirmeler mevcut. İlk 12 sözcük tamamen birbirinin eşi.

Ancak listeyi uzatırsak, daha alt bölgelerdeki değişimlerin giderek daha büyük boyutlara ulaştığını görürüz. Çünkü aşağılara indikçe, sözcükler arasındaki frekans farklılıkları küçülmekte; bu da kaymaların giderek daha fazla basamağı kapsama olasılığını arttırmaktadır.

Diğer yıllara ait sonuçları da taramalar bittikçe tabloya ekleyeceğim.

Henüz gerçekleştirmediğim bir çalışmada bazı kişi, yer ve kurum isimlerinin kullanım sıklığının yıllara göre değişimini saptamayı planlıyorum. Böyle bir rapor kişi, yer ve kurumların günlük haberler açısından popülerliğinin nasıl değiştiğini gösterecektir. İlginç sonuçlar çıkacağını umuyorum.

Evet, 2013 yılının sonuçlarını da listeye ekledim. Hala, ilk 11 sözcüğün sıralaması aynı.

2014 ve yılına ait veriler de sıralamanın ilk 11 sıralamasını değiştirmedi.

Hürriyet Gazetesinde Yıllara Göre En sık kullanılan ilk 30 sözcük
  2010 2011 2012 2013 2014 2015 2016
01 ve ve ve ve ve ve
02 bir bir bir bir bir bir
03 bu bu bu bu bu bu
04 da da da da da da
05 de de de de de de
06 için için için için için için
07 ile ile ile ile ile ile
08 çok çok çok çok çok çok
09 olarak olarak olarak olarak olarak olarak
10 daha daha daha daha daha daha
11 en en en en en en
12 olan olan olan türkiye olan ise
13 türkiye ise türkiye ise ise olan
14 ise türkiye ise olan türkiye türkiye
15 dedi dedi dedi sonra sonra sonra
16 sonra sonra ilk dedi kadar kadar
17 olduğunu ilk sonra ilk her dedi
18 kadar olduğunu kadar kadar gibi her
19 ilk kadar olduğunu olduğunu dedi gibi
20 büyük büyük büyük her ilk var
21 gibi bin her gibi bin ilk
22 bin gibi gibi var var bin
23 başkanı her var bin ne olduğunu
24 söyledi başkanı başkanı büyük o büyük
25 nin söyledi bin son yeni ne
26 her yeni son yıl büyük yeni
27 yıl son yeni ama olduğunu başkanı
28 yeni yüzde yıl başkanı son ama
29 ın var nin yeni ama o
30 var yıl söyledi o ilgili yıl

Ahmet Aksoy
DerlemTR Proje Yöneticisi