Wikipedia podaje następujący przykład opisujący skrót funkcji ; ale mapowanie nie wydaje się spójne ze zdefiniowanym słownikiem
Na przykład to
należy przekonwertować na 3
zgodnie ze słownikiem, ale 1
zamiast tego jest zakodowany .
Czy w opisie jest błąd? Jak działa funkcja mieszania funkcji?
Teksty:
John likes to watch movies. Mary likes too. John also likes to watch football games.
można przekonwertować za pomocą słownika
{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}
do matrycy
[[1 2 1 1 1 0 0 0 1 1] [1 1 1 1 0 1 1 1 0 0]]
Jak wskazał Steffen, przykładowa matryca koduje liczbę wystąpień słowa w tekście. Pozycję kodowania w matrycy określa słowo (pozycja kolumny na matrycy) i tekst (pozycja wiersza na matrycy).
Teraz sztuczka haszująca działa w ten sam sposób, chociaż nie musisz początkowo definiować słownika zawierającego pozycję kolumny dla każdego słowa.
W rzeczywistości jest to funkcja skrótu, która da ci zakres możliwych pozycji kolumny (funkcja skrótu da ci minimalną i maksymalną możliwą wartość) oraz dokładną pozycję słowa, które chcesz zakodować w macierzy. Wyobraźmy sobie na przykład, że słowo „polubienia” jest mieszane przez naszą funkcję haszującą do liczby 5674, wówczas kolumna 5674 będzie zawierać kodowanie względem słowa „polubienia”.
W ten sposób nie będziesz musiał budować słownika przed analizą tekstu. Jeśli użyjesz rzadkiej matrycy jako matrycy tekstowej, nie będziesz nawet musiał dokładnie określać, jaki będzie jej rozmiar. Wystarczy zeskanować tekst w locie, aby przekształcić słowa w pozycje kolumny za pomocą funkcji skrótu, a macierz tekstowa zostanie zapełniona danymi (częstotliwościami, tj.) Zgodnie z tym, jaki dokument analizujesz stopniowo (pozycja wiersza).
źródło