Va bene, così ho seguito questi due messaggi su TF * IDF ma sto po 'confuso: http://css.dzone.com/articles/machine-learning-text-featureTF * IDF per query di ricerca
Fondamentalmente, voglio creare una query di ricerca che contiene le ricerche attraverso più documenti. Vorrei usare il toolkit scikit-learn e la libreria NLTK per Python
Il problema è che non vedo da dove provengano i due vettori TFF IDF. Ho bisogno di una query di ricerca e più documenti da cercare. Ho calcolato di calcolare i punteggi TFF IDF di ciascun documento rispetto a ogni query e di trovare la similarità del coseno tra di essi, quindi di classificarli ordinando i punteggi in ordine decrescente. Tuttavia, il codice non sembra venire con i giusti vettori.
Ogni volta che riduco la query a una sola ricerca, restituisce un elenco enorme di 0 che è davvero strano.
Ecco il codice:
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()
Mi chiedevo se si calcola il coseno usando la matrice finale che si ottiene dalla stampa tfidf.todense() in caso affermativo come si fa? –
Hey one sec ... Ill poster presto un esempio. – tabchas
Grazie sarebbe fantastico. Vuoi mettere un link qui ..? È anche meglio. –