TF *IDF для поисковых запросов

Итак, я следил за этими двумя сообщениями на TF *IDF, но немного запутался:http://css.dzone.com/articles/machine-learning-text-feature

По сути, я хочу создать поисковый запрос, содержащий поиск по нескольким документам. Я хотел бы использовать инструментарий обучения scikit -, а также библиотеку NLTK для Python

. Проблема в том, что я не вижу, откуда берутся два вектора 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()

15
задан tabchas 11 August 2012 в 02:44
поделиться