2012-11-21 17 views
17

Metin sınıflandırması için noktasal olarak karşılıklı bilgileri nasıl hesaplayacağını merak ediyordum. Daha kesin olmak gerekirse, kategorilerde tweetleri sınıflandırmak istiyorum. Bir tweet veri kümem var (açıklamalı) ve bu kategoriye ait sözcük kategorisine göre bir sözlüğe sahibim. Bu bilgiler ışığında, bu kategorilerden birinde bir tweet sınıflandırmak için, her bir tweet için her bir kategori için PMI'yi nasıl hesaplamak mümkündür.Metnede karşılıklı olarak karşılıklı bilgiler

cevap

25

PMI, bir belge (tweet) ile bir kategori arasında değil, bir özellik (bir sözcükte) ve bir sınıf (kategori) arasındaki ilişkinin ölçüsüdür. Formül Wikipedia geçerli: bu formülde

    P(x, y) 
pmi(x ,y) = log ------------ 
        P(x)P(y) 

, X modelleyen bir kelime meydana getiren, Y modelleri bir sınıf oluşumu rastgele değişkendir. Verilen bir kelime için x ve verilen bir sınıf y için, bir özelliğin bilgilendirici olup olmadığına karar vermek için PMI'yi kullanabilir ve özellik seçimini bu temelde yapabilirsiniz. Daha az özelliğe sahip olmak, genellikle sınıflandırma algoritmanızın performansını artırır ve önemli ölçüde hızlandırır. Bununla birlikte, sınıflandırma aşaması ayrıdır-PMI sadece öğrenme algoritmanızı beslemek için daha iyi özellikler seçmenize yardımcı olur.


Düzenleme: orijinal sonrası söz etmedi Bir şey PMI kelime frekanslara duyarlı olmasıdır. o kadar pmi(x,y) = 1/P(x),

x ve y mükemmel ilişkilidir
    P(x, y)    P(x|y) 
pmi(x ,y) = log ------------ = log ------------ 
        P(x)P(y)    P(x) 

, P(x|y) = P(y|x) = 1 olarak formülünü yeniden yazılmalı. Daha az sıklıkta x -es (kelimeler), her ikisi de y ile mükemmel bir şekilde ilişkilendirilse bile, sık sık x -es'den daha yüksek bir PMI puanına sahip olacaktır.

+0

Bir takip soru. "X kelimesinin ortaya çıkmasını sağlayan rasgele değişken" diyorsunuz. Tüm veri kümesinde bu kaç kez kelime oluşur? Örneğin. 250.000 cümle var, x o zaman bütün veri kümesinde ne kadar kelime var? P peki (x, y) bunu nasıl yorumlamalıyım? Bir cümlede x ve y zamanları bir arada mı oluşur? – Ojtwist

+10

'P (x)', kelime içeren belgelerin sayısı ile toplam belge sayısı arasındaki orantı olan 'x' (küçük harf) kelimesinin olasılığıdır. 'P (y)' benzer bir şekilde hesaplanan sınıf (kategori) 'y' olasılığıdır. 'P (x, y)', 'y' etiketinin her ikisi de * olan ve 'x' sözcüğünü ve toplam belge sayısını içeren belge sayısı arasındaki oran. – mbatchkarov

+0

Sayımların sayısına göre bölünerek sayıları normalleştirmeniz gerekiyor mu? Farklı bir pmi() numarası aldığınızı biliyorum, fakat farklı çiftler (X, Y) arasındaki göreceli pmi() aynı kalıyor ve pmi'nin gerçek değeri, herhangi bir şeyin doğru olmadığı anlamına gelmiyor mu? Pmi'leri farklı belge kümeleriyle karşılaştırdığımızda normalleştirmenin sadece yararlı olduğunu görebiliyorum (farklı belge sayıları ile) – kane

İlgili konular