Wikipedia bietet das folgende Beispiel für die Beschreibung von Feature-Hashing . Die Zuordnung scheint jedoch nicht mit dem definierten Wörterbuch übereinzustimmen
Zum Beispiel to
sollte 3
entsprechend dem Wörterbuch konvertiert werden , aber es wird 1
stattdessen als codiert .
Gibt es einen Fehler in der Beschreibung? Wie funktioniert Feature-Hashing?
Die Texte:
John likes to watch movies. Mary likes too. John also likes to watch football games.
kann mit dem Wörterbuch konvertiert werden
{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}
zur Matrix
[[1 2 1 1 1 0 0 0 1 1] [1 1 1 1 0 1 1 1 0 0]]
Wie Steffen betonte, codiert die Beispielmatrix die Häufigkeit, mit der ein Wort in einem Text erscheint. Die Position der Codierung in der Matrix wird durch das Wort (Spaltenposition in der Matrix) und durch den Text (Zeilenposition in der Matrix) angegeben.
Jetzt funktioniert der Hashing-Trick genauso, obwohl Sie nicht zunächst das Wörterbuch definieren müssen, das die Spaltenposition für jedes Wort enthält.
Tatsächlich gibt Ihnen die Hashing-Funktion den Bereich möglicher Spaltenpositionen (die Hashing-Funktion gibt Ihnen einen minimalen und maximalen Wert an) und die genaue Position des Wortes, das Sie in die Matrix codieren möchten. Stellen wir uns zum Beispiel vor, dass das Wort "Likes" durch unsere Hashing-Funktion in die Zahl 5674 gehasht wird. Dann enthält die Spalte 5674 die Codierungen relativ zum Wort "Likes".
Auf diese Weise müssen Sie vor der Analyse des Textes kein Wörterbuch erstellen. Wenn Sie eine spärliche Matrix als Textmatrix verwenden, müssen Sie nicht einmal genau definieren, wie groß die Matrix sein muss. Wenn Sie den Text im laufenden Betrieb scannen, konvertieren Sie Wörter mithilfe der Hashing-Funktion in Spaltenpositionen, und Ihre Textmatrix wird entsprechend dem zu analysierenden Dokument (Zeilenposition) mit Daten (Häufigkeiten, dh) gefüllt.
quelle