好的,所以我一直在关注 TF*IDF 上的这两个帖子,但有点困惑:http ://css.dzone.com/articles/machine-learning-text-feature
基本上,我想创建一个搜索查询,其中包含对多个文档的搜索。我想使用 scikit-learn 工具包以及 Python 的 NLTK 库
问题是我看不到这两个 TF*IDF 向量来自哪里。我需要一个搜索查询和多个文档来搜索。我想我会针对每个查询计算每个文档的 TF*IDF 分数,并找到它们之间的余弦相似度,然后通过按降序对分数进行排序来对它们进行排名。但是,代码似乎没有提出正确的向量。
每当我将查询减少到只有一次搜索时,它就会返回一个巨大的 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()