Mathilda - et naturlig språk-grensesnitt for reformulering av spørringer



Like dokumenter
Informasjonsgjenfinning

Sammendrag. Sammendrag

Søkesystemer og thesauri

EKSAMENSOPPGAVE I FAG TDT4117 INFORMASJONSGJENFINNING (BOKMÅL) SENSURVEILEDNING

INF1820: Oppsummering

På oppdagelsesreise etter den tapte informasjonen. Søk og søkemotorer Teoretisk gjennomgang

EKSAMENSOPPGAVE I FAG TDT4117 INFORMASJONSGJENFINNING (SENSURVEILEDNING)

INF1820: Ordklasser INF1820: Ordklasser. Arne Skjærholt. 13. februar. INF1820: Ordklasser. Arne Skjærholt. 13. februar

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4117 Informasjonsgjenfinning. LØSNINGFORSLAG/Sensurveiledning

. Grammatiske problem med å beskrive ordklassen adverb og setningsleddet adverbial i norsk. Sverre Stausland Johnsen Universitetet i Oslo

TDT4117 Information Retrieval - Autumn 2014

HUIN100 Essay nr. 3. Søket. Antall ord: 991

DIAGNOSERAPPORT. for. Dato: Utført av: Jon P Hellesvik

INF2820 Datalingvistikk V2016. Jan Tore Lønning

Søkemotorer. - en guide for en bedre rangering. Søkemotorer en guide for bedre rangering. InBusiness AS

INF2820 Datalingvistikk V2014. Jan Tore Lønning

DIAGNOSERAPPORT. for. Dato: Utført av: Tommy Svendsen

Avansert Søk Må Dø. Laura Arlov

3rd Nordic Conference of Computational Linguistics NODALIDA

Tekstanalyse for Geografisk informasjonsgjenfinning

Kanter, kanter, mange mangekanter

Test of English as a Foreign Language (TOEFL)

Enkle generiske klasser i Java

INF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

Øving 4: Brukergrensesnitt

En grunnleggende innføring i bruk av ASK

LF - Eksamen i INF1820

INF2820 Datalingvistikk V2015. Jan Tore Lønning

Eksamensoppgave i TDT4117 Informasjonsgjenfinning

UNIVERSITETET I OSLO

Skanning del I. Kapittel 2 INF 3110/ INF

INF INF1820. Arne Skjærholt. Negende les INF1820. Arne Skjærholt. Negende les

MAT1030 Diskret matematikk

Uke 10: Jakten på de forsvunnede subjektet: Om barns tidlige subjektsløse setninger.

Fagerjord sier følgende:

INF INF1820. Arne Skjærholt INF1820. Dagens språk: Russisk. dyes yataya l yektsiya. Arne Skjærholt. десятая лекция

Scanning - I Kap. 2. Hva scanneren gjør

Fakultet for informasjonsteknologi,

Oppsummering. Thomas Lohne Aanes Thomas Amble

VURDERINGER AV EKSEMPELSVAR TIL NORSKPRØVE, DELPRØVE I SKRIFTLIG FRAMSTILLING NIVÅ A1 A2

AlgDat 12. Forelesning 2. Gunnar Misund

SOSI standard - versjon Del 1: Regler for navning av geografiske elementer. DEL 1: Regler for navning av geografiske elementer

MAT1030 Diskret Matematikk

Sprettball Erfaren ComputerCraft PDF

UNIVERSITETET I OSLO

APPENDIKS D Geminittisk språk/grammatikk

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Hurtigstart guide. Searchdaimon ES (Enterprise Server)

INF2820 Datalingvistikk V2018 Forelesning 1 del 1, 15. jan. Jan Tore Lønning

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Skanning del I INF /01/15 1

Obligatorisk oppgavesett 1 MAT1120 H16

3. Generell presentasjon av MT-programmet

EKSAMENSOPPGAVE I FAG TDT4117 INFORMASJONSGJENFINNING

IN2110 Obligatorisk innlevering 1a

Velkommen. Benedicte bgraphic.no

Grunnleggende ferdigheter/momenter fra lokal læreplan

UNIVERSITETET I OSLO

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

MAT 1120: Obligatorisk oppgave 1, H-09

Definisjonene og forklaringene i denne presentasjonen er hentet fra eller basert på kap. 1 (Kristoffersen: «Hva er språk?

Forelesning 27. MAT1030 Diskret Matematikk. Bevistrær. Bevistrær. Forelesning 27: Trær. Roger Antonsen. 6. mai 2009 (Sist oppdatert: :28)

Lokal læreplan engelsk 4.klasse Lærebok: Stairs 4

FutureLab - Søking på nett

BAAN IVc. BAAN Data Navigator - Brukerhåndbok

INF5830, H2009, Obigatorisk innlevering 2. 1 Oppgave: Unære produksjoner i CKY

INF1820 INF Arne Skjærholt INF1820. Arne Skjærholt

Snake Expert Scratch PDF

INF120: Oblig 3. Yngve Mardal Moe

BESTEMT ELLER UBESTEMT FORM?

OBLIG 2 WEBUTVIKLING

2 Om statiske variable/konstanter og statiske metoder.

Databaser fra et logikkperspektiv

Hvordan komme i gang med MUSITs applikasjoner

INF1820 INF Arne Skjærholt INF1820. Arne Skjærholt

Opplæring i informasjonskompetanse

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Testrapport for Sir Jerky Leap

Brukermanual for administrasjonsverktøy Gruppe: 08-03

Argumenter fra kommandolinjen

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Ordklasser Inndelingen ORDKLASSEINNDELINGEN

Testrapport Prosjekt nr Det Norske Veritas

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

MAT1030 Diskret Matematikk

Veiledningen bygger i hovedtrekk på en veiledning utarbeidet v/medisinsk bibliotek, Ullevål universitetssykehus

Verden. Steg 1: Vinduet. Introduksjon

Oppgave 1 (samlet 15%)

1. Explain the language model, what are the weaknesses and strengths of this model?

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Synlighet for brukeren optimalisering av søk

Administrering av SafariSøk

Lineære likningssystemer og matriser

DIAGNOSERAPPORT. B&W Caravan DA Utført av: Jan Erik Iversen

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang

Transkript:

Mathilda - et naturlig språk-grensesnitt for reformulering av spørringer Prosjektoppgave i TDT4710 Informasjonforvaltning, fordypningsemne av Olaug Østhus Hovedveileder: Ingeborg T. Sølvberg Institutt for Datateknikk og Informasjonvitenskap, Norges Teknisk-Naturvitenskapelige Universitet, Høsten 2004

Sammendrag Sammendrag I dette prosjektet er det laget et naturlig språk-grensesnitt, Mathilda, som skal gjøre det enklere å bruke søkemotorer til å finne relevant informasjon på Internett. Dette blir gjort ved å lage et naturlig språk-grensesnitt over søkemotoren Google. I dette grensesnittet blir et spørsmål fra søkeren, formulert på vanlig engelsk, gjort om til en søkemotorspørring. Det blir brukt beregningslingvistikk og da spesielt syntaktisk analyse for å gjøre denne transformasjonen. Den syntaktiske analysen blir gjennomført ved hjelp av en online ordklassetagger. Etter at spørsmålet har vært gjennom denne analysefasen, blir spørsmålet gjort om til en spørring ved å prosessere et sett med fjorten heuristikker på spørsmålet. Spørringen som kommer ut av genereringen blir sendt til Google, som returnerer en resultatside med potensielle svardokumenter. Fokuset i oppgaven har vært på spørringsgenereringen. For å finne gode heuristikker som kan brukes er det studert et sett av spørsmålsbesvarelsessystemer (QA-systemer) som bruker syntaktiske og til dels semantiske teknikker for å lage et spørsmål om til en spørring. Det er også brukt en spørreundersøkelse som undersøker hvordan gode søkere velger ut søkeord når de skal prøve å finne svar på et spørsmål. Mathilda har blitt evaluert på de første 50 spørsmålene brukt i QA-evalueringen i TREC8- konferansen. Denne evalueringen viser at heuristikker kan brukes til å transformere et spørsmål om til en spørring. Mathilda viser at heuristikker som utnytter substantivnaboer og søkemotorens funksjonalitet, samt heuristikker beregnet på konkrete spørsmålstyper, fungerer i de fleste tilfeller. Samtidig ble en del problemer med de heuristikkene som er brukt identifisert. Disse problemene fører til at Mathilda i en del tilfeller gir tomme eller irrelevante resultater. Den samme evalueringen som blir gjort på Mathilda blir også gjort på Google. I sammenligningen av de to evalueringene sett under ett viser det seg at Google gjør det litt bedre enn Mathilda. Likevel ser man at heuristikkene fungerer svært bra når de virker etter hensikten, og ved å rette opp problemer avdekket i denne oppgaven vil man i framtiden forhåpentligvis kunne lage et system som konsistent gjør det bedre enn Google. I det videre arbeidet med dette systemet vil det derfor bli jobbet mot dette målet. Som en del av forarbeidet til utviklingen av Mathilda har de eksisterende QA-systemene Mulder, Tritus, AnswerBus, LASSO, QASM og BusTUC blitt studert. I tillegg har teoristoff som omhandler teknikker og prosesser innen fagområdet beregningslingvistikk, eller naturlig språk-prosessering, blitt undersøkt. Resultatet av dette forarbeidet inngår også i rapporten.

Takk til Takk til Denne rapporten er et resultat av høstprosjektet mitt i fordypningsemnet Informasjonsforvaltning ved Institutt for Datateknikk og Informasjonsvitenskap(IDI) ved NTNU. Jeg vil takke hovedveileder, professor Ingeborg Sølvberg, og hjelpeveilederne, Øyvind Vestavik og Jeanine Lilleng for veiledningen de har gitt meg underveis i prosjektet. Sølvberg har hjulpet til med den overordede strukturen, mens Vestavik har kommet med detaljkommentarer. Lilleng har hjulpet til med å gi oppgaven både bedre struktur og innhold. All veiledning har ført til at rapporten har blitt bedre. Jeg vil også takke Ottar Viken Valvåg for korrekturlesning av hele rapporten, moralsk støtte og teknisk hjelp ved implementasjon av systemet, Mathilda, samt søking etter TREC8- spørsmål som systemene ikke klarte å finne svar på. Tilslutt vil jeg takke alle som var med på å besvare spørreundersøkelsen; Nina Ingvaldsen, Nina Knutsen, Ellen Røyneberg, Berit Eleni Sirris, Olav Engelsåstrø, Norvald H. Ryeng, Eirik Eide og Andreas Grytting Furuseth.

Innholdsliste Innholdsliste 1 Innledning...9 2 Beregningslingvistikk...11 2.1 Leksikalsk analyse...12 2.2 Syntaktisk analyse...12 2.3 Semantisk analyse...15 2.4 Pragmatisk analyse...18 2.5 Oppsummering...18 3 Søkemotorer...19 3.1 Virkemåte...19 3.2 Spørringsutforming...20 3.3 Indeksering...21 3.4 Rangering av dokumenter...21 3.5 Evaluering i søkemotorer...23 4 Spørsmålsbesvarelsessystemer...27 4.1 Spørsmålsbesvarelsessystemer...27 4.2 Søkemotorer versus QA-systemer...28 4.3 Evaluering av spørsmålsbesvarelsessystemer...28 4.4 Eksisterende QA-systemer...30 4.5 Oppsummering...44 5 Spørreundersøkelse...47 5.1 Søkergruppe...47 5.2 Undersøkelsen...47 5.3 Resultater...48 5.4 Diskusjon...52 5.5 Oppsummering...53 6 Mathilda - mitt system...55 6.1 Mål...55 6.2 Virkemåte...55 6.3 Samling...56 6.4 Språk...56 6.5 Spørringsgenerering...56 6.6 Mathilda vs andre systemer...59 7 Teknisk implementasjon av Mathilda...61 7.1 Valg...61 7.2 Bestanddeloversikt...62 7.3 Programsekvenser i Mathilda...65 8 Evaluering av Mathilda...69 8.1 Framgangsmåte...69 8.2 Resultater...71 8.3 Oppsummering...79 9 Konklusjon og videre arbeid...81 9.1 Videre arbeid...81 10 Referanser...83 Vedlegg A Spørreundersøkelsen...87 Vedlegg B Koden til heuristikkene...89 Vedlegg C Spørsmål og svar fra TREC8...95

Figurliste Figurliste Figur 1 Avhengigheter mellom analysefasene...12 Figur 2 Eksempel på syntaktisk analyse av Søkeeksempel 8 [3]...14 Figur 3 Klosseksempel...16 Figur 4 Semantiske relasjoner i en tesaurus[10]...17 Figur 5 Virkemåten til en søkemotor...19 Figur 6 Precision og Recall for en gitt spørring [4]...24 Figur 7 Eksempel på arkitekturen til et QA-system...28 Figur 8 Eksempel på bruk av BusTUC...31 Figur 9 Eksempel på grammatikkregler [2]...32 Figur 10 TQL for Søkeeksempel 20 [2]...33 Figur 11 Oversikt over Mulder[22]...35 Figur 12 Evaluering av Tritus [20]...38 Figur 13 Oversikt over AnswerBus virkemåte[23]...39 Figur 14 Eksempel på operasjoner i QASM [33]...42 Figur 15 LASSO sin spørsmålsprosess [35]...43 Figur 16 Generell oversikt over mitt system...56 Figur 17 Teknisk oversikt over Mathilda...63 Figur 18 Brukergrensesnittet til Mathilda...64 Figur 19 Eksempel på ordklassetagging i Claws4[41]...64 Figur 20 Sekvensen for å få resultatsiden med relevante dokumenter...66 Figur 21 Sekvensen for å få visning av ordklassetagget spørsmål...67 Figur 22 Graf som viser antall spørsmål hvor riktig svar er å finne i resultatsida...73 Figur 23 Graf som viser antall spørsmål hvor riktig svar er å finne i resultatdokumentet...74 Figur 24 Graf som viser antall spørsmål besvart med relevante dokumenter...74 Tabelliste Tabell 1 Eksempel på affikser[3]...15 Tabell 2 Beskrivelse av ulike leksikalsk semantiske fenomener[2]...16 Tabell 3 Spørsmålstyper som ble brukt under evaluering av Tritus[30]...37 Tabell 4 Oversikt over behandlede QA-systemer...44 Tabell 5 Spørsmålene i spørreundersøkelsen...47 Tabell 6 Heuristikker utledet fra spørreundersøkelsen...54 Tabell 7 Oversikt over heuristikker som er brukt i Mathilda...59 Tabell 8 Utdrag av de 50 første TREC8-spørsmålene...72 Tabell 9 De 50 første TREC8-spørsmålene med svar...96

Innledning 1 Innledning Når man trenger informasjon om noe eller noen går man ofte til Internett for å finne denne informasjonen. På Internett bruker vi ofte kjente søkemotorer som Google, AltaVista og Yahoo for å gjenfinne informasjon. Søkemotorene fungerer slik at man må skrive inn søkeord som beskriver det man ønsker å finne av informasjon. Disse søkeordene, kalt en spørring, bruker søkemotorene til å gjenfinne dokumenter som ligger på Internett som inneholder søkeordene. Folk flest bruker to-tre ord for å spesifisere hva vi ønsker informasjon om. I gjennomsnitt bruker vi 2,4 ord for å forme en spørring.[1] Vi forventer at søkemotoren ut fra disse få ordene skal skjønne hva vi er ute etter. Dette er ikke alltid tilfellet. Dersom man for eksempel putter inn Søkeeksempel 1, vist under, i en søkemotor, vil man få mange lenker som viser hvor man kan finne MP3-filer. Dette er greit hvis det er det man er ute etter. Søkeeksempel 1 MP3 Music Søkeeksempel 2 Definition MP3 Søkeeksempel 3 MP3 Dersom man derimot er ute etter å finne ut hva en MP3-fil er for noe, kan det være mer gunstig å bruke Søkeeksempel 2. Da vil man ved å bruke Google få en definisjon av MP3. Det verste søket man kan gjøre av disse tre søkene er Søkeeksempel 3. Da får man alle dokumenter som inneholder ordet MP3, og resultatdokumentene kan være alt fra definisjoner av MP3, hvor man kan laste ned MP3, reklame for hvor man kan kjøpe MP3, og så videre. For å kunne få gode resultater må man være en god søker. En god søker er en person som er flink til å velge ut søkeord som gir ut resultater som inneholder informasjonen man er ute etter. Som god søker kjenner man også oftest til søkemotorens funksjoner og kan utnytte dem for å forbedre søkene. I Google kan man for eksempel bruke hermetegn for å markere at man ønsker at et sett med ord skal stå i en bestemt rekkefølge og samlet i resultatdokumentet. Resultatet av et søk inneholder ofte veldig mange dokumenter. Hvis man for eksempel kjører Søkeeksempel 1 i Google får man over 12 millioner dokumenter og visning av de ti første. Av alle disse vil man undersøke de to-tre første og kanskje de syv neste, men etter det orker vi ikke mer. Vi gir opp. Maskinen og menneskene snakker ikke samme språk. For at folk flest skal kunne forbedre sine søk hadde det vært lettere om de kunne skrive sitt eget språk, det vil si skrive spørsmål inn i naturlig språk. Søkeeksempel 4 og Søkeeksempel 5 er to spørsmål som er skrevet inn i naturlig språk. Om mennesker skal kunne skrive inn naturlig språk-spørsmål må søkemotorene kunne ta i mot dem. Dessverre kan ikke de fleste søkemotorer i dag gjøre det på en spesielt intelligent måte. Hvis man skriver inn naturlig språk-spørsmål vil søkemotoren lage en spørring bestående av alle ordene i spørsmålet. Noen fjerner i tillegg vanlige ord som What is a fordi de mener at disse ordene ikke er viktige for å spesifisere søket. For Søkeeksempel 5 vil man da stå igjen med bare ordet MP3-file, som gjør at søket blir veldig lite spesifikt. Informasjonsverdien av spørsmålet blir ikke utnyttet. Søkeeksempel 4 What is the definition of MP3? Søkeeksempel 5 What is a MP3-file? 9

Innledning En annen utfordring som dukker opp når man skriver et spørsmål inn i en søkemotor er at ordene som spørsmålet består av ikke er de samme ordene som vil være representert i dokumentet som inneholder svaret til spørsmålet. Hvis et spørsmål for eksempel begynner med Why vil sannsynligvis svaret heller inneholde ordet because. Derfor kan det gi mer mening å la spørringen inneholde ordet because enn ordet why. Styrken ved bruk av naturlig språk-spørsmål er at de potensielt gir mer kontekst og dermed mer mening, i alle fall for mennesker. Det er enklere for en person å besvare et spørsmål gitt i Søkeeksempel 6 og Søkeeksempel 7 enn om man bare hadde sagt St. Olav. Som menneske forstår man ut fra setningskonteksten at i Søkeeksempel 6 er man ute etter en person og i Søkeeksempel 7 et sted. Dette kan vi se av spørreordene som er brukt og at vi for eksempel vet at street er et ord man bruker for å betegne et sted. Søkeeksempel 6 Who was St. Olav? Søkeeksempel 7 Where is the St. Olav street? Søkemotorer kan aldri bli like smarte som mennesker, men det er likevel mulig å føre mennesker og maskiner nærmere hverandre. I dette prosjektet er det blitt laget et system som gjør det enklere for personer, som nødvendigvis ikke kjenner til søkemotorenes funksjonalitet og som ikke er så flinke til å velge ut søkeord, til å få bedre søkeresultater. Fokuse i prosjektet har vært å finne gode heuristikker for å gjøre et spørsmål i naturlig språk om til en spørring som en søkemotor kan behandle. Naturlig språk-spørsmål kan behandles på ulike måter for at det skal bli mer forståelig for en søkemotor. Dette er nærmere forklart i kapittel 2, beregningslingvistikk. I kapittel 3 er virkemåten og evalueringsteknikker til søkemotorer forklart. Deretter blir spørsmålsbesvarelsessystemer (QA-systemer) forklart. Kapittel 4 representerer disse systemenes virkemåte og evaluering. Eksisterende QA-systemer og deres teknikker for å gjøre spørsmål om til spørringer blir også forklart i dette kapittelet. I kapittel 5 blir spørreundersøkelsen og dens resultater presentert. Etter at både QA-systemer og spørreundersøkelsen er blitt presentert blir mitt system, Mathilda, presentert i kapittel 6. Dette kapittelet forteller om systemets mål, virkemåte og hvilke teknikker systemet bruker for å gjøre spørsmål om til spørringer. Mens forklaringene i dette kapittelet er på et konseptuelt nivå, inneholder kapittel 7 en mer teknisk beskrivelse. I kapittel 8 blir evalueringen av Mathilda og Google beskrevet. Til slutt avrundes rapporten med konklusjon, videre arbeid og referanser. 10

Beregningslingvistikk 2 Beregningslingvistikk Når man skal kommunisere med datamaskinen ved hjelp av naturlig språk bruker man det man kaller beregningslingvistikk (computational linguistics) eller naturlig språk-prosessering. Prosesseringen gjør man for å gjøre naturlig språk om til et mer maskinforståelig språk. En mulig definisjon på beregningslingvistikk er:[2] Computational linguistics (CL) is a discipline between linguistics and computer science which is concerned with the computational aspects of the human language faculty. It belongs to the cognitive sciences and overlaps with the field of artificial intelligence (AI), a branch of computer science that is aiming at computational models of human cognition. There are two components of CL: applied and theoretical. [... ] The applied component of CL is more interested in the practical outcome of modelling human language use. The goal is to create software products that have some knowledge of human language. Such products are urgently needed for improving human-machine interaction since the main obstacle in the interaction between human and computer is one of communication. [... ] Natural language interfaces enable the user to communicate with the computer in German, English or another human language. Some applications of such interfaces are database queries, information retrieval from texts and so-called expert systems. Kort sagt kan man si at beregningslingvistikk i denne konteksten er et verktøy for å lage et grensesnitt mellom mennesker og maskiner. Grensesnittet gjør at det blir enklere for både maskiner og mennesker å snakke sitt eget språk. Når man får mulighet til det, blir det mye enklere å uttrykke hva man ønsker å formidle. Naturlig språk-grensesnitt som definert i definisjonen over gir mennesker mulighet til akkurat dette. Slike grensesnitt brukes i sammenheng med databasespørringer, informasjonsgjenfinning i tekst og i ekspertsystemer. Beregningslingvistikk kan deles inn i følgende faser: Leksikalsk analyse: Omforming av en strøm av bokstaver til en liste av ord.[3] Syntaktisk analyse: Studiet av formelle relasjoner mellom ord. Dette inkluderer studiet av hvordan ord er klynget sammen i klynger som blir kalt ordklasser, hvordan naboord blir gruppert til fraser og hvordan ord avhenger av andre ord i en setning.[3] Semantisk analyse: Studiet av meningen i et lingvistisk utsagn. Man prøver å forstå hva en setning betyr.[3] Pragmatisk analyse: Studiet av relasjonen mellom språk og brukssammenheng (context-of-use). Brukssammenheng inkluderer identiteten til personer og objekter, og pragmatisk analyse inkluderer studiet av hvordan man referer til objekter og personer.[3] Hvis man skal bruke beregningslingvistikk trenger man ikke gå gjennom alle disse fasene. Hvor mange analysefaser man velger å ta med kommer an på hva man skal bruke analysen til, hvilken framgangsmåte man bruker og hva målet med analysen er. Man kan også utelate deler av analysen. Figur 1 viser avhengighetene mellom de ulike fasene. Semantisk og pragmatisk analyse er avhengig av den syntaktiske analysen, mens alle tre er avhengig av den leksikalske. Etter den syntaktiske analysen kan man velge om man vil gjøre semantisk analyse eller om man vil gjøre den pragmatiske. Man kan også gjøre begge analysene om man ønsker det. 11

Beregningslingvistikk Leksikalsk analyse Syntaktisk analyse Semantisk analyse Pragmatisk analyse Figur 1 Avhengigheter mellom analysefasene 2.1 Leksikalsk analyse En leksikalsk analyse setter bokstavene sammen til ord. Etter den leksikalske analysen vil man ha en liste av ord som kan bety hva som helst. Denne listen kan brukes til å sammenligne ordene seg i mellom. Man kan også sammenligne listen med andre forhåndsbestemte lister. Sammenligningen kan brukes til å kategorisere en tekst som relevant eller ikke relevant i forhold til for eksempel en spørring. Den kan også brukes til å kategorisere tekst etter språk eller emne. Etter oppdeling i ord kan man telle opp antall forekomster man har av hvert enkelt ord og bruke ordene med høyest sum til å representere en kategori. I en søkemotor vil man ofte bruke prinsippet om at dokumenter som inneholder mange forekomster av ord fra søkestrenger er dokumenter som er relevante for et søk. En søkemotor bruker selvsagt flere metoder enn dette for å rangere dokumenter og velge ut hvilke som skal være med. En stoppordliste, der stoppord er ord som er frekvente i en dokumentsamling, kan man også lage etter man har gjennomført en leksikalsk analyse.[4] Stoppordlisten lager man ved å telle antall forekomster av alle ord i en samling. De ordene som er mest frekvente blir tatt med i stoppordlisten. Å lage selve stoppordlisten er ikke en leksikalsk analyse. Den leksikalske analysen kan bare identifisere at en tekst bestå av ord og hvor mange ord teksten består av. Et eksempel på den leksikalske analysen er å bruke en StringTokenizer i Java.[5] StringTokenizer-en deler en lang streng i tokens ved å se på mellomrommene i strengen. Etter at man har kjørt en leksikalsk analyse på Søkeeksempel 8 er det identifisert at setningen består av fem ord. Disse ordene er I, prefer, a, morning og flight. Søkeeksempel 8 I prefer a morning flight 2.2 Syntaktisk analyse Ordet syntaks kommer fra gresk og referer til måten ord er satt sammen på.[3] Når man legger til den syntaktiske analysen får man mer kjennskap om hvilken ordklasse, hvilken morfologi, eller hvilken frase et ord hører hjemme i. Disse begrepene vil bli forklart nærmere i kommende delkapitler. Kunnskapen man får fra en syntaktisk analyse fører til at man mer konstruktivt kan velge ut ord som man får fra naturlig språk-grensesnitt. Man kan lage heuristikker som sier at man skal ta ut alle verb og substantiv og sende dem videre som en spørring. Et annet eksempel er at man kan si at preposisjoner, konjunksjoner og pronomen er stoppord. Stoppord er forklart nærmere i delkapittel 3.1.1. 12

Beregningslingvistikk 2.2.1 Ordklasse En ordklasse er en gruppe av ord med like grammatiske egenskaper[6]. De ulike ordklassene har ulike egenskaper. Verb sier for eksempel hva som skjer i setningen, mens substantivene ofte er navn på personer, ting og steder. Adjektivene spesifiserer substantivene. I Søkeeksempel 9 spesifiserer for eksempel adjektivet at figuren skal være gul. Søkeeksempel 9 What is the name of the yellow character in the Teletubbies? I et naturlig språk-grensesnitt kan man bruke ordklassene til å lage heuristikker som spesifiserer hva man skal gjøre med forekomster av ord fra de ulike ordklasser som forekommer i en setning. I et grensesnitt over en søkemotor ville det være naturlig å lage heuristikker som bestemmer hvilke ordklasser som skal tas med i en spørring. Hvilke ordklasser man skal ta videre til en spørring er vanskelig å avgjøre ettersom setninger/spørsmål kan være svært forskjellige. Likevel velger de fleste systemer å ta vare på substantiv og da spesielt egennavn. Substantiv navngir steder, personer og ting som ofte er sentralt i en setning. I noen tilfeller kan det også være gunstig å ta med adjektivet til et substantiv fordi det spesifiserer substantivet slik som i Søkeeksempel 10. Søkeeksempel 10 Who was the first American man in space? I Søkeeksempel 10 kunne man beholdt både adjektivene first og American og substantivene man og space. I andre tilfeller kan det være gunstig å også beholde verbet i setningen, slik som i Søkeeksempel 11. Søkeeksempel 11 Who was the first man to drive around the whole world? Her er det gunstig å beholde verbet fordi det spesifiserer at man er ute etter mannen som først kjørte rundt hele jorden og ikke en som fløy eller gikk rundt jorden. Man kan velge de rette ordklassene i bestemte kontekster ved å se på fraser istedenfor å se på enkeltord. Fraser er nærmere forklart i neste delkapittel. For å finne ordklassen til et ord kan man bruke en ordklassetagger som merker ordene med en eller flere sannsynlige ordklasser. Det finnes mange ulike ordklassetaggere som merker ord med ulik granularitet. Noen ordklassetaggere finner bare ordklassen til ordet, for eksempel verb eller substantiv. Andre ser også på morfologien til ord og merker ordene med flere attributter, som for eksempel tiden til et verb og antall og kjønn til et substantiv. Det finnes ulike teknikker for å bestemme ordklassen til et ord. Eksempel på teknikker er statistiske og regelbaserte. Brills ordklassetagger[7] er et eksempel på en regelbasert tagger. 2.2.2 Fraser Fraser kan brukes til å løse problemet med hvilke ordklasser som skal benyttes i en spørring. En frase er en samling med etterfølgende ord som tilhører et sett av ordklasser. Eksempel på fraser er substantivfraser som består av et substantiv i sammenheng med andre ordklasser som determinanter, andre substantiv og adjektiv. I Søkeeksempel 10 ville man kunne tatt ut substantivfrasen first American man som gir mer kontekst enn enkeltord. For å dele en setning opp i fraser må man på forhånd bestemme hvilke ordklasser som sammen kan utgjøre en frase. Reglene for oppsett blir samlet i en grammatikk. Ved å bruke grammatikken fra Jurafsky og Martin sin bok om språk og språk-prosessering[3] på Søkeeksempel 8 får man en syntaktisk analyse som vist i Figur 2. Nederst i dette treet er 13

Beregningslingvistikk setningen vist, mens de enkelte ordklassene er vist i linjen over. Alle frasene man deler setningen opp i blir tilslutt samlet i en setning, S, som er roten til treet. I Figur 2 er følgende notasjon brukt: Pro= Pronomen, Det= Determinant, Noun= Substantiv, Nom= nominal, NP= Substantivfrase, VP= verbfrase og S= setning. S NP VP NP Nom Pro Verb Det Noun Noun I prefer a morning flight Figur 2 Eksempel på syntaktisk analyse av Søkeeksempel 8 [3] En grammatisk framstilling som i Figur 2 kan videre brukes i en semantisk analyse, der man legger semantikk til hver frase. Å sette sammen ord i fraser og grammatikker gjør at man får mer mening ut av en setning enn om man bare ser på enkeltordene. Derfor strides man innen naturlig språk-miljøet og lingvistikkmiljøet om hvorvidt sammensetning av ord i fraser og grammatikker er en del av den syntaktiske eller semantiske analysen. Jeg har valgt å beskrive fraser og grammatikker under syntaktisk analyse fordi Jurafsky og Martin gjorde dette i sin bok om språk og språkprosessering[3]. Naturlig språk-grensesnitt som ikke bruker semantisk analyse bruker ikke oppdeling i fraser i forhold til grammatikk i sin syntaktiske analyse. De nøyer seg med ordklassetagging og eventuelt morfologisk parsing, som er forklart under. 2.2.3 Morfologi Morfologi er studiet av hvordan ord er bygget opp av mindre meningsbærende enheter, morfemer. Morfemer deles inn i to hovedklasser, stamme og affiks. Stammen er hovedordet, mens affiks er et tillegg som gir utvidet mening på ulike måter. Ordet foxes består av morfemene fox som er stammen og -es som er affiks.[3] Å bryte et ord ned fra overflateform (foxes) til morfem ( fox og -es ) kalles morfologisk parsing. Å redusere et ord til å bare bestå av stammen kalles stemming. En beskrivelse av stemming finnes i delkapittel 3.1.2. Affikser kan deles inn i prefiks, suffiks, infiks og sirkelfiks. Tabell 1 viser et eksempel på de ulike typene affikser. Alle eksemplene er ikke engelske, fordi engelsk ikke bruker infiks og sirkelfiks i særlig grad. Et ord kan ha affikser av flere typer. 14

Beregningslingvistikk Affikstype Ord Stamme Affiks Suffiks (eng) eats Eat (no: spise) -s Prefiks (eng) unbuckle buckle (no: bøye seg ) -un Infiks (tysk) gesagt sagen (no: si) ge og t Sirkelfiks (tagalog) humingi hingi (no:låne) um Tabell 1 Eksempel på affikser[3] 2.2.4 Grammatiske funksjoner Når man analyserer en setning kan man dele setningen inn i det man kaller grammatiske funksjoner som subjekt, verbal og objekt. I Søkeeksempel 12 er She subjektet, ate er verbal og alt etter ate er objektet.[3] Søkeeksempel 12 She ate a mammoth breakfast I et naturlig språk-grensesnitt kan man for eksempel bruke kunnskapen om grammatiske funksjoner til å bestemme hvilke ord i et spørsmål man skal bruke i en spørring. I spørsmål vil man ofte ta vare på objektet fordi det typisk forteller noe om hva det spørres etter. 2.3 Semantisk analyse Semantikk er studiet av meningen til lingvistiske ytringer.[3] Kjører man en semantisk analyse på teksten som kommer inn i et naturlig språk-grensesnitt kan man finne meningen til en setning eller et ord. Begrepet mening kan illustreres med et eksempel:[3] En person sitter på eksamen og skal svare på spørsmål, for å utføre denne oppgaven hjelper det ikke bare at man har morfologien eller ordklassen til ordene, man må også forstå hva det betyr å svare på et spørsmål. Man må ha kunnskap om spørsmålet og man må vite hva som er forventet av en for å svare på et slikt spørsmål. Med andre ord må man lenke sammen de lingvistiske elementene i den enkelte oppgave sammen med de ikke-lingvistiske som er kunnskap om verdenen man lever i. For å lage en semantisk representasjon av en setning må grammatikken bli utvidet med attributter i form av parametere som representerer det semantiske innholdet til hver komponent. Den semantiske representasjonen må bruke en eller annen formalisme for å representere mening. Forskjellige logiske notasjoner er mye brukt. For eksempel kan ordet on som er en preposisjon ha følgende semantikk:[2] preposition (sem) [on], {Y:X:on(X,Y)} Regelen sier at man har X on Y det vil si at preposisjonen on har den egenskapen at noe kan være på noe annet og at on kan ta inn to parametere. 15

Beregningslingvistikk B A Figur 3 Klosseksempel I Figur 3 står kloss B på A ( B on A ). Setter man dette eksempelet inn i den semantiske regelen som er nevnt over får man følgende: prepostion (sem) [on], {A:B:on(B,A)} Når man setter opp en grammatikk må man lage semantiske regler for alle ord og fraser som finnes i systemet. Systemet kan så resonnere seg fram til en semantisk representasjon av hele setningen. 2.3.1 Leksikalsk semantikk Man kan også gi et ord mening ved å sette det sammen med relaterte ord som for eksempel synonymer, hyponymer eller polysemer til ordet. Dette kalles leksikalsk semantikk. Fokuset i leksikalsk semantikk er å finne meningen til et enkelt ord istedenfor meningen til en hel setning. Hovedelementene i en leksikalsk semantisk analyse er leksemer, der et leksem er en bestemt sammensetning av ortografiske og fonologiske former av et ord som gir en bestemt mening.[3] Tabell 2 viser ulike fenomener innen leksikalsk semantikk. Fenomen Beskrivelse Eksempel på leksemer Synonym Synonymer er to eller flere ulike leksemer Car-automobil med samme mening. Et kriterium er at leksemene skal kunne være substitutter for hverandre uten å gi en ny mening. Homonym Homonymer er leksemer som har samme form men som har ulik og urelatert mening. Ball som i fotball og Ball som Askepott går på. Homofoner Homofoner er leksemer som skrives ulikt, Great grate men som har lik uttale. Homografi Homografi er leksemer som skrives likt, men som uttales på forskjellig måte. Bass /bæs/ ( = abbor), og Bass /beis/ ( = bass). Polysemi Hyponymi Polysemer er nesten som homonymer på den måten at de har like leksemer, og har forskjellig, men ikke nødvendigvis urelatert, mening. Hyponomi består av hypernymer som er en mer generell betydning av et leksem og hyponymer som er en spesifisering av et leksem. Tabell 2 Beskrivelse av ulike leksikalsk semantiske fenomener[2] Fly - Fly som i å bevege seg i luften og Fly som å bevege seg raskt. Bus-vehicle ( Bus er et hyponym av vehicle, som er et hypernym av bus.) Når man skal lage spørringer ut fra et naturlig språk-spørsmål kan det være gunstig å ta med meningen til et ord i form av forskjellige leksemer. Man kan bruke leksemene som 16

Beregningslingvistikk spørringsutvidelser og for eksempel legge til synonymer til enkelte substantiv, verb eller adjektiv. Dermed kan man få flere relevante dokumenter og man kan øke precision og recall. En grundig beskrivelse av disse begrepene er gitt i delkapittel 3.5. Spørringsutvidelse kan også føre til at presisjonen til et søk blir mindre, fordi man har supplert et ord med feil sett av leksemer. Slike feil kan skje fordi ord i sin natur er tvetydige. Homonymi er et typisk fenomen som fører til tvetydigheter. Søkeeksempel 13 sier at man ønsker informasjon om balls. Utfordringen blir her å velge om man skal utvide spørringen med synonymer som party, prom og dance eller om man skal utvide den med ordene football og baseball. Ordet ball er også et verb. For å finne hvilken betydning av ordet søkeren har ment kan man bruke en Word Sense Disambiguator[8], som bruker statistisk informasjon samt semantiske og syntaktiske begrensninger til å finne riktig betydning. Recallen til søket vil ikke bli svekket ved spørringsutvidelse fordi man vil gjenfinne begge former for ball. Søkeeksempel 13 I want some information about balls. Det er mange spørsmålsbesvarelsessystemer som i dag bruker WordNet[9] for å få tak i synonymer og hyponymer til ord. WordNet en leksikalsk database for engelsk. Den lenker engelske substantiv, verb, adjektiv og adverb til sett av synonymer som er lenket sammen til semantiske relasjoner som bestemmer et ord sin definisjon. De andre ordklassene har ikke semantiske relasjoner i WordNet. 2.3.2 Tesaurus For å lage bedre spørringer kan man også bruke en tesaurus. En tesaurus er et kontrollert vokabular hvor ekvivalente, hierarkiske og assosiative relasjoner er identifisert for å forbedre gjenfinning. Tesaurusen bygger på konstruksjon av enkle kontrollerte vokabular som modulerer disse tre fundamentale typene av semantiske relasjoner.[10] I Figur 4 er et ord vist som en foretrukket term, med semantiske relasjoner til termer som er mer generelle, mer spesifikke og som er en variant eller er beslektet til ordet. Mer generell term Hierarkisk relasjon Variant av termen Ekvivalent relasjon Foretrukket term Ekvivalent relasjon Variant av termen Assosiativ relasjon Hierarkisk relasjon Assosiativ relasjon Beslektet term Mer spesifikk term Beslektet term Figur 4 Semantiske relasjoner i en tesaurus[10] 17

Beregningslingvistikk I informasjonsgjenfinningssystemer kan man bruke tesaurusen som et oppslagsverk der man prøver å finne ord som kan være substitutter eller tillegg til de ordene man allerede har i en spørring. For å lage god en tesaurus må man gjøre mye manuelt arbeid som tar lang tid. Hvor langt tid det tar avhenger av størrelsen på domenet man skal lage en tesaurus for og hvor mange tvetydigheter som finnes. Internett er et stort domene, som det ville ta mange år å lage tesaurus for, derfor finnes det ikke i dag en tesaurus for hele Internett. Man kan bruke enkelttesauruser for spesifikke områder på Internett, men da må man først gjenkjenne at man er i et bestemt område. 2.4 Pragmatisk analyse Den pragmatiske analysen kan hjelpe til med å løse referanseproblemer om man i et naturlig språk-grensesnitt har lov å skrive flere setninger eller dersom man bruker referanser innad i en setning. Følgende eksempel viser slike referanseproblemer som mennesker enkelt kan forstå, men som maskiner kan ha svært store problemer med:[2] Mary had given up on her fear of flying, and started to like it. John had no idea what she was talking about. He thought the woman was silly. I det første linjen referer man til flying ved å bruke it. I den andre linjen er she en referanse til Mary og he en referanse til John. Linje to referer også til Mary når den sier the woman. 2.5 Oppsummering Dette kapittelet har vist at beregningslingvistikk kan brukes på mange måter for å gjøre naturlig språk om til mer maskinforståelig språk. Det har også skissert hvordan beregningslingvistikk kan brukes til å finne ulike språklige egenskaper som kan utnyttes til å gjøre et naturlig språk-grensesnitt mer intelligent. I kapittel 6 er mitt naturlig språk-grensesnitt til søkemotoren Google beskrevet. Dette grensesnittet benytter seg av syntaktisk analyse. I kapittel 4 er en rekke spørsmålsbesvarelsessystemer som benytter seg av beregningslingvistikk for å løse naturlig språk-utfordringer beskrevet. Noen av disse systemene bruker semantisk og pragmatisk analyse i tillegg til syntaktisk analyse. 18

Søkemotorer 3 Søkemotorer En søkemotor er et informasjonsgjenfinningssystem som kan gjenfinne dokumenter basert på spørringer. Informasjonsgjenfinning(IR) er en del av datateknikken som studerer gjenfinning av informasjon (ikke data) fra en samling av skrevne dokumenter. De gjenfunne dokumentene skal tilfredsstille en brukers informasjonsbehov, som ofte er uttrykt i naturlig språk. Eksempel på søkemotorer er Google[11], AltaVista[12], Kvasir[13] og Yahoo[14]. Alle disse søkemotorene gjenfinner dokumenter på Internett. Resten av dette kapittelet vil ta for seg søkemotorer som kan gjenfinne informasjon som ligger på Internett. Informasjonen om søkemotorer er hentet fra kapittel 2, 7 og 13 i Baeza-Yates og Ribeiro-Neto sin bok[4]. 3.1 Virkemåte Før søkemotoren kan ta i mot søk må den ha noen dokumenter å gjenfinne. Dokumenter får den tak i ved å sende ut en spider på Internett som kan hente informasjon om tilgjengelige dokumenter. De innhentede dokumentene blir deretter indeksert og man får en liste av ord med lenker til dokumenter hvor ordene forekommer[15]. Indeksering er forklart nærmere i delkapittel 3.3. Figur 5 viser hvordan en bruker kan få informasjon fra en søkemotor. Først skriver brukerne inn sin spørring i søkefeltet til søkemotoren. Denne spørringen blir omformulert før den blir sendt til indeksen. Omformuleringen kan bestå av fjerning av stoppord eller stemming av søkeordene. Disse begrepene er forklart i delkapittel 3.1.1 og 3.1.2. Google er et eksempel på en søkemotor som fjerner stoppord fra spørringen. Spørringsomformuleringsboksen i Figur 5 består av stiplede kanter fordi omformuleringen ikke trenger å være en del av søkemotoren. Søkemotoren kan sende spørringen rett til oppslag i indeksen. Etter at man har funnet dokumenter som inneholder søkeordene blir dokumentene sendt til rangeringsprosessen. Her blir dokumentene rangert etter hvor godt de besvarer spørringen. Det finnes mange ulike algoritmer man kan bruke her. Resultatet av rangeringen blir sent til brukeren som en rangert liste av lenker til relevante dokumenter. En utvidet forklaring av rangering finnes i delkapittel 3.4. Søkemotor spørring Resultatliste søkeord Rangering av dokumenter Oppslag i indeksen Spørringsomforming Dokumentinformasjon Figur 5 Virkemåten til en søkemotor 3.1.1 Stoppord Stoppord er ord som forekommer ofte jevnt over en samling av dokumenter. Eksempel på stoppord er artikler, preposisjoner og konjunksjoner. De fleste søkemotorer tilbyr i dag fulltekstindeksering av dokumenter, der fulltekstindeksering innebærer at man indekserer alle 19

Søkemotorer ord i en tekst. Stoppordene blir også indeksert. En utvidet forklaring av indeksering finnes i delkapittel 3.3. Selv om de fleste søkemotorer bruker fulltekstindeksering er det noen som tar bort stoppordene som en bruker har skrevet i en spørring. Google gjør eksempelvis dette for at søketiden skal bli kortere. Om man ønsker å søke på spesifikke stoppord er det mulig å sette stoppordet i en frase ved å bruke hermetegn, eller man kan sette en pluss foran stoppordet man eksplitt ønsker skal tas med som et søkeord. Søkeeksempel 14 illustrerer et tilfelle der det er gunstig å kunne søke på stoppord. Hvis man ikke kunne søke på stoppord her hadde søket vært meningsløst. Søkeeksempel 14 To be or not to be Google vil for Søkeeksempel 14 ignorere alle ord utenom not, og dermed gi ut meningsløse svar, mens AltaVista og Yahoo vil gi ut treff som inneholder hele frasen. 3.1.2 Stemming Stemming er en teknikk for å redusere ord til deres grammatiske stamme. Eksempel på stemming er om man gjør ordet cats om til cat eller walking om til walk. Når personer skriver en spørring bruker de bare en morfologisk form for hvert ord. Den morfologiske formen man velger kan ha innvirkning på søkeresultatet. For eksempel kan relevante dokumenter inneholde flertallsformen, genitivsformen eller fortidsformen av et ord som er formet i presens i spørringen. Dette kan føre til at man går glipp av disse relevante dokumentene. For å unngå dette problemet kan man bruke stemming, som går ut på å redusere alle ord til deres stamme. Dette innebærer å ta bort alle affikser slik at kun den morfologiske roten står igjen. Dermed søker man kun etter stammen til ordet, og man får tak i alle relevante dokumenter, såfremt indeksen også er satt opp etter stammer. Ulempen med å bruke stemming er at man ikke kan skille mellom ulike morfologiske former av ord. Søkeeksempel 15 ville ha vært meningsløst å sette opp i et system som stemmer. Søkeeksempel 15 Cats Cat Notasjon: -(minustegn) betegner den boolske operatoren NOT som er forklart nærmere i delkapittel 3.4.1. Søket sier at man skal ha dokumenter som inneholder Cats, men som ikke inneholder Cat. Fordelen med stemming er at man får større recall, man gjenfinner alle dokumenter som inneholder en eller annen morfologisk form av ordet. Ulempen er at precision blir lavere, fordi man kan gjenfinne dokumenter som man ikke var interessert i, som indikert i Søkeeksempel 15. Begrepene recall og precision er nærmere forklart i delkapittel 3.5. 3.2 Spørringsutforming For at man skal få et bra søkeresultat må man velge ut gode søkeord til å spesifisere søket. Hvis man ikke har en god spørring kan man heller ikke få et godt resultat. Søkeordene bestemmer hvilke dokumenter som blir hentet ned fra indeksen. Når man velger søkeord må 20

Søkemotorer man finne ut hvilken morfologisk form som er best å søke på, med mindre søkemotoren tilbyr stemming. Man må også finne ut om søkemotoren tilbyr søking på stoppord. Søkemotorer kan også tilby utvidelser av spørringer ved hjelp av en tesaurus. Dette er eksempel på søkekompetanse et grensesnitt kan simulere, slik at brukere som ikke har denne kompetansen kan utnytte søkemotoren fullt ut. Mitt system, som er beskrevet i kapittel 6, lager et slikt grensesnitt. 3.3 Indeksering Når et IR-system skal gjenfinne dokumenter kan det ikke søke sekvensielt gjennom alle dokumenter som finnes i samlingen, med mindre man har en veldig liten samling. Grunnen er at søket vil ta veldig lang tid. Derfor innfører IR-systemene det man kaller en indeks eller ofte et sett av indekser. I websøk er indeksen ekstra viktig fordi slike søkemotorer vanligvis ikke har de faktiske dokumentene lett tilgjengelig. De fleste indekser er en variant av inverterte filer. En invertert fil er en liste av sorterte ord som hver har et sett av pekere til sidene hvor de forekommer. For at brukeren skal kunne velge ut relevante dokumenter blir også en kort beskrivelse lagret i indeksen. Denne inneholder for eksempel størrelse, tittel, noen linjer eller noen overskrifter fra dokumentet. De vanligst indekseringsteknikkene kan redusere en invertert fil til 30% av tekststørrelsen. Om søkemotoren bruker komprimering i tilegg kan man redusere den til 10%. Når søkemotoren skal besvare en spørring, gjør den søk i indeksen. Antall søk er bestemt av antall ord i spørringen. Spørringer som består av to eller flere ord må gjennom et flettesteg, der søkemotoren kombinerer de ulike søkeresultatene fra indeksen. Dette steget er effektivt om ordene ikke er for frekvente i sammenligningen. Hvis ordet er veldig frekvent, får man lange lister av referanser til dokumenter som skal kombineres og fletteprosessen vil ta lengre tid. Inverterte filer kan også peke til bestemte ord inni dokumentene, men dette kan være kostbart på Web. Søkemotoren må i slike sammenhenger ikke bare peke til siden som inneholder ordene, men også bestemte posisjoner. Google er et eksempel på en søkemotor som bruker denne indekseringen. Fordelen med et slikt oppsett er at man enkelt kan finne fraser ved å se på avstanden mellom ord. Mange søkemotorer, for eksempel Google og AltaVista, tilbyr frasesøk. Hvilke andre teknikker de bruker er til en viss grad ukjent eller hemmelig. Søkemotorene kan også tilby mer avanserte søk som tar høyde for stavefeil og søk på regulære uttrykk. Indekseringen har innvirking på hvilke dokumenter søkemotoren kan gjenfinne og hvor raskt søkemotoren kan gjenfinne dem. 3.4 Rangering av dokumenter Før brukeren blir vist resultatet av søket i indeksen, blir dokumentene rangerte. Det vil si at de får en eller annen verdi som bestemmer hvor godt dokumentet passer til spørringen. Dokumentet som har høyest verdi blir plassert øverst i resultatlisten. De fleste søkemotorer bruker varianter av den boolske modellen eller vektormodellen for å rangere dokumenter. Disse modellene er forklart under. På web er rangeringen av dokumentet vanligvis avhengig av indekseringen og ikke selve teksten i dokumentet. Det er vanskelig å 21

Søkemotorer finne informasjon om rangeringsalgoritmene dagens søkemotorer bruker, fordi de er i stadig endring, ofte er komplekse og fordi informasjonen er hemmelig. Både rangering og indekseringsteknikker er søkemotorens konkurransefortrinn foran de andre søkemotorene i kampen om brukene, derfor ønsker ingen bedrifter å fortelle omverdenen om hvordan de har implementert søkemotorene sine. 3.4.1 Den boolske modellen Den boolske modellen består av setteoretiske teknikker som prøver å uttrykke informasjonsspørringer som boolsk algebra. Man bruker boolske uttrykk som AND, OR og NOT. Hvis man for eksempel ønsker å søke på informasjon om katter og hunder, kan man formulere spørringen katter AND hunder. Denne spørringen vil gjenfinne dokumenter som inneholder begge ordene katter og hunder. Hadde det stått OR i søket ville man gjenfunnet dokumenter som inneholdt katter, hunder eller begge deler. Fordelen med den boolske modellen er at den er svært enkel og intuitiv. Ulempen er at alle dokumenter blir merket enten som fullstendig relevant eller som fullstendig irrelevant, samt at brukeren har problemer med å formulere gode boolske spørringer. AltaVista er et eksempel på en søkemotor som tilbyr søk med de boolske operatorene AND, OR, og NOT. 3.4.2 Vektormodellen Vektormodellen bruker algebraiske IR-teknikker. Denne teknikken representerer dokumenter og spørringer som vektorer. For å gjøre teknikken effektiv tar man ofte bort stoppord før man lager vektoren. Grunnen er at stoppord er så vanlige at de ikke kan forbedre søket. Verdiene til de ulike koordinatene i en vektor representerer vekten eller viktigheten til en gitt term. Likheten mellom dokumenter og spørringer blir beregnet ved å sammenligne deres n- dimensjonale vektorer. I dette tilfelle er n det totale antall termer i spørringen. Man kan også sammenligne retningen til vektorene. For å beregne vektorene til dokumentene teller man forekomster av ord, og beregner frekvens. Ut fra denne beregningen får man en term-av-dokument-matrise, hvor hver kolonne i matrisen representerer et dokument sine termer. For å normalisere vektene i matrisen bruker man frekvensen et ord har i hele dokumentsamlingen. Følgende skjema kan brukes for å beregne vektingen: W IDF i, j = TFi, j i Denne metoden heter tf idf-vekting. Wi,j er vekten til term i i vektorrepresentasjonen til dokument j. TFi,j er frekvensen til term i i dokument j og IDFi er lik (N/ni), der N er totalt antall dokumenter i samlingen, mens ni er antall dokumenter som inneholder term i. IDF står for invers dokumentfrekvens. Det dokumentet som får høyest vekt vil i denne modellen få høyest rangering. Beregningen av dokumentvektorer er gjerne en del av indekseringsprosessen. Både den boolske modellen og vektormodellen kan utvides med funksjonalitet som tar høyde for sider som pekes til av sider i svaret eller sider som peker til en side i svaret. Pekere og lenker er beskrevet nærmer i neste delkapittel. 3.4.3 Bruk av hyperlenker Noen rangeringsalgoritmer bruker hyperlenkeinformasjon for å rangere dokumentene. Denne form for rangering utgjør en av forskjellene mellom webbaserte søkemotorer og IR i vanlige 22

Søkemotorer databaser. Antall lenker som peker til en side angir hvor populær siden er og hvilken kvalitet innholdet har. Mange like lenker mellom sidene eller sidene som referer til siden indikerer en viss relasjon mellom dem. Et eksempel på en teknikk som bruker hyperlenkeinformasjon er WebQuery. Teknikken tar et sett av websider, for eksempel svaret til en spørring, og rangerer dem basert på hvor sammenbundet sidene er. Videre utvider den settet ved å finne websider som har en sterk tilknytning til settet. PageRank(PR) er et annet eksempel. Dette er en teknikk som er en del av rangeringsalgoritmen til Google. Teknikken simulerer en bruker som tilfeldig navigerer gjennom weben ved å hoppe til en tilfeldig side med sannsynlighet q eller følger en tilfeldig hyperlenke med sannsynlighet 1-q. Videre antar man at brukeren aldri går tilbake til sider han har besøkt før ved å følge de samme stiene. La C(a) være antall utgående lenker fra a og anta at sidene p1 til pn peker til a. PR kan da beregnes på følgende måte: n PR( a) = q + (1 q) PR( p ) / C( i p i i= 1 Verdien q må bli satt av systemet. Rangeringsvekten til andre sider blir normalisert etter hvor mange lenker det er i siden. Hvilken rangeringsalgoritme man velger å bruke vil ha innvirkning på hvor godt resultatet blir og hvor raskt et søk kan bli gjennomført. 3.5 Evaluering i søkemotorer Når man skal evaluere hvor bra en søkemotor må man først finne ut hva man skal evaluere. Man kan for eksempel evaluere hvor brukervennlig søkemotoren er eller hvor god søkemotoren er til å gjenfinne relevante dokumenter. Det sistnevnte målet er mest brukt. For å finne ut av dette må man bestemme hvordan man vil utføre evalueringen og i hvilket miljø. Man må bestemme om man skal gjøre en automatisk eller manuell evaluering og hva slags testsett man skal bruke. For å gjøre en automatisk evaluering trenger man typisk en samling spørringer som har relatert et gitt sett av dokumenter til seg. Når man gir en slik spørring til søkemotoren skal den ideelt sett gjenfinne et bestemt sett av dokumenter som er definert i testsettet. På slike testsamlinger kan man bruke det man på engelsk kaller precision og recall. Man kan også bruke relevans, altså hvorvidt et dokument er relevant i forhold til spørringen eller ikke. Denne variabelen er boolsk. Eksempel på en samling som støtter automatisk evaluering er TREC-samlingen som blir forklart nærmere i neste delkapittel. Fordelen med automatiske evalueringer er at man kan kjøre gjennom mye større testsett, enn om en enkelt person manuelt skulle sjekke resultatene. Figur 6 viser et eksempel på sammenhengen mellom recall og precision [4]. Anta at man har en spørring I og en samling. I denne samlingen finnes det et sett R av dokumenter som er relevante for I. Anta deretter at man kjører et søk med I og får et svarsett A. I Figur 6 er R vist som en blå sirkel og A er vist som en gul. Ra er snittet av dokumentmengdene R og A. Recall er andelen av relevante dokumenter som er gjenfunnet. Ut fra ovennevnte variabler kan man beregne recall som følger: ) Recall = Ra R 23

Søkemotorer Precision er andelen av de gjenfunnede dokumentene som er relevante, og kan beregnes på følgende måte: Precision= Ra A Samling Relevante dokumenter i svarsett Ra Relevante dokumenter R Svarsett A Figur 6 Precision og Recall for en gitt spørring [4] Om man bruker et testsett der spørringen ikke har bestemte sett av dokumenter relatert til seg, kan man ikke bruke recall og precision. Om man bruker Internett under testing kan man ikke på forhånd vite hvilke dokumenter som er relevante for en bestemt spørring. Med andre ord kan man ikke bregne recall. For å beregne precision kan man si at Ra er antall relevante dokumenter man gjenfant og at A er antall dokumenter man gjenfant. Bestemmelse av relevante dokumenter blir i denne sammenheng gjort manuelt med at en person ser igjennom dokumentene for å sjekke om de besvarer spørringen. Når man evaluerer en webbasert søkemotor kan man velge å evaluere den i sitt rette miljø, nemlig ved å bruke Internett som testsamling, eller man kan bruke en testsamling der spørringene har bestemte dokumenter de skal gjenfinne. Mange søkemotorer velger å bruke testsamlinger der man har et bestemt sett av dokumenter som skal gjenfinnes ved bruk av bestemte spørringer, fordi slike evalueringer er enkle å gjøre automatisk, og fordi man får precision- og recall-verdier som kan sammenlignes med andre søkemotorer. Eksempel på slike samlinger er TREC-samlingene. 3.5.1 TREC For å kunne beregne precision og recall må man ha en samling der man har testspørringer med bestemte sett av dokumenter som er relevante for hver spørring. Slike samlinger må man ofte lage manuelt og det tar mye tid. Samlingen må også ha en slik kvalitet at man kan stole på at resultatene fra en evaluering er sanne. Forsking på informasjonsgjenfinning har ofte blitt anklaget for at de ikke har robuste og konsistenet testbenker for IR-systemer. For å gjøre noe med dette problemet startet man Text REtrieval Conference(TREC) i 1992. TREC [16] er sponset av National Institute of Standards and Technlolgy(NIST) og U.S. Department of Defense, og er en del av TIPSTER tekst programmet. Hensikten med TREC er å støtte forsking på informasjonsgjenfinningssystemer ved å tilby en stor testsamling man kan bruke ved evaluering av slike systemer. De har som mål å fremme 24