Projekt Intelligent Indexering Uppdragsgivare: Harald Kjellin, Institutionen för Data och Systemvetenskap, KTH Deltagare i projektgruppen: Biörklund, Mathias webside ansvarig Erneholm, Mattias vice projektledare Gustrin, Mattias projektledare Mankert, Lotta sekreterare Pettersson, Ove dokumentansvarig Widén, Jacob dokumentansvarig www-dokumentation: http://www.nada.kth.se/projects/proj01/intdex/
INNEHÅLLSFÖRTECKNING PROJEKTSAMMANFATTNING...3 PROJEKTPRESENTATION...4 BAKGRUND...4 Problembeskrivning...4 Syfte...4 SAMARBETE OCH ROLLER...4 FUNKTION AV APPLIKATION...6 Datormiljö...6 Användare...6 ANVÄNDARGRÄNSSNITT...7 Huvudfönster...7 Settings...8 KÖREXEMPEL...9 2 (9)
Projektsammanfattning Sökmotorernas utveckling är avgörande för Internets utveckling. För att finna vad man söker krävs effektiva sökhjälpmedel. Idag finns flera olika typer av sökmotorer. Ingen av dessa hjälper dock användaren effektivt i sökandet om denne inte har god kännedom om de nyckelord som finns dokumenten som eftersöks. Applikationen Intdex löser framtida indexeringsproblem. Detta projekt har utmynnat i en applikation som indexerar sajter efter diskriminerande ord och par av dessa. Programmet är tänkt att användas av sökmotorer på Internet. Utvecklingsarbetet inom projektgruppen har fungerat mycket bra. Projektet delades in i tre faser och gruppen i tre delgrupper där respektive delgrupp var huvudinriktade på att arbeta med en av faserna. Även samarbetet med uppdragsgivaren har fungerat bra. I början av projektet gjorde vi en riskanalys där vi värderad hr stor sannolikheten var att riskerna skulle inträffa och hur effekt detta skulle kunna tänkas få rå projektarbetet. Ingen av de risker vi tog med i riskanalysen inträffade. Däremot fick vi ett helt oförutsätt problem då någon en lördagskväll tog sig in på projektarean och raderade hela projektet. Det fanns som tur var säkerhetskopior. Applikationen består av två funktioner. Den ena är en crawler som börjar med att samla in alla nåbara URL-adresser som kan nås från en angiven start-url. Den andra funktionen indexerar de funna URLerna och dessa data ligger sedan till grund för klassificering av ett dokument som diskriminerande med avseende på ordparen. Ordparen sparas på fil tillsammans med det diskriminerande värdet och URL-adressen till respektive dokument. Applikationen är tänkt att användas av olika sökmotorer och presumtiva användare kan vara domäners eller hemsidors sökfunktioner. 3 (9)
Bakgrund Vi lever i sökmotorernas tid. Dessa är en av grundförutsättningarna för Internets utveckling. För att finna den information man söker bland den astronomiska mängd information som finns på Internet behövs effektiva sökmotorer. Hur dessa utvecklas kommer att effektivisera användandet av Internet oerhört. Problembeskrivning Idag finns det flera olika sökmotorer som var för sig fungerar bra för vissa typer av sökningar. Exempel på sådana är AltaVista, Yahoo och Infoseek. Det finns emellertid ingen sökmotor som är särskilt intelligent och som stöder användaren i dennes sökning. Om användaren inte har tillräcklig kännedom om vilka nyckelord som finns i de dokument denne letar efter, får han/hon ofta ett dåligt resultat. I dessa fall skulle en intelligent sökmotor var lösningen. index Syfte Syftet med detta projekt går ut på att programmera en crawler som gör en indexering av diskriminerande ord i dokument. Av dess bildas sedan par av ord och även dessa indexeras. Ordparens diskriminerande värde anger därefter hur viktigt dokumentet är med avseende på dessa par av ord. Indexeringen är tänkt att användas i sökmotorer för Internet. Samarbete och roller Samarbetet inom gruppen har fungerat mycket bra. Vi har haft många, regelbundna möten där vi noggrant diskuterat problem, vad som bör göras och hur vi ligger till tidsmässigt i förhållande till tidplanen. Då vårt projekt tydligt kunde delas in i tre relativt självständiga moduler, delade vi även in gruppen i tre delgrupper. Tanken med detta var att underlätta förståelsen för projektproblemet. Varje delgrupp specialiserade sig på en fas och redogjorde för resterande gruppmedlemmar vad som skulle ske i fasen. Detta sätt att arbeta fungerade mycket bra och därför beslöt vi oss för att fortsätta arbeta med dessa delgrupper. Under så gott som hela projektarbetet har dessa delgrupper varit mer eller mindre tydliga. 4 (9)
Tidig under projektets gång kom vi överens om respektive projektmedlems ansvarsområde (se ovan). Dessa ansvarsområden har fungerat mycket bra. Även om varje person inte arbetat mest med sitt ansvarsområde har han/hon sett till att det genomförts. Samtliga gruppmedlemmar var eniga om att satsa mycket på arbetet med detta projekt. Vi hoppades på att bli klara tidigt, men ville även gardera oss tidsmässigt och satsade på att ha tid över om vi skulle få något stort problem. Samarbetet med vår uppdragsgivare och handledare Harald Kjellin har fungerat alldeles utmärkt. Vi har haft regelbundna möten och mellan dessa har vi kommunicerat via e-post. I början av projektet gjorde vi en analys över vilka risker vi ansåg att projektet hade. För dessa risker angav vi hur stor sannolikheten var att de inträffade och hur stor effekt de skulle ha. Vi delade in dem i en skala på tre delar, L = låg, M = medel och H = hög. Nedan följer de risker vi ansåg vara viktiga. Risk Sannolikhet Effekt Tidsbrist M H Inlärning av ny teknik M H Svårare än vi först trodde M M Svårt att sätta ihop modulerna L H Problem med projektledarens frånvaro L M Under projektets gång har vi inte haft några större problem med någon av de risker vi förutsett. Däremot har vi märkt att det fanns andra risker som vi inte beaktat. I början saknade vi back-up på vårt projektarbete vilket visade sig ha kunnat vara ett stort misstag. Under en helg var någon person inne på vår projektarea och raderade hela vårt arbete. I och med detta hade vi kunnat förlora flera dagars arbete. Som tur var görs en back-up automatiskt av servrarna och det var möjligt att få tillbaka allt det vi förlorade. 5 (9)
Funktion av applikation Applikationen Intdex består av två funktioner som kan antingen köras separat eller i en sekventiell följd. Den ena funktionen, crawler funktionen, samlar in URL-adresser. Den börjar från en angiven start-url och samlar sedan in alla nåbara URLer som den hittar. Det går att begränsa crawlern genom att ange inom vilken domän den ska hålla sig. Den andra funktionen indexerar de URLer som hittats av crawler funktionen. Den börjar med att räkna orden i domänen och i varje enskilt dokument. Denna information ligger sedan till grund för beräkningar som klassificerar ett antal ord i varje dokument som diskriminerande. Varje ord knyts också till ett värde som anger hur diskriminerande ordet är i dokumentet. Att ett ord är diskriminerande betyder att ordet förekommer mer frekvent i dokumentet i jämförelse med resten av dokumenten i domänen. När alla ord är klassificerade bildas par av orden. Paren utgörs av diskriminerande ord som står nära varandra i en mening. För varje par beräknas också ett nytt gemensamt diskriminerande värde. Det nya värdet anger hur viktigt dokumentet är med avseende på detta par av ord. Ordparen sparas till sist på fil tillsammans med värdet och URL-adressen till dokumentet. Denna information är den som är tänkt att användas av sökmotorer på bland annat Internet. Datormiljö Applikationen är skriven i Java 2.0, vilket innebär att den kan köras på de vanligaste operativsystemen. Användare Applikationen är tänkt att användas av olika sökmotorer som behöver en intelligent indexering av dokument. Andra presumtiva användare kan tänkas vara domäners eller hemsidors sökfunktioner. Detta för att underlätta sökningen som annars kan vara en besvärlig del i att navigera och hitta rätt på Internet. 6 (9)
Användargränssnitt Huvudfönster När applikationen startas öppnas huvudfönstret, se figur 1. Här anges vilken URL man vill utföra indexeringen ifrån. Här finns även möjlighet att ange inom vilken domän man vill utföra indexeringen på. För att sätt igång indexeringen trycker man sedan på Start. För att göra inställningar trycker man på knappen Settings, då öppnas ett inställningsfönster, se bild 2 på nästa sida. Figur 1. 7 (9)
Settings Inställningsfönstret består av fyra olika delar, se figur 2. Proxysetting, index and crawl, constants och files. I proxysettings kan man ange ifall man använder en proxyserver och i sådana fall vilken adress och port den använder. Index och crawl anger ifall man endast vill göra en crawl eller indexering eller både och. I Constants finns möjligheten att ange diskrimineringskonstanten och den generella faktorn vilket avgränsar indexeringen av ordparen. I Files anges sökväg och namn på filerna för URLer och Ordparsindexeringen. Settings har en grundinställning när man kör det för första gången. Ifall man ändrar inställningarna kommer dessa att sparas till nästa gång applikationen används. Figur 2 8 (9)
Körexempel Vid körning av applikationen kommer man först att få upp fönstret som visas i figur 1. För att starta en crawl och indexering anger man en start URL och domän där sökning av URLer skall genomföras sedan trycker man på knappen Start. Ifall man vill göra speciella inställningar går man in i inställningar. Figur 3 visar fönstret när crawlern har satts igång. I fönstret visas sökresultat av URLer och en statustext. Figur 3 9 (9)