Posiadaj korpus ponad miliona dokumentów
Dla danego dokumentu chcesz znaleźć podobne dokumenty przy użyciu cosinus jak w modelu przestrzeni wektorowej
Wszystkie tf zostały znormalizowane przy użyciu zwiększonej częstotliwości, aby zapobiec tendencyjności do dłuższych dokumentów, jak w tym tf-idf :
Wstępnie obliczone wszystkie
Miej wstępnie obliczone wartości mianownika.
Więc dla danego musisz zdobyć ponad 1 milion
Mieć próg 0,6 cosinusa dla podobieństwa d 1 d 2
Widzę to dla danego istnieje dość wąski zakres | | d 2 | | dla cosinusa ≥ 0,6
Na przykład w jednym poszukiwaniu podobnego dla cosinusa ≥ 0,6 i a | | d 1 | | z 7,7631 następnie | | d 2 | | zakres od 7,0867 do 8,8339
Gdzie poza progiem cosinus 0,6 | | d 2 | | Zakres od do 0,7223 do 89,3395
Było to przy standardowej normalizacji dokumentów TF Patrzy się
na DUŻO które nie mają szans na dopasowanie cosinus 0.6
Na koniec pytanie:
Dla dawania i cosinus> = 0,6, w jaki sposób można określić zakres | | d 2 | | które mają szansę?
Które | | d 2 | | czy mogę bezpiecznie wyeliminować?
Wiem też liczbę terminów w i d 2 jeśli jest określenie zakresu count.
Poprzez eksperymenty
i | | d 2 | | < | | d 1 | | / .8
wydaje się bezpieczny, ale mam nadzieję, że istnieje zasięg, który okazał się bezpieczny
Utworzono kilka przypadków testowych z bardzo niektórymi unikalnymi terminami, niektóre nie tak wyjątkowe i niektóre wspólne. Rzeczywiście, możesz wziąć najbardziej unikalny termin i zwiększyć tę częstotliwość w porównaniu. Licznik pójdzie w górę (iloczyn skalarny), a zatem porówna || i otrzyma cosinus bardzo blisko 1.
Rodzaj pokrewny, a NIE pytanie.
Używam również tf-idf do grupowania dokumentów w grupy. Baza klientów, w której sprzedaję, jest przyzwyczajona do bliskich grup duplikatów. Podchodzę do podobnego podejścia i wyglądam na najmniejszą liczbę terminów i oceniam ją względem liczby terminów do 3x. Zatem liczba wyrażeń 10 wynosi 10 do 30 (4-9 już strzelało do 10). Tutaj mogę sobie pozwolić na pominięcie jednego z nich w innym. Skończyłem 10%, a największy stosunek to 1,8.
Proszę zidentyfikować błędy w niniejszej analizie
Jak podkreślił AN6U5 istnieje luka w niniejszej analizie
To już nie jest cosinus jeśli dokument jest znormalizowane na ważona
A jak podkreślił Mathew nie można również stwierdzić d1⋅d2≤d1⋅d1
jestem jeszcze nadzieję na coś dać mi ciężko, ale ludzie związani że wydaje się wiedzieć takie rzeczy mówią mi, nie
nie chcę zmienić pytanie tak po prostu zignorować to
zrobię jakąś analizę i może odpowiedzieć na pytanie osobnego dokumentu normalizacji
dla celem tego pytania jest założenie, że dokument jest znormalizowany na surowym tf
Przepraszam, ale po prostu nie jestem dobry z tym, co kiedykolwiek znaczniki są używane do tworzenia równań
Więc w mojej notacji
|| d1 || = sqrt (suma (w1 x w1))
d1 kropka d2 = suma (w1 X w2)
Załóżmy, że d1 jest krótszym dokumentem
Najlepszą d1 kropką d2, którą można osiągnąć, jest d1 kropka d1
Jeśli d1 jest małżeństwem 100 paul 20
I d2 jest małżeństwem 100 paul 20 peter 1
Znormalizowany
d1 jest małżeństwem 1 paul 1/5
d2 jest w związku małżeńskim 1 paul 1/5 peter 1/100
Wyraźnie wyjdź w związek małżeński i paul mają ten sam idf w obu dokumentach
Najlepsze możliwe d1 kropka d2 to d1 kropka d1
Maksymalne możliwe dopasowanie do d1 to d1
cos = d1 kropka d1 / || d1 || || d2 ||
kwadrat po obu stronach
cos X cos = (d1 kropka d1) X (d1 kropka d1) / ((d1 kropka d1) X (d2 kropka d2)) cos X cos = (d1 kropka d1) / (d2 kropka d2)
weź kwadrat pierwiastek z obu stron
cos = || d1 || / || d2 ||
wynosi || d2 || nie jesteś związany cos?
Jeśli tylko użyję || d2 || > = cos || d1 || i || d2 || <= || d1 || / cos Dostaję potrzebną prędkość obliczeniową
źródło
Odpowiedzi:
Niestety matematyka upraszcza pokazanie, że nie można rygorystycznie uzasadnić ograniczenia porównania podobieństwa cosinusów wektorów na podstawie ich długości.
Kluczową kwestią jest to, że metryka podobieństwa cosinus normalizuje się na podstawie długości, tak że uwzględniane są tylko wektory jednostkowe. Wiem, że niekoniecznie była to odpowiedź, której chciałeś, ale matematyka wyraźnie pokazuje, że wskaźniki podobieństwa cosinus są agnostyczne do długości wektora.
Spójrzmy na matematykę bardziej szczegółowo:
Stosujesz metrykę podobieństwa cosinus i wymagasz, aby ta metryka była większa niż 0,6:
.
Ale długości skalarne na dole można podzielić na powyższe produkty krzyżowe (właściwość dystrybucyjna):
.
Teraz i B są wektory, które zmierzają w tym samym kierunku, A i B , ale które zostały znormalizowane do długości jeden. Zatem definicją metryki podobieństwa cosinus jest wzięcie oryginalnych wektorów, znormalizowanie ich do długości jednego, a następnie zmierzenie iloczynu wektorów jednostkowych.A^ B^ A B
W związku z tym:
zależy tylko od orientacji wektorów, a nie od ich wielkości (tj. długości).
Pogodzenie tego z tym, co robisz:
Pomimo tego, co pokazują wyniki algebry liniowej, być może nadal widzisz statystycznie znaczący wynik. W praktyce może się okazać, że statystyki pokazują, że ograniczenia długości obowiązują dla twoich danych. Na przykład może się okazać, że tweety nigdy nie mają podobieństwa cosinusowego porównaniu z „Wojną i pokojem” Tołstoja. Jeśli twoje statystyki wyglądają dobrze na używanie | | d 2 | | > .8 | | d 1 | | i | | d 2 | | < | | d 1 | |≥0.6 ||d2||>.8||d1|| następnie sugeruję, abyś poszedł z tym, ponieważ tego rodzaju ograniczenia czaszy są bardzo przydatne w oszczędzaniu czasu obliczeniowego.||d2||<||d1||/.8
Być może możesz pogodzić to, co robiłeś z pomiarami odległości, biorąc również pod uwagę odległość euklidesową. Tam, gdzie podobieństwo cosinusu zwraca tylko wartość od -1 do 1 w oparciu o kąt między dwoma wektorami, odległości euklidesowe zwrócą wartości, które zależą od długości dwóch wektorów. W pewnym sensie łączysz aspekty odległości euklidesowej z podobieństwem cosinus.
Dość rozsądne jest wymaganie, aby długości względne nie przekraczały 25% w tym sensie, że łączy to aspekt odległości euklidesowej w celu utworzenia zadaszeń grupowych, co skraca czas obliczeń, a następnie można zastosować agnostyczne podobieństwo kosinusa długości jako ostateczny wyznacznik.
Zauważ, że 1 / .8 = 1,25, więc d2> =. 8d1 jest bardziej restrykcyjnym ograniczeniem niż d2 <= d1 / .8. Sugeruję użycie d2> =. 75d1 i d2 <= 1,25d1, ponieważ jest to symetryczne.
Mam nadzieję że to pomoże!
źródło
Aby przejść przez algebrę, pozwól, że przedstawię jeszcze kilka terminów (i zmień nazwy niektórych na krótsze):
źródło
Wysyłam odpowiedź, ale wyraźnie przyznam premię komuś innemu
Myślę, że istnieje maksymalny licznik, jeśli dokument tf jest znormalizowany
d1⋅d2 / (|| d1 |||| d2 ||)
Załóżmy, że d1 ma takie same lub mniej terminów (lub po prostu weź d z mniejszymi terminami)
Maksymalna możliwa znormalizowana tf wynosi 1,
więc maksymalna możliwa suma licznika (tf1, i * idf, i * 1 * idf, i)
|| d2 || = suma (tf1, i * idf, i * 1 * idf, i) / || d1 || / .6
Jeśli chodzi o minimum, pracuję nad tym, ale oczywiście istnieje minimum.
Jeśli masz zamiar dopasować, będziesz miał || d ||
źródło