Yapay zeka temelleri
Metin Sınıflandırması Nasıl Çalışır?
Metin sınıflandırması, metin dizilerini analiz ederek ve onlara bir etiket atayarak, onları içeriklerine göre gruplara ayırma sürecidir. Metin sınıflandırması, neredeyse tüm AI veya makine öğrenimi görevlerini içeren Doğal Dil İşleme (NLP) görevlerinin temelini oluşturur. Metin sınıflandırması ile bir bilgisayar programı, spam tanıma, sentiment analizi ve sohbet botu işlevleri gibi çeşitli görevleri gerçekleştirebilir. Metin sınıflandırması nasıl çalışır? Metin sınıflandırmasının farklı yöntemleri nelerdir? Bu soruların cevaplarını aşağıda keşfedeceğiz.
Metin Sınıflandırmasını Tanımlama
Metin sınıflandırmasının ne olduğunu anlamak için biraz zaman ayırmak önemlidir. Metin sınıflandırması, birçok farklı görev ve algoritmaya uygulanan bir terimdir, bu nedenle metin sınıflandırmasının temel kavramını anlamak, farklı yöntemleri keşfetmeden önce yararlı olacaktır.
Metin sınıflandırması, metin örneklerini farklı kategorilere ayırma ve bu kategorilere etiketleme sürecini içerir. Bir sistem, bu temel adımları gerçekleştiriyorsa, metin sınıflandırıcı olarak kabul edilebilir, kullanılan yöntem veya metin sınıflandırıcının uygulanma şekli ne olursa olsun. E-posta spamını tespit etme, belgeleri konu veya başlığa göre düzenleme ve bir ürünün sentimentini tanıma, metin sınıflandırması örnekleridir, çünkü bunlar metin girişini alıp bir sınıf etiketi çıkarmayı içerir.
Metin Sınıflandırması Nasıl Çalışır?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
Çoğu metin sınıflandırma yöntemi, üç farklı kategoriye yerleştirilebilir: kural tabanlı yöntemler veya makine öğrenimi yöntemleri.
Kural Tabanlı Sınıflandırma Yöntemleri
Kural tabanlı metin sınıflandırma yöntemleri, açıkça tasarlanmış dil kurallarını kullanır. Sistem, mühendis tarafından oluşturulan kuralları kullanarak, bir metin parçasının hangi kategoriye ait olacağını belirler, metin parçalarında anlamlı dil öğeleri arayarak. Her kural, metnin karşılık gelen kategoriye yerleştirilmesi için uyulması gereken bir kalıba sahiptir.
Somut olmak için, diyelim ki ortak konuları tanıyan bir metin sınıflandırıcı tasarlamak istiyorsunuz, Örneğin hava durumu, filmler veya yemek. Metin sınıflandırıcının hava durumu tartışmalarını tanımasını sağlamak için, metin parçalarında hava durumu ile ilgili kelimeleri aramasını söyleyebilirsiniz. Hava durumu ile ilgili kelimeler, cümleler ve diğer ilgili kalıpların bir listesini oluşturabilirsiniz. Örneğin, “rüzgar”, “yağmur”, “güneş”, “kar” veya “bulut” gibi kelimeleri arayabilirsiniz. Daha sonra, metin sınıflandırıcının girdileri tarayarak bu kelimelerin kaç kez göründüğünü saymasını ve eğer bu kelimeler film ile ilgili kelimelerden daha sık görünüyorsa, metni hava durumu kategorisine yerleştirmesini söyleyebilirsiniz.
Kural tabanlı sistemlerin avantajı, girdileri ve çıktıları insanların anlaşabileceği ve yorumlayabileceği şekildedir ve bunlar mühendislerin müdahalesi ile geliştirilebilir. Ancak, kural tabanlı sınıflandırma yöntemleri aynı zamanda somewhat kırılgandır ve önceden tanımlanmış kalıplara uymak için zorluk çekebilirler. Örneğin, “bulut” kelimesi hem atmosferdeki nem hem de dijital depolama anlamında kullanılabilir. Kural tabanlı sistemlerin bu nüansları işleyebilmesi için mühendislerin bunları önceden tahmin edip ayarlamaları gerekir.
Makine Öğrenimi Sistemleri
Önceki bölümde bahsedildiği gibi, kural tabanlı sistemlerin sınırlamaları vardır, çünkü işlevleri ve kuralları önceden programlanmalıdır. Makine öğrenimi tabanlı sınıflandırma sistemleri ise, bir algoritmanın belirli bir sınıf ile ilişkili kalıpları analiz ettiği verilerin üzerine uygulanmasını içerir.
Makine öğrenimi algoritmaları, önceden etiketlenmiş örneklerle beslenir ve bu örneklerin özellikleri analiz edilir. Bu önceden etiketlenmiş örnekler, eğitim verilerini oluşturur.
Makine öğrenimi sınıflandırıcı, eğitim verilerini analiz ederek farklı sınıflarla ilişkili kalıpları öğrenir. Daha sonra, etiketsiz örnekler sınıflandırıcıya verilir ve sınıflandırıcı bu örnekleri sınıflandırır. Atanan etiketler, orijinal etiketlerle karşılaştırılır ve sınıflandırıcının ne kadar doğru olduğunu ölçmek için kullanılır.
Makine öğrenimi algoritmaları, sayısal verileri analiz eder. Bu nedenle, metin verilerini makine öğrenimi algoritmaları ile kullanmak için, metin verilerini önce sayısal forma dönüştürmek gerekir. Metin verilerini sayısal veri olarak temsil etmek için çeşitli yöntemler vardır ve makine öğrenimi yöntemlerini bu verilere uygulamak için farklı yaklaşımlar vardır. Bunlardan bazılarını aşağıda ele alacağız.
Bag-of-Words
Bag-of-words, metin verilerini kodlamak ve temsil etmek için en sık kullanılan yaklaşımlardan biridir. “Bag-of-words” terimi, tüm kelimelerin bir “torbaya” konulduğu ve kelime sırası veya gramerin dikkate alınmadığı gerçeğinden gelir, sadece kelimelerin sıklığına dikkat edilir. Bu, girdilerdeki tüm kelimelerin bir dizi veya vektöre dönüştürülmesi ile sonuçlanır. Örneğin, girdilerdeki tüm benzersiz kelimelerin sayısı 10.000 ise, özellik vektörleri 10.000 kelimelik olacaktır. Bu, kelime torbasının veya özellik vektörünün boyutunun nasıl hesaplandığını gösterir.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Özellik vektörünün boyutu belirlendikten sonra, tüm belgelerin her birine kendi vektörü atanır ve bu vektör, her bir belgede her kelimenin kaç kez göründüğünü gösteren sayılar ile doldurulur. Yani, “yemek” kelimesi bir metin belgesinde sekiz kez görünüyorsa, karşılık gelen özellik vektöründe sekiz sayısı olacaktır.
Diğer bir deyişle, tüm benzersiz kelimeler bir torbaya konur ve her belge aynı boyutta bir vektör alır, bu vektörde her kelimenin belgede kaç kez göründüğü gösterilir.
Metin veri setleri genellikle çok sayıda benzersiz kelime içerir, ancak bunların çoğu sık kullanılmaz. Bu nedenle, kelime vektörünü oluşturmak için kullanılan kelimelerin sayısı genellikle belirli bir değere (N) sınırlıdır ve bu nedenle özellik vektörünün boyutu Nx1 olur.
Terim Sıklığı-Ters Belge Sıklığı (TF-IDF)
Bir belgeyi içindeki kelimelere dayanarak temsil etmenin bir başka yolu, Terim Sıklığı-Ters Belge Sıklığı (TF-IDF) olarak adlandırılan yöntemdir. TF-IDF yaklaşımı da bir vektör oluşturur, ancak Bag-of-words’a göre kelimelerin sadece sıklığına değil, aynı zamanda belgenin konusuna olan önemine de dikkat eder. Diğer bir deyişle, TF-IDF, kelimelerin ilgiliğini analiz eder ve bu kelimelerin belge konusuna ne kadar önemli olduğunu ölçmeye çalışır.
TF-IDF yaklaşımı, önce bir terimin bir belgedeki sıklığını hesaplar, yani bir kelimenin bir belgede kaç kez göründüğünü sayar. Ancak TF-IDF, aynı zamanda çok yaygın kelimelerin, seperti “the”, “or”, ve “and” gibi kelimelerin etkisini sınırlar, çünkü bu kelimeler çok yaygın ancak belgenin içeriği hakkında çok az bilgi verir. Bu kelimelerin etkisini azaltmak için, ters belge sıklığı kullanılır. Bir kelimenin ne kadar çok belgede görünürse, o kadar az önemlidir, çünkü o kelime belgeyi diğer belgelerden ayırt etmede o kadar az yararlıdır. TF-IDF formülü, kelimelerin önemini hesaplamak için tasarlanmıştır ve bu formül, kelimelerin hem sıklığını hem de ilgiliğini dikkate alır.
TF-IDF yaklaşımı tarafından oluşturulan özellik vektörleri, normalize edilmiş değerler içerir ve bu değerler toplamı 1’e eşittir, her kelimeye ağırlıklı bir değer atanır, bu değer TF-IDF formülü tarafından hesaplanır.
Kelime Gömme
Kelime gömme, metin verilerini temsil etmenin bir başka yöntemidir ve bu yöntemde, anlamları benzer kelimelere benzer sayısal temsil edilir.
Kelime gömme, kelimeleri gerçel değerli vektörler olarak temsil eder, yani kelimeleri bir vektör uzayında gösterir. Bu vektörler, bir ızgarada veya matriste bulunurlar ve yön ve büyüklük (veya büyüklük) sahip olurlar. Kelimeleri vektörler olarak temsil etmek, makine öğrenimi algoritmalarının kelimeler arasındaki karmaşık ilişkileri öğrenmesini sağlar.
Kelime gömme, kelimelerin anlamlarını yakalar, çünkü kelimelerin nasıl kullanıldığına bağlı olarak benzer anlamlara sahip kelimeler benzer vektörlere sahip olurlar. Bu, bir kelime gömme yaklaşımının, bir cümle içindeki kelimelerin bağlamını daha iyi yakalayabilmesini sağlar.
Örneğin, bir kelime gömme yaklaşımı, “kral” ve “kraliçe” kelimeleri arasında bir ilişki kurabilir, çünkü bu kelimeler benzer anlamlara sahiptir.
Kelime gömme için çeşitli algoritmalar ve yaklaşımlar vardır. En yaygın ve güvenilir kelime gömme yöntemleri arasında, gömme katmanları, Word2Vec ve GloVe bulunur.
Gömme Katmanları
Kelime gömme ile makine öğrenimi/deep öğrenimi sistemi kullanmanın bir yolu, gömme katmanlarını kullanmaktır. Gömme katmanları, derin öğrenimi katmanlarıdır ve kelimeleri gömmelere dönüştürür, bu gömmeler daha sonra derin öğrenimi sistemine verilir. Kelime gömme, ağın eğitimi sırasında öğrenilir.

Bir kelime gömme yaklaşımında, benzer kelimeler benzer temsil edilir ve birbirlerine yakındırlar.
Gömme katmanlarını kullanmak için, metin verilerini önce ön işleme tabi tutmak gerekir. Belgedeki metin, önce sıcak kodlanmalıdır ve vektör boyutu önceden belirlenmelidir. Sıcak kodlanmış metin, daha sonra kelime vektörlerine dönüştürülür ve bu vektörler makine öğrenimi modeline verilir.
Word2Vec
Word2Vec, kelime gömme için başka bir yaygın yöntemdir. Word2Vec, kelimeleri gömmelere dönüştürmek için istatistiksel yöntemler kullanır ve sinir ağları tabanlı modeller ile kullanım için optimize edilmiştir. Word2Vec, Google (GOOGL ) araştırmacıları tarafından geliştirilmiştir ve en yaygın kullanılan gömme yöntemlerinden biridir, çünkü güvenilir ve zengin gömmeler sağlar. Word2Vec temsilileri, dilin anlamsal ve sözdizimsel ortaklıklarını yakalar.
Örneğin, “kral” ve “kraliçe” kelimeleri arasındaki ilişki, Word2Vec tarafından yakalanabilir, çünkü bu kelimeler benzer anlamlara sahiptir.
Word2Vec temsilileri, kelimelerin anlamlarını ve kullanımlarını yakalar, bu nedenle bu temsililer, metin sınıflandırma görevleri için yararlıdır.
GloVe
GloVe, veya Global Vektör için Kelime Temsili, Word2Vec tarafından kullanılan gömme algoritmalarını geliştirir. GloVe, Word2Vec ve matris faktörleme teknikleri gibi Latent Semantic Analysis’nin bir kombinasyonunu kullanır. Word2Vec’in avantajı, bağlamı yakalayabilmesidir, ancak bu, global metin istatistiklerini yakalayamamasının bir ticaretidir. GloVe, her iki yaklaşımın en iyilerini birleştirir ve global metin istatistiklerine dayalı kelime bağlamı oluşturur.












