LSA bağlantılar:
İşte tam bir algoritmadır. Eğer SVD varsa, orada bir şekilde çoğu vardır. Kağıtları Yukarıdaki benden daha iyi açıklayacağım.
Varsayımlar:
- Değilse your SVD function will give the singular values and singular vectors in descending order., daha akrobasi yapmak zorunda.
M: (satır, d sütunları w) d (belgeler) tarafından (kelime) w korpus matrisi,. Bu ham sayar, ya TFIDF ya da her neyse olabilir. Stopwords veya ortadan olmayabilir, ve sıkılama ne olabilir (Landauer stopwords tutmak ve kök yok diyor, ama evet TFIDF için).
U,Sigma,V = singular_value_decomposition(M)
U: w x w
Sigma: min(w,d) length vector, or w * d matrix with diagonal filled in the first min(w,d) spots with the singular values
V: d x d matrix
Thus U * Sigma * V = M
# you might have to do some transposes depending on how your SVD code
# returns U and V. verify this so that you don't go crazy :)
Daha sonra reductionality .... asıl LSA kağıt bazında için çok yakın bir değer göstermektedir tekil değerler tekil değerlerin toplamının% 50'den fazla olduğu şekilde yeterli vektörleri tutmaktır.
Daha succintly ... (pseudocode)
Let s1 = sum(Sigma).
total = 0
for ii in range(len(Sigma)):
val = Sigma[ii]
total += val
if total > .5 * s1:
return ii
Bu daha önce min (d, w) idi yeni temeli rütbe, iade edecek ve biz şimdi yaklaşık edeceğiz {} ii.
(Burada, '-> asal, devrik değil)
Boyutları wx ii, ii x ii, ve ii x d, 'Sigma' V 'U: Biz yeni matrisleri oluşturmak.
Bu LSA algoritması özüdür.
Elde edilen bu matris U '* Sigma'nın' * V geliştirilmiş 'kosinüs benzerliği arama' için kullanılabilir ', ya da, örneğin onun içinde her bir belge için ilk 3 kelime seçebilirsiniz. Bu basit bir tf-idf daha bazı tartışma konusudur yeilds olsun.
Benim için, LSA nedeniyle anlamlılık arasında kötü gerçek dünya veri setleri gerçekleştirir ve veri çok konularda ayarlar. Bu olasılık / matematiksel temeli (bu kelime sayım için mantıklı değil (Gauss) dağılımlar, normal ish varsayar) sağlıksızdır bulunuyor.
Sizin kilometre kesinlikle değişecektir.
Tagging using LSA (one method!)
U 'Sigma'nın' V SVD kullanarak 'boyutsal azaltılmış matrisler ve bir azaltma sezgisel Construct
Elle, U 'matris üzerinden bakmak ve her bir "konu" açıklayan terimlerden ile geldi. Bu vektörün büyük parçaları vardı Örneğin, "Bronx, Yankees, Manhattan," daha sonra "New York" bunun için iyi bir dönem olabilir. Bir ilişkisel dizi veya listesinde bu tutun. Vektörlerin sayısı sonlu olacaktır çünkü bu adım, makul olmalıdır.
Bir belge için bir kelime vektörü (v1) varsayarsak, o zaman v1 * t (U ') bu belge için konu' güçlü verecektir '. Önceki adımda hesaplanan 3 en yüksek seçin, sonra da "konu" vermek.