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

Podobne dokumenty