Przyrostowy IDF (odwrotna częstotliwość dokumentów)


11

W aplikacji do eksploracji tekstu jednym prostym podejściem jest użycie heurystyki do tworzenia wektorów jako zwartych rzadkich reprezentacji dokumentów. Jest to dobre w przypadku ustawień wsadowych, w których cały korpus jest znany z góry, ponieważ wymaga całego korpusui d ftfidfidf

idf(t)=log|D||{d:td}|

gdzie jest terminem, to dokument, to korpus dokumentu, a (nie pokazano) to słownik.d D TtdDT

Jednak z czasem nowe dokumenty są odbierane. Jedną z opcji jest używanie istniejącego pliku do momentu otrzymania pewnej liczby nowych dokumentów i ponowne jego obliczenie. Wydaje się to jednak dość nieefektywne. Czy ktoś wie o schemacie przyrostowej aktualizacji, który (być może w przybliżeniu) zbiega się do wartości, jeśli wszystkie dane byłyby widoczne z wyprzedzeniem? Albo alternatywnie, czy istnieje inna miara, która obejmuje to samo pojęcie, ale może być obliczana w sposób przyrostowy?idf

Istnieje również powiązane pytanie, czy pozostaje dobrą miarą w czasie. Ponieważ idf przechwytuje pojęcie częstotliwości słowa korpusu, możliwe jest, że starsze dokumenty w korpusie (powiedzmy na przykład, że mój korpus zawiera ponad 100 lat artykułów w czasopismach), ponieważ częstotliwości różnych słów zmieniają się w czasie. W takim przypadku rozsądne może być wyrzucanie starszych dokumentów, gdy pojawiają się nowe, w efekcie za pomocą okna przesuwnego . Można też zapisać wszystkie poprzednie wektory ponieważ nowe są obliczane, a następnie, jeśli chcemy pobrać dokumenty z powiedzmy 1920-1930, moglibyśmy użyć obliczonego z dokumentów w tym zakresie dat. Czy to podejście ma sens?i d f i d f i d fidfidfidfidf

Edit: Jest to odrębne, ale powiązane Emisja o słowniku . W miarę upływu czasu pojawią się nowe terminy słownikowe, które nie pojawiały się wcześniej, więcbędą musiały rosnąć, a zatem długość wektora . Wygląda na to, że nie stanowiłoby to problemu, ponieważ zera można dodawać do starych wektorów .| T | i d f i d fT|T|idfidf


głupie pytanie: Czy przechowywanie mianownika dla każdego t jest problemem? Jak stosunek | t | do | d | wygląda (ogólnie)?
steffen

Przepraszam, może równanie nie jest jasne - to odwrotna częstotliwość dokumentu terminu t, a nie w czasie . Więc w czasie miałbyś wektor długości, tj. rozmiar słownika (który również może ulec zmianie). Dokonam edycji tego efektu. t t | T |idf(t)tt|T|
tdc

1
Zrozumiałem równanie. Moje pytanie brzmiało: jeśli przechowywanie słownika nie stanowi problemu, to: Zamiast przechowywać | T | idfs jeden przechowuje | T | mianowniki (równania) + liczba dokumentów. Aktualizacja przyrostowa nie stanowi wtedy problemu, a identyfikator idf jest obliczany w locie. Mam wrażenie, że coś przeoczyłem.
steffen

Masz na myśli coś takiego: biorąc pod uwagę nowy dokument , jeśli mamy wartość , po prostu dodajemy jeden do mianownikadd:tdt:td
tdc

dokładnie. Jeśli to wykonalne?
steffen

Odpowiedzi:


6

Ok, dziękuję Steffenowi za przydatne komentarze. Myślę, że odpowiedź jest w końcu dość prosta. Jak mówi, wszystko, co musimy zrobić, to zapisać bieżący mianownik (nazwij go ):z

z(t)=|{d:td}|

Biorąc pod uwagę nowy dokument , aktualizujemy mianownik poprzez:d

z(t)=z(t)+{1iftd0otherwise

Musielibyśmy wówczas ponownie obliczyć na podstawie nowego wektora .tfidfidf

Podobnie, aby usunąć stary dokument, zmniejszamy licznik w podobny sposób.

Oznacza to , że albo musimy przechowywać całą macierz , a także macierz (podwajając wymagania dotyczące pamięci), lub musimy obliczać wyniki razie potrzeby (zwiększając koszty obliczeniowe). Nie widzę tego w żaden sposób.t f - i d f t f - i d ftftfidftfidf

W przypadku drugiej części pytania, dotyczącej ewolucji wektorów w czasie, wydaje się, że możemy użyć powyższej metody i przechowywać zestaw „przełomowych” wektorów (mianowników) dla różnych zakresów dat (lub być może podzbiorów treści) . Oczywiście jest gęstym wektorem długości słownika, więc przechowywanie wielu z nich będzie wymagało dużej ilości pamięci; jednak jest to prawdopodobnie lepsze niż ponowne obliczanie wektorów razie potrzeby (co ponownie wymagałoby przechowywania macierzy lub zamiast niej).z z i d f t fidfzzidftf

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.