Elementy sztucznej inteligencji.
Transkrypt
Elementy sztucznej inteligencji.
Elementy sztucznej inteligencji. Modyfikacje metody FDS Wstęp Artykuł ten zawiera opis kilku pomysłów usprawniających metodę Fourier Domain Scoring (w skrócie FDS), służącą analizowaniu i indeksowaniu dokumentów oraz wyszukiwaniu dokumentów najlepiej pasujących do zadanego pytania. W metodzie FDS dzielimy dokument na komórki (zwykle na osiem komórek) i zliczamy ilość wystąpień poszczególnych słów w kolejnych komórkach. Dzięki temu otrzymujemy zbiór wektorów opisujących analizowany dokument - pojedynczy wektor opisuje tutaj występowanie pojedynczego słowa w danym dokumencie. Ostatecznie wektory te są przekształcane za pomocą Transformaty Fouriera. Od tego momentu odpowiadając na pytanie - “czy dany dokument dobrze odpowiada pewnemu zapytaniu ?” - nie musimy już analizować całego dokumentu. Wystarczy, że zbadamy obliczone wcześniej wektory opisujące ten dokument. Kluczem w FDS jest to, że na podstawie wektorów opisujących dokument jesteśmy w stanie bardzo szybko stwierdzić, czy występujące w zapytaniu wyrazy występują w analizowanym dokumencie w fazie (mówiąc prościej – czy występują blisko siebie). Jeśli tak, to możemy uznać, że są one ze sobą powiązane (w przypadku tego dokumentu) i dokument ten powinien zostać wysoko oceniony (gdyż dobrze odpowiada zadanemu pytaniu). Dlaczego FDS nie jest optymalne FDS w ogóle nie zwraca uwagi na wygląd danego dokumentu – na to, jak dany dokument jest odbierany przez człowieka. Człowiek w pierwszej kolejności zwraca uwagę na tytuł oraz inne wytłuszczone, podkreślone lub napisane większą czcionką fragmenty. Metoda licząca punkty nie może pomijać tego ważnego aspektu. Ponadto autorzy FDS dzielili badane dokumenty na osiem komórek – starając się, aby w każdej komórce była taka sama liczba słów. A zatem dokonywali sztywnego podziału dokumentu. Każdy dokument był dzielony na z góry założoną liczbę komórek, a do tego wszystkie komórki (w obrębie danego dokumentu) miały stałą wielkość. Powoduje to jednak 'głupie podziały' – rozcinanie pojedynczych akapitów czy zdań. Przykładowo gdyby w analizowanym dokumencie wystąpił fragment “... Omawiając zawody Formuły1 nie można zapomnieć o konstruktorach. Najlepszą stajnią tych mistrzostw Formuły1 okazało *** się Ferrari – wraz ze swoim najlepszym kierowcą M. Schumacherem, Ferrari było nie do pokonania ... ” oraz został on podzielony w miejscu oznaczonym gwiazdkami ***, to metoda FDS wskazała by, że słowa Formuły1 oraz Ferrari nie są ze sobą w fazie. Dokument otrzymał by stosunkowo niewiele punktów przy zapytaniu typu “Ferrari Formuły1”. Rozwiązaniem problemu występowania głupich podziałów może być zastosowanie inteligentnego podziału dokumentu na komórki. Podział taki powinien wykorzystywać fakt podzielenia dokumentu (przez jego autora) na akapity, rozdziały czy choćby zdania. Aby analizę danego dokumentu (oraz ocenę jego dopasowania do zadanego pytania) uczynić bardziej podobną do analizy jaką przeprowadził by człowiek, należy wprowadzić wagi ważności danego słowa w zależności od tego, w którym miejscu dokumentu pojawia się (oczywiście o wiele ważniejsze będzie słowo występujące w tytule dokumentu, niż gdzieś w środku trzeciego akapitu). W tym momencie należy zwrócić uwagę na to, że zastosowanie inteligentnego podziału oraz zróżnicowanego punktowania słów nie wpłynie negatywnie na szybkość działania metody. Jedyne dodatkowe obciążenie wystąpi na etapie analizy dokumentu – jednak jest ona wykonywana tylko raz, a ponadto nie jest zbyt istotne jak szybko przebiega. W momencie odpowiadania na pytanie użytkownika (czyli wtedy, gdy liczy się czas) metoda FDS z inteligentnym podziałem działa tak samo szybko jak zwykłe FDS. Jak dzielić, aby było dobrze Po pierwsze wykorzystywać podział dokumentu na akapity i zdania. Czyli unikać głupich podziałów. Należy zwracać uwagę na występowanie w dokumencie: – pustych linii – wcięć (czasem tak oznaczamy początek akapitu) – kropek (możliwe wykrycie podziału na zdania) – przecinków i myślników (być może okażą się przydatne...) Warto jest także rozpoznawać zdania wyraźnie oddzielone od reszty i zapisane w widoczny sposób (podkreślenie, wytłuszczenie, większa czcionka, kursywa, ...). Prawdopodobnie są to tytuły (możemy rozpoznać tytuł całego dokumentu, oraz tytuły poszczególnych części). Tytuł powinien być analizowany albo jako osobna komórka (mała, ale ważna), albo razem z fragmentem, który po nim następuje. Prawdopodobnie nie należy określać tego na stałe, a w zależności od konkretnego dokumentu. Przykładowo gdy tytuł poprzedza długi fragment tekstu (podzielony na np. 5 innych komórek) to powinien być potraktowany jako osobna komórka. Gdy jednak tytuł poprzedza krótki fragment tekstu, to może warto połączyć go razem z tym tekstem w jednej komórce. Co do ilości komórek na jakie należy starać się podzielić każdy dokument, to myślę, że najlepiej było by uzyskiwać wyniki w okolicach 8. A zatem większość dokumentów (powiedzmy o rozmiarach jednej czy dwóch stron) była by dzielona na mniej więcej 4 do 15 komórek. Zakładam, że istniały by jednak dokumenty dzielone nawet na 30 komórek – gdyby dotyczyło to jakiegoś długiego (np. dziesięć stron) dokumentu, w którym taki podział wynikał by wprost z zastosowanych w nim akapitów. Należy także zauważyć, że po wprowadzeniu inteligentnego dzielenia, różne komórki będą miały różną długość (w standardowym FDS wszystkie osiem komórek miało porównywalną długość – przynajmniej biorąc pod uwagę ilość wyrazów w poszczególnych komórkach). Myślę jednak, że należy się starać, aby komórki miały w obrębie jednego dokumentu podobną długość (tzn. największa komórka nie powinna być więcej niż trzy razy większa od najmniejszej). Czy uległo zmianie tworzenie wektorów opisujących dokument ? Poza zmianą wynikającą z podziału dokumentu na różną ilość komórek istnieje jeszcze jeden nowy element – przyznawanie różnych wag pojedynczym słowom w zależności od tego w jakim miejscu się pojawiają (tytuł lub zwykły tekst) oraz w zależności od tego jak są zapisane (zwykła czcionka, a może jakoś specjalnie pogrubiona lub mniejsza/większa w stosunku do reszty). Trzeba zauważyć, że o ile w zwykłym FDS obliczenie wektorów następowało w jednej fazie – w zmodyfikowanej wersji jest to już proces przebiegający w dwóch fazach. W pierwszej fazie określamy podział dokumentu na komórki (wyszukujemy optymalnego podziału), a dopiero przebiegając po dokumencie następny raz zliczamy odpowiednie słowa. Wynikiem pierwszej fazy, poza pozycjami w których należy dokonać podziału na poszczególne komórki, jest jeszcze określenie typu poszczególnych komórek. Komórka składająca się jedynie z tytułu (czyli fragmentu, o którym stwierdziliśmy, że jest tytułem) powinna być inaczej oznaczona niż komórka zawierająca zwykły tekst. Druga faza polega natomiast na odpowiednim zliczeniu słów. Wykorzystujemy przy tym wyniki pierwszej fazy (znane punkty podziału oraz typy komórek), ale także zwracamy uwagę na: – wielkość czcionki – kolor czcionki (to też może wyróżniać pewien fragment tekstu) – podkreślenia, pogrubienia i (być może) kursywę Jak już wcześniej wspomniałem, przy inteligentnym podziale na komórki – różne komórki będą miały różną długość. Należy to także uwzględnić. Opis typu komórki określany w pierwszej fazie powinien zawierać informację o długości danej komórki (ilości wyrazów w niej). W drugiej fazie należy natomiast wykorzystywać tą informację do lepszego określania wagi dla poszczególnych słów. A co z metodami liczenia punktów ? Początkowo mogło by się wydawać, że zmianie (w stosunku do zwykłego FDS) uległo jedynie tworzenie wektorów opisujących badany dokument – natomiast samo obliczanie punktów (wskazujące jak dobrze dokument odpowiada zapytaniu) na podstawie wektorów pozostało takie jak w pierwszej wersji FDS. Tak jednak nie jest. Badane dokumenty są dzielone na różne ilości komórek. W zwykłym FDS gdy mieliśmy stwierdzić czy dokument A lepiej odpowiada na pytanie niż dokument B, zawsze było wiadomo, że oba dokumenty są opisane za pomocą wektorów tej samej długości (oba były podzielone na taką samą ilość komórek). W wersji z inteligentnym podziałem prawdopodobnie oba dokumenty nie będą podzielone na taką samą ilość komórek. Przy obliczaniu punktów dostajemy jako konkurujące ze sobą dokumenty podzielone na różne ilości komórek - metoda musi oceniać je 'obiektywnie'. A zatem należy wykorzystywać metody stabilne ze względu na ilość komórek. Przykładowo niedopuszczalne jest zastosowanie metody DotProduct opisanej dla standardowego FDS – w jej wypadku dokument podzielony na 10 komórek dostał by prawdopodobnie więcej punktów niż podobny dokument podzielony na 5. Ta metoda zdecydowanie lepiej ocenia dokumenty podzielone na większą liczbę komórek. Kwestie sporne i problemy ** Pomimo istnienia inteligentnego podziału na komórki jedna rzecz pozostaje jeszcze nie wykorzystana. Chodzi o sytuację, gdy pewien fragment tekstu podzielimy w następujący sposób: [komórka n] [komórka n+1] [komórka n+2] Tytuł długiego fragmentu Pierwsza część tekstu pod tytułem Druga część tekstu pod tytułem. Oczywiste jest, że te trzy komórki są ze sobą powiązane. Dla człowieka, który analizował by ten dokument powiązanie to było by bardzo istotne. Jednak zaproponowana metoda nie wykorzystuje tego faktu. Daniel Dusiński Łódź 2004