Kelime çantası modeli

Örnek

Burada bir metin belgesini kelime çantası kullanarak modelliyoruz.
İşte iki tane basit metin belgesi:
(1) Can film seyretmeyi sever. Meryem de filmleri sever.
(2) Can futbol maçı seyretmeyi de sever.
Bu iki metin belgesine dayanarak şöyle bir liste oluşturulur:
[
    "Can",
    "film",
    "futbol",
    "maçı",
    "seyretmeyi",
    "sever",
    "Meryem",
    "de",
    "filmleri"]

Uygulama

Pratik kullanımda kelime çantası modeli çoğu zaman özellik üretme aracı olur.
Metni "kelime çantasın" dönüştürdükten sonra, metnin karakterini verecek çeşitli nicelikler hesaplayabiliriz. Kelime çantası modelinden hesaplanan en yaygın karakteristik tipi ya da özellik, terim sıklığıdır, yani o terimin metinde kaç kez geçtiğidir. Yukarıdaki örnekte her bir ayrı kelimenin terim sıklıklarını şu iki listeyi oluşturarak kaydedebiliriz.
(1) [1, 1, 0, 0, 1, 2, 1, 1, 1](2) [1, 0, 1, 1, 1, 1, 0, 1, 0]
Listelerdeki her bir girdi listedeki mütekabil girdinin sayısını belirtir (buna histogram temsili de denir). Örneğin, birinci (belge 1'i temsil eden) listede, ilk iki girdi "1,2"dir. İlk girdi "Can" kelimesine tekabül eder, o da listedeki ilk kelimedir, ve değeri "1"dir çünkü "Can" birinci belgede 1 kere geçer. Bunun gibi, ikinci girdi "film" kelimesine tekabül eder, o da listedeki ikinci kelmedir, ve değeri "1"dir çünkü "film" ilk belgede 1 kere geçer. Bu liste (ya da vektör) temsili kelimelerin kaynak cümlelerdeki sırasını muhafaza etmez, bu da kelime çantası modelinin temel özelliğidir. Bu tür temsillerin birçok başarılı uygulaması vardır, örneğin e-posta filtreleme.
Fakat terim sıklıkları illa ki en iyi metin temsili değildir. "O", "bir", "ve" gibi yaygın kelimeler neredeyse hep metindeki en yüksek terim sıklığına sahiptir, demek ki çok sayıda olmak tekabül eden kelimenin daha önemli olduğunu göstermez. Bu problemi ele alarak terim sıklıklarını "normalleştirmenin" en sevilen yollarından birisi, terimleri belge sıklığının tersiyle ağırlıklandırmaktır, buna da tf-idf denir. Buna ek olarak, sınıflandırma amacına yönelik belgenin sınıf etiketini dikkate alan süpervizeli alternatifler geliştirilmiştir. Son olarak, bazı problemlerde sıklıklar yerine ikili (varlık/yokluk ya da 1/0) ağırlıklar kullanılır.  (Mesela WEKA makine öğrenmesi yazılım sisteminde bu seçenek konmuştur.)

N-gram modeli

Kelime çantası modeli sırasız bir belge temsilidir—kelimelerin sadece sayısına bakılır. Mesela yukarıdaki örnekte "Can film seyretmeyi sever. Meryem de filmleri sever", kelime çantası modeli bu metinde her cümlenin "sever" yüklemiyle bittiğini ortaya çıkarmayacaktır. Alternatif olarak, metindeki bu uzamsal enformasyonu saklamakta n-gram modeli kullanılabilir. Yukarıdaki aynı örneğe uygulanarak, bigram modeli metni şu birimlere çözdürecek ve her birimdeki terim sıklıklarını önceki gibi saklayacaktır.
[
    "Can film",
    "film seyretmeyi",
    "seyretmeyi sever",
    "Meryem de",
    "de filmleri",
    "filmleri sever"]
Kavram olarak kelime çantası modelini n-gram modelin n=1 için özel durumu gibi görebiliriz. Daha detaylı tartışma dil modelinde okunabilir.

Karım dolabı [Hashing trick]

Sözlük kullanımının yaygın bir alternatifi karım dolabıdır: kelimeler doğrudan bir karım işleviyle [hashing function] endekslere eşlenir.  Kelimelerin endekslere bir karım işleviyle doğrudan eşlenmesiyle, sözlük saklayacak belleğe hiç gerek kalmaz. Karım çakışmaları olduğunda çoğu zaman boşaltılmış bellek kullanılarak karım kovalarının sayısı çoğaltılır. Pratikte, karım, kelime çantası modellerinin kodlanmasını müthiş basitleştirir ve ölçeklenebilirliğini geliştirir.

Örnek kullanım: spam süzgeci

Bayesci spam süzgecinde, e-posta mesajı iki olasılık dağılımının birinden seçilen kelimelerin sırasız derlemesi gibi modellenir: biri spamleri, öbürü meşru e-postaları ("ham") temsil eder. Kelimelerle dolu iki tane çanta hayal edin. Çantaların biri spam mesajlarda bulunan kelimelerle doludur, diğer çanta meşru e-postalarda bulunan kelimelerle doludur. Verilen herhangi bir kelimenin iki çantada da bulunması muhtemel olsa da, "spam" çantası "borsa", "Viagra", "satın al" gibi spamvari kelimeleri çok daha sıklıkla içerecektir, "ham" çantası ise kullanıcının arkadaşları ve işyeriyle ilgili kelimeleri daha çok içerecektir.
E-posta mesajını sınıflandırmak için, Bayesci spam süzgeci bu mesajın iki çantanın birinden rastgele dökülmüş bir kelimeler yığını olduğunu varsayar, ve Bayesci olasılıkları kullanarak hangi çantanın daha muhtemel olduğunu belirler.