Token’lar, token’lar… Neymiş bu token’lar?

Merhabalar! İlk yazımı bu ay içerisinde paylaşmış olmama rağmen sanki aylardır bir şeyler yazmıyormuş gibi hissediyorum. Size de mi öyle geldi? Bitmeyen ay yapmışlar…

Çok basit, çok temel bir kavram olan fakat bir türlü “abi, ne bu direkt söylesenize işte” dediğinizde bir türlü cevap alamadığınız bir kavram. Tokens. Ya da Tokenization.

NLTK kütüphanesi altında Tokenization yapmanıza olanak sağlayacak birçok öge bulunmakta. Merve Noyan’ın şu yazısına göz atabilirsiniz.

Benim bahsetmek istediğim, aslında bu mevzunun aslında ÇOK basit bir konu olduğu ve eğer hayatınızda bir kez bile “split” metodunu kullandıysanız halihazırda bu işlemi gerçekleştirdiniz. Nasıl mı?

İşte böyle!

Elimizde böyle bir metin olduğunu varsayalım. Şimdi, biz ne yapmak istiyoruz. Örneğin, içeride geçen kelimeleri mi sayacağız? O zaman bu metni nokta, virgül gibi ifadelerden arındırmamız gerekiyor. Nasıl yapıyoruz? Bunun iki yolu var . Eğer elinizde tek tek yazmayı zorlaştıracak kadar fazla karakter varsa, şu yolu izleyebilirsiniz. Fakat ben şu an bu işi elle gerçekleştireceğim.

Gördüğünüz üzerek, bütün metin nokta işaretinden arındırıldı. Diğer karakterler içinde yaptıktan sonra elimize gelen metin şu şekilde oluyor.

Şimdi, bu metni büyük küçük harf fark etmemesi için bütün harflerini küçük olarak ayarlamamız gerekiyor.

Çok az kaldı! Şimdi, bir listeye bu kelimeleri atamamız gerekecek. Onu da şöyle yapıyoruz.

Evet! Aslında, NLTK ile tek satır kodla ulaşacağımız yere koca bir yazı sonunda geldik. Fakat bu işin biraz daha mutfağı olduğu için, temel şeyleri anlama konusunda daha iyi olduğunu düşünüyorum. Bu geldiğimiz nokta, elde ettiğimiz şeye tokens diyebiliriz. Şu an verimizi analiz etmek istediğimiz noktaya getirdik.

Eh, buraya kadar geldiysek minik bir analiz de yapabiliriz.

Kelime bazında analiz yapmak istediğimizi varsayarsak ve “hangi kelime, ne kadar tekrar etmiş” gibi bir soruya cevap arıyorsak collections kütüphanesinden minik bir yardım alabiliriz.

Burada bize, geçen kelime sayılarını vermekte. Yaptığımız ön işleme sayesinde kelimeler standart bir hale geldi. Eğer bu işlemi yapmasaydık, “Yıldız” ve “yıldız” kelimelerini farklı görecek ve sağlıklı bir sonuç vermeyecekti.

Okuduğunuz için çok teşekkür ediyor, bir dahakine arayı açmama umudumla yazıyı sonlandırıyorum.

Görüşmek üzere!

--

--

Oğuzhan Arı
Oğuzhan Arı

No responses yet