Okay Arama Sorguları için IDF, bu yüzden TF * IDF bu iki mesajları takip ediyorum, ancak çok az karıştı: http://css.dzone.com/articles/machine-learning-text-featureTF *
Temelde, birden çok belge içinde arama yapar içeren bir arama sorgusu oluşturmak istiyorum. Ben scikit-learn araç setini ve Python
için NLTK kitaplığını kullanmak istiyorum. Sorun şu ki, iki TF * IDF vektörünün nereden geldiğini görmüyorum. Aramak için bir arama sorgusuna ve birden çok dokümana ihtiyacım var. Her bir dokümanın TF * IDF puanlarını her bir sorguya göre hesapladığımı ve aralarındaki kosinüs benzerliğini bulmayı ve puanları azalan düzende sıralayarak sıraladığımı düşündüm. Ancak, kod doğru vektörlerle gelmiyor gibi görünüyor.
Sorguyu yalnızca bir aramaya indirdiğimde, çok garip olan 0'ların büyük bir listesini döndürüyor. İşte
kodudur:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from nltk.corpus import stopwords
train_set = ("The sky is blue.", "The sun is bright.") #Documents
test_set = ("The sun in the sky is bright.") #Query
stopWords = stopwords.words('english')
vectorizer = CountVectorizer(stop_words = stopWords)
transformer = TfidfTransformer()
trainVectorizerArray = vectorizer.fit_transform(train_set).toarray()
testVectorizerArray = vectorizer.transform(test_set).toarray()
print 'Fit Vectorizer to train set', trainVectorizerArray
print 'Transform Vectorizer to test set', testVectorizerArray
transformer.fit(trainVectorizerArray)
print transformer.transform(trainVectorizerArray).toarray()
transformer.fit(testVectorizerArray)
tfidf = transformer.transform(testVectorizerArray)
print tfidf.todense()
Baskı tfidf.todense() öğesinden aldığınız son matrisi kullanarak kosinüsü hesaplarsanız bunu nasıl yapıyorsunuz diye merak ediyordum. –
Hey bir saniye ... Yakında bir örnek göndereceğim. – tabchas
Teşekkürler, bu harika olurdu. Buraya bir link koyar mısınız ..? Bu daha da iyi. –