Verwenden von TF-IDF mit anderen Funktionen in SKLearn

8

Was ist der beste / richtige Weg, um Textanalyse mit anderen Funktionen zu kombinieren? Zum Beispiel habe ich einen Datensatz mit Text, aber auch anderen Funktionen / Kategorien. Der TF-IDF-Vektorisierer von SKlearn wandelt Textdaten in spärliche Matrizen um. Ich kann diese spärlichen Matrizen zum Beispiel direkt mit einem Naive Bayes-Klassifikator verwenden. Aber wie können auch die anderen Funktionen berücksichtigt werden? Sollte ich die tf-idf-Darstellung des Textes entsparsifizieren und die Funktionen und den Text in einem DataFrame kombinieren? Oder kann ich die Sparse-Matrix beispielsweise als separate Spalte behalten? Was ist der richtige Weg, um dies zu tun?

lte__
quelle

Antworten:

6

Scikit-Learn der FeatureUnion verkettet Funktionen aus verschiedenen vectorizers. Ein Beispiel für die Kombination heterogener Daten, einschließlich Text, finden Sie hier .

Brian Spiering
quelle
Der Link ist abgelaufen!
Abhishek Raj
Link aktualisiert auf aktuelle Version von scikit-learn.
Brian Spiering
3

Wenn möglich, möchten Sie Ihre Matrice normalerweise so lange wie möglich spärlich halten, da dies viel Speicherplatz spart. Deshalb gibt es doch spärliche Matrizen, sonst warum sich die Mühe machen? Selbst wenn Ihr Klassifizierer die Verwendung dichter Eingaben erfordert, möchten Sie möglicherweise die TFIDF-Funktionen als spärlich beibehalten und die anderen Funktionen in einem spärlichen Format hinzufügen. Und nur dann machen Sie die Matrix dicht.

Dazu können Sie scipy.sparse.hstack verwenden . Es kombiniert zwei spärliche Matrizen nach Spalten. scipy.sparse.vstack existiert ebenfalls. Und natürlich hat scipy auch die nicht spärlichen Versionen scipy.hstack und scipy.vstack

Valentin Calomme
quelle