さて、私はTF * IDFに関するこれらの2つの投稿をフォローしていますが、少し混乱しています:http: //css.dzone.com/articles/machine-learning-text-feature
基本的に、複数のドキュメントの検索を含む検索クエリを作成したいと思います。scikit-learnツールキットとPython用のNLTKライブラリを使用したい
問題は、2つのTF*IDFベクトルがどこから来ているのかわからないことです。検索するには、1つの検索クエリと複数のドキュメントが必要です。各クエリに対する各ドキュメントのTF*IDFスコアを計算し、それらの間の余弦の類似性を見つけてから、スコアを降順で並べ替えてランク付けすることを考えました。ただし、コードは正しいベクトルを考え出していないようです。
クエリを1回の検索に減らすと、0の膨大なリストが返されますが、これは非常に奇妙なことです。
コードは次のとおりです。
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()