Tamam, biraz kafam karıştı. Ancak bu basit ve basit bir soru olmalıdır. Arama karşı en benzer belgeyi almak içinTF-IDF Basit Kullanım - NLTK/Scikit Öğren
array([[ 0.85..., 0. ..., 0.52...],
[ 1. ..., 0. ..., 0. ...],
[ 1. ..., 0. ..., 0. ...],
[ 1. ..., 0. ..., 0. ...],
[ 0.55..., 0.83..., 0. ...],
[ 0.63..., 0. ..., 0.77...]])
nasıl bu sonucu kullanırım:
tüm korpus karşı Belgenin TF-IDF Matrix hesapladıktan sonra, bu çok benzer bir sonuç elde sorgu? Temel olarak Wikipedia için bir arama çubuğu yeniden oluşturmaya çalışıyorum. Bir arama sorgusuna dayanarak, Wikipedia'dan en alakalı makaleleri dönmek istiyorum. Bu senaryoda, 6 makale (satır) vardır ve arama sorgusu 3 sözcük (sütun) içerir.
Tüm sonuçları sütunlarda mı ekliyorsunuz yoksa tüm satırları mı ekliyorsunuz? En büyük değer en alakalı mı yoksa en uygun olan en düşük değer mi?
Aslında bu eğiticiyi takip ediyorum: http: //pyevolve.sourceforge.net/wordpress/? P = 1589 ... Anlamsız olan, orijinal makalelerle arama sorgusu arasında TF-IDF Vektörlerinin nasıl kullanılacağıdır . – tabchas
Eğer ağırlıklandırma şeması olarak tf-idf kullanıyorsanız, hala sorgunuzu normalleştirmek istersiniz. Matrisiniz, tümü sorguda temsil edilen üç terim içerir; Bu nedenle, sorgudaki ham frekans vektörü (1,1,1) 'dir. sqrt ((1^2) + (1^2) + (1^2)) = 1,73 ve 1/1,73 = 0,57. Yani sorgu vektörünüz (0,57,0,57,0,57). Artık sorguyu başka bir belge olarak ele alabilirsiniz. Bu sorgu vektörünün ve diğer bazı belge vektörlerinin kosinüs benzerliği nokta ürünüdür. İlk madde için: ((.57 * .85) + (. 57 * 0) + (. 57 * .52)) = 0.2964. Tüm makaleler için en yüksek skoru kazanın. – verbsintransit
Yani bir çeşit sınıflandırıcı eğitmem gerekmiyor mu? – tabchas