TF*IDF für Suchanfragen

Okay, so habe ich die folgenden zwei Beiträge auf TF*IDF, bin aber etwas verwirrt : http://css.dzone.com/articles/machine-learning-text-feature

Im Grunde, ich möchte erstellen Sie eine Suchanfrage enthält, durchsucht mehrere Dokumente. Ich möchte die scikit-learn-toolkit sowie die Bibliothek NLTK für Python

Das problem ist, dass ich nicht sehen, wo die beiden TF*IDF-Vektoren stammen. Ich brauche eine Abfrage, die mehrere Dokumente zu suchen. Ich dachte mir, dass ich die Berechnung der TF*IDF-scores jedes Dokument gegen jede Abfrage und finden Sie die Kosinus-ähnlichkeit zwischen Ihnen, und dann ordnen Sie Sie durch Sortieren der Werte in absteigender Reihenfolge. Aber der code scheint nicht zu kommen mit den richtigen Vektoren.

Immer wenn ich reduziere die Abfrage auf nur eine Suche, es ist wieder eine riesige Liste von 0, das ist wirklich seltsam.

Hier ist der code:

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()
  • Ich Frage mich, wenn Sie berechnet den Cosinus mit der endgültigen matrix, dass Sie aus der print-tfidf.todense() wenn ja, wie machst du das?
  • Hey, eine Sekunde... Ill post ein Beispiel bald.
  • Danke, das wäre fantastisch. Möchten Sie dabei sein, einen link hier..? Das ist sogar besser.
  • Auf meiner GitHub Seite: github.com/tabchas -- Der code ist unter Disco-Search-Query. Ich bin versucht zu implementieren Sie eine Suche für Wikipedia, aber jetzt gibt es eine simpletfidf.py die Datei sollte das sein, was du suchst.
  • Danke, ich werde auf jeden Fall sehen, denn ich bin eigentlich auf der Zusammenstellung von Dokumenten basierend auf einige der google-Suche also ich habe immer noch paar Fragen. Aber hier ist was ich getan habe, basiert auf der ersten-code: ich habe Kredit gegeben, um Ihre erste Antwort mit link stackoverflow.com/questions/12118720/...
  • Oh genial... vielleicht können wir gemeinsam ein ähnliches Projekt! Können wir vielleicht chat auf Skype? Benutzername: robomanager
  • ja auf jeden Fall habe ich ich habe mit wikipedia-Daten vor, so dass auf jeden Fall. Ich werde sehen, ob Ihre Implementierung und mir gibt die gleiche Antwort.
  • lassen Sie uns weiter, diese Diskussion im chat

InformationsquelleAutor tabchas | 2012-08-11
Schreibe einen Kommentar