Wie berechnet man TF * IDF für ein einzelnes neues Dokument, das klassifiziert werden soll?

Ich verwende Dokumenttermvektoren, um eine Sammlung von Dokumenten darzustellen. ich benutzeTF * IDF um das Termgewicht für jeden Dokumentvektor zu berechnen. Dann könnte ich diese Matrix verwenden, um ein Modell für die Dokumentklassifizierung zu trainieren.

Ich freue mich darauf, zukünftig neue Dokumente zu klassifizieren. Aber um es zu klassifizieren, muss ich das Dokument zuerst in einen Dokumenttermvektor umwandeln, und der Vektor sollte auch aus TF * IDF-Werten bestehen.

Meine Frage ist, wie kann ich den TF * IDF mit nur einem Dokument berechnen?

Soweit ich weiß, kann TF auf der Grundlage eines einzelnen Dokuments selbst berechnet werden, aber der IDF kann nur mit einer Sammlung von Dokumenten berechnet werden. In meinem aktuellen Experiment berechne ich tatsächlich den TF * IDF-Wert fürganze Sammlung von Dokumenten. Und dann benutze ichetwas Dokumente als Trainingsset unddie Anderen als Testset.

Mir ist plötzlich klar geworden, dass dies im wirklichen Leben nicht so zutreffend zu sein scheint.

ADD 1

Es gibt also zwei subtil unterschiedliche Szenarien für die Klassifizierung:

um einige Dokumente zu klassifizieren, deren Inhalt bekannt ist, deren Bezeichnung jedoch nicht bekannt ist.um ein völlig unsichtbares Dokument zu klassifizieren.

Für 1 können wir kombinierenalle die Dokumente, sowohl mit als auch ohne Etiketten. Und holen Sie sich den TF * IDF über alle.Auf diese Weise verwenden wir auch nur die Dokumentemit Etiketten Für das Training enthält das Trainingsergebnis weiterhin den Einfluss der Dokumenteohne etiketten.

Aber mein Szenario ist 2.

Angenommen, ich habe die folgenden Informationen für den BegriffT aus der Zusammenfassung derAusbildung Korpus setzen:

Dokumentenzahl für T im Trainingssatz istnDie Gesamtzahl der Schulungsunterlagen beträgtN

Soll ich die IDF von t für a berechnen?ungesehen Dokument D wie unten?

IDF (t, D) = log ((N + 1) / (n + 1))

HINZUFÜGEN 2

Und was ist, wenn ich im neuen Dokument auf einen Begriff stoße?was zuvor nicht im Trainingskorpus auftauchte? Wie soll ich das Gewicht dafür im doc-term-Vektor berechnen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage