Metin Sınıflandırma Ne İşe Yarar?

Haklarında çok fazla fikrimizin olmadığı, kapağında ismi ve yazarı bile yazmayan ama dilini bildiğimiz onlarca kitabı, bir kütüphanenin konulara göre ayrılmış, yine ismi, yazarı bilinmeyen ama dilini bildiğimiz bir dizi kitapla dolu raflarına yerleştirmek gibi bir işle karşı karşıya olduğumuzu düşünelim. Nasıl bir yol izlerdik?

Kitapları kalınlıklarına göre ayırmaktan, hepsini tek tek okumaya kadar elbette pek çok seçeneğimiz var ama biz yazımızın amacı açısından ikisinin arası bir yöntem uygulayacağız.

Öncelikle kütüphaneyi tanımak gerekiyor. Konular neler, buralardaki kitaplar ne anlatıyor, yazarları kimler gibi bilgileri edindikten sonra elimizdeki kitapların tek tek hangi konudakilere benzediğini bulmaya çalışalım. Kütüphaneyi ne kadar iyi tanımışsak, kitaplarımızı da o kadar kolay sınıflandırabiliriz. Çünkü elimizdeki kitapta ne yazdığını bilmek yetmiyor, onun içeriğini kütüphanenin konularına göre değerlendirmek, bu konulardan en uygununu seçmek gerekiyor. Bunun için de konuları, kütüphaneyi iyi bilmek kilit önemde.

Peki kütüphaneyi daha iyi tanımak için ne yapmak gerek? Konuları temsil edecek sembollere ve bunların değerlerine ihtiyaç var. Kitaplarla ilgili elimizdeki tek özellik içerikleri olduğuna göre, kelimelerden yararlanabiliriz. Her bir konu için, en sık geçen kelimeleri bulmak işimizi görebilir. Böylece, sınıflandırma sırasında, elimizdeki kitapta, rastgele açtığımız sayfalara bakarak da olsa, kütüphanede bulduğumuz konu kelimelerinin geçip geçmediğini, hangi konu kelimelerinin daha fazla geçtiğini, kontrol eder, kitabın ait olduğu rafa buna göre karar veririz. Görüldüğü gibi, bir insanın tek başına yapması için epeyce zor bir iş. Kelime sıklıklarını çıkarmak, bu değerlerin kendi aralarındaki ve sınıflandırılacak kitaptaki kelimelerle ilişkisini bulmak, nihai kararı vermek, yani bu en basit yöntem bile oldukça zaman harcamak gerektiriyor.

Doğal dil işlemede metin sınıflandırma işleri, işte bu tür problemleri çözmekle uğraştığımız bir alan. Metinleri sayısal olarak nasıl temsil edebiliriz, metinlerin hangi özelliklerini kullanmalıyız, belli bir alanla ilgili bir problem için hangi tür, kaç sayıda metin gereklidir, kategorilerin birbiriyle ilişkisi nedir, yapay öğrenme algoritmalarının daha etkin çalışmasını nasıl sağlayabiliriz gibi sorular, bu alanın yoğunlaştığı konulardan.

Az önceki kütüphane problemimize dönersek, bu problemi bir metin sınıflandırma programı yazarak çözmek için de aslında benzer adımları izleyeceğiz. Öncelikle kütüphanedeki kitapları sayısal olarak temsil etmek ve daha sonra hem raflardaki, hem de raflar arasındaki kitapların birbiriyle ilişkisini bulmak gerekiyor. Bu ilişkilendirme, programın hafızasını oluşturacak ki böylece, bilmediği bir kitap sorulduğunda program bu bilgiye dayanarak cevap verecek, yani program, kütüphaneyi kendince öğrenmiş oluyor.

Bu öğrenme işlemini yapay öğrenme algoritmaları sağlıyor; en sık kullanılan algoritmalar, istatistiksel yapay öğrenme algoritmaları; varlıkların, bizim problemimizde kitapların, sayısal değerleri arasındaki ilişkileri bulur, bu ilişkileri verilen kategorilere yerleştirir, yani kategorileri “öğrenir”, kategorisi bilinmeyen bir kitap sorulduğunda da, bu öğrenmiş olduğu kategori içi ve kategoriler arası ilişkilere, değerlere göre bir cevap verir. Biz kendi karar verme süreçlerimizde, nasıl ki -çoğunlukla farkında olmadan- geçmiş bilgimiz, hafızamız, sezgilerimizden yararlanıyorsak; karar verme işlemi yapmaya çalışan bilgisayara da bu süreci yönlendirmeye yarayacak böylesi bir bilgi birikimi gerekiyor ve istatistiksel yöntemler kullanan bir algoritmayla, çok daha sınırlı bir alana ait bu bilgi bilgisayara kazandırılıyor.

Metin sınıflandırma, doğal dil işlemedeki pek çok problemin temelini oluşturuyor ve pek çok uygulamada hayat buluyor. Örneğin mesajları gerekli / gereksiz-spam olarak sınıflandıran programlar; verilen bir metnin olumlu mu olumsuz mu veya üzgün mü, neşeli mi, nötr mü olduğunu bulan duygu analizi yöntemleri; öneri sistemleri; dil tanıma araçları, en yaygın kullanım alanları. Metinlerin akıcılığı, zorluğu, okunabilirliğini ölçen veya bir metni kimin yazdığını, yazan kişinin metnin dilini anadil mi, yabancı dil olarak mı bildiğini bulan, metinlerdeki argumanları çıkarıp taraflardan hangisinin haklı olduğunu tespit etmeye çalışan algoritmalar da son yıllarda üzerinde çalışılan ilginç sınıflandırma problemlerinden.

Yazımızı, zihin felsefesinin “bilgisayarlar düşünür mü” sorunsalına dair bilinen bir düşünce deneyiyle bitirelim. Çince odası diye bilinen, felsefeci John Searle’ün ortaya attığı ve cevapladığı bu problemde, kapalı bir odada sadece İngilizce bilen bir insan ve Çince soru cevaplayabilen bir bilgisayar var; sorular kapının altından atılıyor, odadaki kişi, İngilizce bir komut dizisini izleyerek soruları bilgisayara giriyor, cevabı alıp, yine kapının altından atıyor. Dolayısıyla dışarıdaki kişi, cevapları verenin büyük olasılıkla bir insan olduğunu düşünüyor. Öyleyse, bu durumda, biz bu bilgisayarın Çince anladığını söyleyebilir miyiz?

Leave a Comment