Estaba siguiendo un tutorial que estaba disponible en Part 1 & Part 2 lamentablemente autor no tenía tiempo para el tramo final que implica el uso del coseno para realmente encontrar la similitud entre dos documentos . Seguí los ejemplos en el artículo con la ayuda del siguiente enlace desde stackoverflow He incluido el código que se menciona en el enlace anterior solo para que las respuestas sean fáciles.Python: TF-IDF-coseno: encontrar similitud de documentos
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from nltk.corpus import stopwords
import numpy as np
import numpy.linalg as LA
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)
#print vectorizer
transformer = TfidfTransformer()
#print transformer
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
print transformer.transform(trainVectorizerArray).toarray()
transformer.fit(testVectorizerArray)
print
tfidf = transformer.transform(testVectorizerArray)
print tfidf.todense()
como resultado del código anterior he siguiendo matriz
Fit Vectorizer to train set [[1 0 1 0]
[0 1 0 1]]
Transform Vectorizer to test set [[0 1 1 1]]
[[ 0.70710678 0. 0.70710678 0. ]
[ 0. 0.70710678 0. 0.70710678]]
[[ 0. 0.57735027 0.57735027 0.57735027]]
No estoy seguro de cómo utilizar esta salida para calcular la similitud del coseno, sé cómo poner en práctica el respeto similitud del coseno de dos vectores con longitud similar, pero aquí no estoy seguro de cómo identificar los dos vectores.
Para cada vector en trainVectorizerArray, debe encontrar la similitud del coseno con el vector en testVectorizerArray. – excray
@excray Gracias, con su punto de ayuda que logro resolver, ¿debería dar la respuesta? –
@excray Pero tengo una pequeña pregunta, el cálculo reall tf * idf no tiene ningún uso para esto, porque no estoy usando los resultados finales que se muestran en la matriz. –