Ich habe ein Dokumentklassifizierungsprojekt, bei dem ich den Inhalt der Website erhalte und der Website dann eine von zahlreichen Beschriftungen entsprechend dem Inhalt zuweise.
Ich fand heraus, dass tf-idf dafür sehr nützlich sein könnte. Ich war mir jedoch nicht sicher, wann ich es genau verwenden sollte.
Die Annahme, dass eine Website, die sich mit einem bestimmten Thema befasst, wiederholt erwähnt wird, war mein aktueller Prozess:
- Rufen Sie den Inhalt der Website ab und analysieren Sie ihn im Klartext
- Normalisieren und Stamminhalt
- Token in Unigramme (vielleicht auch Bigramme)
- Rufen Sie eine Zählung jedes Unigramms für das angegebene Dokument ab, indem Sie Wörter mit geringer Länge und geringem Vorkommen filtern
- Trainieren Sie einen Klassifikator wie NaiveBayes für die resultierende Menge
Meine Frage lautet wie folgt: Wo würde tf-idf hier hineinpassen ? Vor dem Normalisieren / Stemming? Nach dem Normalisieren aber vor dem Tokenisieren? Nach dem Tokenisieren?
Jeder Einblick wäre sehr dankbar.
Bearbeiten:
Bei näherer Betrachtung habe ich möglicherweise ein Missverständnis darüber, wie TF-IDF funktioniert. Müsste ich bei dem oben beschriebenen Schritt 4, den ich beschreibe, die gesamten Daten auf einmal in TF-IDF einspeisen? Wenn meine Daten beispielsweise wie folgt lauten:
[({tokenized_content_site1}, category_string_site1),
({tokenized_content_site2}, category_string_site2),
...
({tokenized_content_siten}, category_string_siten)}]
Hier ist die äußerste Struktur eine Liste, die Tupel, ein Wörterbuch (oder eine Hashmap) und eine Zeichenfolge enthält.
Müsste ich die gesamten Daten sofort in den TF-IDF-Rechner einspeisen, um den gewünschten Effekt zu erzielen? Insbesondere habe ich mir den scikit-learn TfidfVectorizer angesehen, um dies zu tun, aber ich bin mir ein bisschen unsicher, wie er verwendet wird, da Beispiele ziemlich spärlich sind.
({tokenized content}, category)
. Da ich die Trainings-Set-Websites in einer Datenbank habe und bereits kategorisiert habe, ist dies kein Problem. Die Bezeichnungen, die der Klassifizierer anwenden kann, sind nur die, die er aus dem kommentierten Trainingssatz gesehen hat, richtig?