bien, así que he estado siguiendo estos dos puestos en TF * IDF, pero estoy algo confundido: http://css.dzone.com/articles/machine-learning-text-featureTF * IDF para consultas de búsqueda
Básicamente, quiero crear una consulta de búsqueda que contiene las búsquedas a través de múltiples documentos. Me gustaría usar el kit de herramientas scikit-learn así como la biblioteca NLTK para Python
El problema es que no veo de dónde vienen los dos vectores TF * IDF. Necesito una consulta de búsqueda y varios documentos para buscar. Calculé que calculo los puntajes TF * IDF de cada documento con cada consulta y encuentro la similitud del coseno entre ellos, y luego los clasifico ordenando los puntajes en orden descendente. Sin embargo, el código no parece generar los vectores correctos.
Cada vez que reduzco la consulta a solo una búsqueda, devuelve una enorme lista de 0, lo que es realmente extraño.
Aquí está el código:
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()
Me preguntaba si calculó el coseno usando la matriz final que obtiene de print tfidf.todense() en caso afirmativo, ¿cómo lo hace? –
Hola, un segundo ... Pronto publicaré un ejemplo. – tabchas
Gracias eso sería fantástico. ¿Estaría poniendo un enlace aquí ...? Eso es aún mejor. –