Erstellen Sie ein TF-IDF-Matrix-Python-3.6
Habe ich 100 Dokumente(Jedes Dokument ist eine einfache Liste von Wörtern in diesem Dokument). Ich möchte jetzt erstellen Sie ein TF-IDF-matrix so, dass ich eine kleine Wort-Suche von Rang. Ich versuchte es mit einem tfidfVectorizer aber verlor sich in der syntax. Jede Hilfe wäre sehr geschätzt werden. Grüße.
Bearbeiten: ich wandelte die Listen in strings und fügte Sie in einer übergeordneten Liste:
vectorizer = TfidfVectorizer(vocabulary=word_set)
matrix = vectorizer.fit_transform(doc_strings)
print(matrix)
Hier word_set ist der Satz möglich, verschiedene Worte und doc_strings ist eine Liste, die enthält jedes Dokument als string, Aber wenn ich die matrix drucken, bekomme ich die Ausgabe wie folgt :
(0, 839) 0.299458532286
(0, 710) 0.420878518454
(0, 666) 0.210439259227
(0, 646) 0.149729266143
(0, 550) 0.210439259227
(0, 549) 0.210439259227
(0, 508) 0.210439259227
(0, 492) 0.149729266143
(0, 479) 0.149729266143
(0, 425) 0.149729266143
(0, 401) 0.210439259227
(0, 332) 0.210439259227
(0, 310) 0.210439259227
(0, 253) 0.149729266143
(0, 216) 0.210439259227
(0, 176) 0.149729266143
(0, 122) 0.149729266143
(0, 119) 0.210439259227
(0, 111) 0.149729266143
(0, 46) 0.210439259227
(0, 26) 0.210439259227
(0, 11) 0.149729266143
(0, 0) 0.210439259227
(1, 843) 0.0144007295367
(1, 842) 0.0288014590734
(1, 25) 0.0144007295367
(1, 24) 0.0144007295367
(1, 23) 0.0432021886101
(1, 22) 0.0144007295367
(1, 21) 0.0288014590734
(1, 20) 0.0288014590734
(1, 19) 0.0288014590734
(1, 18) 0.0432021886101
(1, 17) 0.0288014590734
(1, 16) 0.0144007295367
(1, 15) 0.0144007295367
(1, 14) 0.0432021886101
(1, 13) 0.0288014590734
(1, 12) 0.0144007295367
(1, 11) 0.0102462376715
(1, 10) 0.0144007295367
(1, 9) 0.0288014590734
(1, 8) 0.0288014590734
(1, 7) 0.0144007295367
(1, 6) 0.0144007295367
(1, 5) 0.0144007295367
(1, 4) 0.0144007295367
(1, 3) 0.0144007295367
(1, 2) 0.0288014590734
(1, 1) 0.0144007295367
Ist das richtig und Wenn ja, wie kann ich die Suche für den Rang eines Wortes in einem bestimmten Dokument.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code funktioniert Prima. Ich gebe ein Beispiel mit ein paar Sätzen. Hier ein Satz entspricht einem Dokument. Hoffentlich helfen Sie.
Den
print()
Anweisung gibt Folgendes aus:Also, wie können wir interpretieren diese matrix? Sie können sehen, ein Tupel
(x, y)
und einen Wert in jeder Zeile. Hier die Tupel repräsentiert, Dokument-Nr. (in diesem Fall Satz nicht.) und verfügen über keine.Besser zu verstehen, können drucken, die Liste der features (in unserem Fall die Funktionen sind Wörter) und Ihren index.
It-Ausgänge:
So,
welcome to stackoverflow my friend
Satz transformiert wird, die folgende.Beispielsweise die ersten beiden Zeilen Werte können wie folgt interpretiert werden.
Aus der tf-idf-Werten können Sie sehen, die Worte
welcome
undto
sollte einen höheren Rang als die anderen Wörter im Satz 1.Erweitern zu können, diesem Beispiel zu suchen, die für den Rang von einem bestimmten Wort in einem bestimmten Satz oder Dokument zu erfüllen Ihr Bedürfnis.