AI 101
Metin Sınıflandırması Nasıl Çalışır?
Metin sınıflandırma, metin dizilerini analiz etme ve onlara bir etiket atama ve bunları içeriklerine göre bir gruba yerleştirme işlemidir. Metin sınıflandırma, Doğal Dil İşlemeyi (NLP) içeren hemen hemen her yapay zeka veya makine öğrenimi görevinin temelini oluşturur. Metin sınıflandırmayla bir bilgisayar programı, spam tanıma, duygu analizi ve sohbet robotu işlevleri gibi çok çeşitli farklı görevleri gerçekleştirebilir. Metin sınıflandırması tam olarak nasıl çalışır? Metin sınıflandırmasını gerçekleştirmenin farklı yöntemleri nelerdir? Bu soruların cevaplarını aşağıda inceleyeceğiz.
Metin Sınıflandırmasını Tanımlama
Metin sınıflandırmasının farklı yöntemlerine dalmadan önce, genel olarak metin sınıflandırmasının ne olduğunu anladığımızdan emin olmak için biraz zaman ayırmak önemlidir. Metin sınıflandırması, birçok farklı göreve ve algoritmaya uygulanan terimlerden biridir, bu nedenle gerçekleştirilebileceği farklı yolları keşfetmeye geçmeden önce metin sınıflandırmasının temel kavramını anladığımızdan emin olmak faydalıdır.
Metin için farklı kategoriler oluşturmayı ve ardından farklı metin örneklerini bu kategoriler olarak etiketlemeyi içeren her şey, metin sınıflandırması olarak kabul edilebilir. Bir sistem bu temel adımları uyguladığı sürece, metni sınıflandırmak için kullanılan kesin yöntemden ve sonunda metin sınıflandırıcının nasıl uygulandığından bağımsız olarak, bir metin sınıflandırıcı olarak kabul edilebilir. E-posta istenmeyen postasını algılama, belgeleri konuya veya başlığa göre düzenleme ve bir ürün için yapılan incelemenin duygusunu tanıma, metin sınıflandırmasına örnektir çünkü bunlar, metni bir girdi olarak alıp o metin parçası için bir sınıf etiketi çıkararak gerçekleştirilir.
Metin Sınıflandırması Nasıl Çalışır?

Fotoğraf: Flickr aracılığıyla Quinn Dombrowski, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
Çoğu metin sınıflandırma yöntemi, üç farklı kategoriden birine 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ış dilbilimsel kuralların kullanımıyla çalışır. Sistem, belirli bir metin parçasının hangi sınıfa ait olması gerektiğini belirlemek için mühendis tarafından oluşturulan kuralları kullanır ve anlamsal olarak ilgili metin öğeleri biçimindeki ipuçlarını arar. Her kuralın, metnin karşılık gelen kategoriye yerleştirilmesi için eşleşmesi gereken bir kalıbı vardır.
Daha somut olmak gerekirse, hava durumu, filmler veya yemek gibi genel konuşma konularını ayırt edebilen bir metin sınıflandırıcı tasarlamak istediğinizi varsayalım. Metin sınıflandırıcınızın hava durumu tartışmasını tanımasını sağlamak için, beslendiği metin örneklerinin gövdesinde hava durumuyla ilgili kelimeleri aramasını söyleyebilirsiniz. Konuyu ayırt etmek için kullanılabilecek anahtar kelimeler, kelime öbekleri ve diğer alakalı kalıpların bir listesine sahip olacaksınız. Örneğin, sınıflandırıcıya "rüzgar", "yağmur", "güneş", "kar" veya "bulut" gibi kelimeleri aramasını söyleyebilirsiniz. Daha sonra sınıflandırıcının giriş metnine bakmasını ve bu kelimelerin metnin gövdesinde kaç kez geçtiğini saymasını sağlayabilirsiniz ve eğer bunlar filmlerle ilgili kelimelerden daha yaygın görünüyorsa, metni hava durumu sınıfına ait olarak sınıflandırırsınız.
Kural tabanlı sistemlerin avantajı, girdi ve çıktılarının insanlar tarafından öngörülebilir ve yorumlanabilir olması ve mühendis tarafından manuel müdahale ile iyileştirilebilmesidir. Bununla birlikte, kurallara dayalı sınıflandırma yöntemleri de biraz kırılgandır ve yalnızca programlanmış önceden tanımlanmış kalıplara bağlı kalabildikleri için genellikle genelleme yapmakta zorlanırlar. Örnek olarak, "bulut" kelimesi ortamdaki neme atıfta bulunabilir. gökyüzü veya verilerin depolandığı bir dijital buluttan bahsediyor olabilir. Kural tabanlı sistemlerin, mühendisler bu incelikleri manuel olarak tahmin etmeye ve ayarlamaya oldukça fazla zaman harcamadan bu nüansları ele alması zordur.
Makine Öğrenimi Sistemleri
Yukarıda bahsedildiği gibi, kural tabanlı sistemlerin işlevleri ve kuralları önceden programlanmış olması gerektiğinden sınırlamaları vardır. Buna karşılık, makine öğrenimi tabanlı sınıflandırma sistemleri, belirli bir sınıfla ilişkilendirilmiş modeller için veri kümelerini analiz eden algoritmalar uygulayarak çalışır.
Makine öğrenimi algoritmaları, ilgili özellikler için analiz edilen önceden etiketlenmiş/önceden sınıflandırılmış örneklerle beslenir. Bu önceden etiketlenmiş örnekler, eğitim verileridir.
Makine öğrenimi sınıflandırıcısı, eğitim verilerini analiz eder ve farklı sınıflarla ilişkili kalıpları öğrenir. Bundan sonra, görünmeyen örneklerin etiketleri çıkarılır ve örneklere bir etiket atayan sınıflandırma algoritmasına beslenir. Atanan etiketler daha sonra makine öğrenimi sınıflandırıcısının ne kadar doğru olduğunu görmek için orijinal etiketlerle karşılaştırılır ve modelin hangi kalıpların hangi sınıfları tahmin ettiğini ne kadar iyi öğrendiği ölçülür.
Makine öğrenimi algoritmaları, sayısal verileri analiz ederek çalışır. Bu, metin verilerinde bir makine öğrenimi algoritması kullanmak için metnin sayısal bir formata dönüştürülmesi gerektiği anlamına gelir. Metin verilerini sayısal veriler olarak kodlamanın ve bu veriler etrafında makine öğrenmesi yöntemleri oluşturmanın çeşitli yöntemleri vardır. Aşağıda metin verilerini temsil etmenin farklı yollarından bazılarını ele alacağız.
Sözcük Torbası
Kelime torbası metin verilerini kodlamak ve temsil etmek için en yaygın kullanılan yaklaşımlardan biridir. "Kelime torbası" terimi, esasen belgelerdeki tüm kelimeleri alıp, kelime sırasına veya dilbilgisine dikkat etmeden, yalnızca kelimelere dikkat ederek hepsini tek bir "torbaya" koymanız gerçeğinden gelir. kelimelerin sıklığı çantada. Bu, girdi belgelerindeki tüm sözcüklerin tek bir temsilini içeren uzun bir dizi veya vektörle sonuçlanır. Dolayısıyla, giriş belgelerinde toplam 10000 benzersiz kelime varsa, özellik vektörleri 10000 kelime uzunluğunda olacaktır. Kelime çantası/özellik vektörünün boyutu bu şekilde hesaplanır.

Fotoğraf: Machinelearning.co aracılığıyla gk_, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Özellik vektörü boyutu belirlendikten sonra, toplam belgeler listesindeki her belgeye, söz konusu kelimenin mevcut belgede kaç kez geçtiğini gösteren sayılarla dolu kendi vektörü atanır. Bu, "yemek" kelimesinin bir metin belgesinde sekiz kez geçmesi durumunda karşılık gelen özellik vektörünün/özellik dizisinin karşılık gelen konumunda sekiz olacağı anlamına gelir.
Başka bir deyişle, giriş belgelerinde görünen tüm benzersiz kelimeler tek bir torbaya yığılır ve ardından her belge aynı boyutta bir kelime vektörü alır ve bu daha sonra farklı kelimelerin belgede kaç kez göründüğü ile doldurulur. .
Metin veri kümeleri genellikle çok sayıda benzersiz kelime içerir, ancak bunların çoğu çok sık kullanılmaz. Bu nedenle, kelime vektörünü oluşturmak için kullanılan kelime sayısı tipik olarak seçilen bir değerle (N) sınırlandırılır ve ardından özellik vektörü boyutu Nx1 olur.
Terim Frekansı-Ters Belge Frekansı (TF-IDF)
Bir belgeyi içindeki kelimelere göre temsil etmenin başka bir yolu da dublajdır. Terim Frekansı-Ters Belge Frekansı (TF-IDF). Bir TF-IDF yaklaşımı, belgeyi içindeki sözcüklere dayalı olarak temsil eden bir vektör de oluşturur, ancak Sözcük Torbası'ndan farklı olarak bu sözcükler, sıklıklarından daha fazlasına göre ağırlıklandırılır. TF-IDF, belgelerdeki kelimelerin önemini dikkate alır ve bu kelimenin belgenin konusuyla ne kadar ilgili olduğunu ölçmeye çalışır. Diğer bir deyişle, TF-IDF, sıklık yerine alaka düzeyini analiz eder ve bir özellik vektöründeki kelime sayıları, tüm veri setine göre hesaplanan bir TF-IDF puanı ile değiştirilir.
Bir TF-IDF yaklaşımı, önce terim sıklığını, yani benzersiz terimlerin belirli bir belgede kaç kez göründüğünü hesaplayarak çalışır. Bununla birlikte, TF-IDF, "the", "or" ve "ve" gibi son derece yaygın sözcüklerin etkisini sınırlamaya da özen gösterir, çünkü bu "stopwords" çok yaygın olmakla birlikte belgenin içeriği hakkında çok az bilgi verir. TF-IDF'nin "ters belge sıklığı" bölümünün ifade ettiği şey, bu kelimelerin dikkate alınmaması gerektiğidir. Bunun nedeni, belirli bir kelimenin ne kadar çok belgede yer alıyorsa, o kelimenin onu tüm belgeler listesindeki diğer belgelerden ayırt etmede o kadar az kullanışlı olmasıdır. TF-IDF'nin bir kelimenin önemini hesaplamak için kullandığı formül, en sık kullanılan ve anlamsal olarak en zengin kelimeleri korumak için tasarlanmıştır.
TF-IDF yaklaşımı tarafından oluşturulan özellik vektörleri, her kelimeye TF-IDF formülü tarafından hesaplandığı şekilde ağırlıklı bir değer atayan, toplamı bir olan normalleştirilmiş değerler içerir.
Kelime Gömülü
kelime yerleştirmeleri benzer anlamlara sahip kelimelerin benzer sayısal temsillere sahip olmasını sağlayan metni temsil etme yöntemleridir.
kelime yerleştirmeleri kelimeleri "vektörleştirerek" çalışır, yani kelimeleri bir vektör uzayında gerçek değerli vektörler olarak temsil ederler. Vektörler bir ızgara veya matris içinde bulunur ve bir yönleri ve uzunlukları (veya büyüklükleri) vardır. Kelimeler vektör olarak temsil edilirken, kelimeler gerçek değerlerden oluşan vektörlere dönüştürülür. Her kelime bir vektöre eşlenir ve anlam bakımından benzer kelimelerin yönü ve büyüklüğü benzerdir. Bu tür bir kodlama, bir makine öğrenimi algoritmasının sözcükler arasındaki karmaşık ilişkileri öğrenmesini mümkün kılar.
Söz konusu kelimelerin kullanım şekline göre farklı kelimeleri temsil eden gömmeler oluşturulur. Benzer şekillerde kullanılan sözcükler benzer vektörlere sahip olacağından, sözcük yerleştirme oluşturma işlemi sözcüklerin sahip olduğu bazı anlamları otomatik olarak çevirir. Bir kelime torbası yaklaşımı, aksine, oldukça benzer bağlamlarda kullanılsalar bile farklı kelimelerin farklı temsillere sahip olacağı kırılgan temsiller oluşturur.
Sonuç olarak, kelime yerleştirmeleri bir cümle içindeki kelimelerin bağlamını yakalamada daha iyidir.
Kelime gömmeleri oluşturmak için kullanılan farklı algoritmalar ve yaklaşımlar vardır. En yaygın ve güvenilir kelime gömme yöntemlerinden bazıları şunlardır: katıştırma, word2vec ve GloVe.
Katmanları Gömmek
Bir makine öğrenimi/derin öğrenme sisteminin yanı sıra kelime gömmelerini kullanmanın potansiyel yollarından biri, gömme katmanı kullan. Gömme katmanları, kelimeleri daha sonra derin öğrenme sisteminin geri kalanına beslenen katıştırmalara dönüştüren derin öğrenme katmanlarıdır. Gömülü kelime, ağ belirli bir metin tabanlı görev için eğitilirken öğrenilir.

Bir kelime gömme yaklaşımında, benzer kelimeler benzer temsillere sahip olacak ve birbirine benzemeyen kelimelerden daha yakın olacaktır.
Gömme katmanlarını kullanmak için önce metnin önceden işlenmesi gerekir. Belgedeki metin tek geçişli olarak kodlanmalıdır ve vektör boyutunun önceden belirtilmesi gerekir. Daha sonra sıcak metin kelime vektörlerine dönüştürülür ve vektörler makine öğrenimi modeline geçirilir.
Word2Vec
Word2Vec kelimeleri gömmenin başka bir yaygın yöntemidir. Word2Vec, kelimeleri gömmelere dönüştürmek için istatistiksel yöntemler kullanır ve sinir ağı tabanlı modellerle kullanım için optimize edilmiştir. Word2Vec, Google araştırmacıları tarafından geliştirilmiştir ve kullanışlı, zengin yerleştirmeler sağladığından en sık kullanılan gömme yöntemlerinden biridir. Word2Vec gösterimleri, dildeki anlamsal ve sözdizimsel ortaklıkları belirlemek için kullanışlıdır. Bu, Word2Vec temsillerinin benzer kavramlar arasındaki ilişkileri yakaladığı, "King" ve "Queen" arasındaki ortaklığın kraliyet olduğunu ve "King"in "erkekliği", Queen'in "Kadınlığı" ima ettiğini ayırt edebildiği anlamına gelir.
Eldiven
GloVE veya Kelime Temsili için Global Vektör, Word2Vec tarafından kullanılan gömme algoritmalarını temel alır. GloVe gömme yöntemleri, hem Word2Vec'in hem de Latent Semantic Analysis gibi matris çarpanlarına ayırma tekniklerinin özelliklerini birleştirir. Word2Vec'in avantajı, bağlamı yakalayabilmesidir, ancak bir değiş tokuş olarak, genel metin istatistiklerini yetersiz bir şekilde yakalar. Tersine, geleneksel vektör temsilleri, genel metin istatistiklerini belirlemede iyidir, ancak kelimelerin ve kelime öbeklerinin bağlamını belirlemede kullanışlı değildir. GloVE, her iki yaklaşımın en iyilerinden yararlanarak, küresel metin istatistiklerine dayalı sözcük bağlamı oluşturur.