Fag. Navne. Undervisere. Antal anslag. IT og Informationssøgning de bagvedliggende datalogiske og sprogteknologiske principper



Relaterede dokumenter
Informationssøgning metoder og scenarier

Sproglige problemstillinger ved informationssøgning

Sprogteknologi I Undervisningsplan Forårssemester 2009

Semantiske relationer og begrebssystemer

Sprogteknologi I Undervisningsplan Forårssemester 2008

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit.

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet

Lagervisning. Dina Friis, og Niels Boldt,

Det Rene Videnregnskab

Prosodi i ledsætninger

- Hvad er det, og hvilke fordele kan opnås ved fælles løsninger?

Fraktaler Mandelbrots Mængde

Det islandske ordklasseopmærkede korpus MÍM Sigrún Helgadóttir

Matematik, maskiner og metadata

Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S

Daglig brug af JitBesked 2.0

Monitorering af danskernes rygevaner. Metodebeskrivelse m.m. Januar 2004

It og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse

Vinkelrette linjer. Frank Villa. 4. november 2014

VID. VID-projektets mission. at foretage en række sprogteknologiske eksperimenter i et dynamisk trekantsmiljø: forskningsinstitution

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

It-støttet excerpering og registrering af nye ord og ordforbindelser

Sådan bruger du Den Danske Regnskabsordbog

Korpusbaseret lemmaselektion og opdatering

Identifikation af planer der ikke findes i PlansystemDK vha. datasættet... 9

Effektiv søgning på web-steder

Sprogteknologiske resourcer for islandsk leksikografi

Løsning af simple Ligninger

10 Vigtigste SEO Ranking Faktorer

Kort introduktion til Google.

Dokumentation af programmering i Python 2.75

Fuldstændig fantastisk?

Evaluering af familierådslagning i Børne- og Ungerådgivningen

Generelt Udtræk leveres som Zip-filer indeholdende udtræk i det format, som man som kunde har valgt.

Dette er et uddrag fra: Lis og Torben Pøhler: "Hu Hej - Vild med dyr" - en læsevejledning Maaholms Forlag 2000.

Dorthes Bog Centrum har ca forskellige bøger (bibliografiske enheder), som alle skal være søgbare fra prototypen.

Langtved Data A/S Nyhedsbrev

Projekt 1 Spørgeskemaanalyse af Bedst på Nettet

a. Find ud af mere om sprogteknologi på internettet. Hvad er nogle typiske anvendelser? Hvor mange af dem bruger du i din hverdag?

Indholdsfortegnelse 1 Indledning 2 Grammatisk analyse af SMT output 3 BLEU 4 Translation memory tool 5 Statisk- og regelbaseret maskinoversættelse

Det erhvervsrelaterede projekt 7. semester. Projekt plan

Et oplæg til dokumentation og evaluering

It-sikkerhedstekst ST8

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Vurdering af billedmanipulation Opgave 1

Sådan bruger du Den Engelske Regnskabsordbog

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Sådan bruger du Den Dansk-Engelske Regnskabsordbog

LEKTION 4 MODSPILSREGLER

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Energibalance og overvægt (Matematik/Idræt)

Erhvervslivet imod tvungen adskillelse af revision og rådgivning

Uddybende spørgsmål til MUD-GIS kravspecifikation

Infokløft. Beskrivelse. Faglige mål (i dette eksempel) Sproglige mål(i dette eksempel)

Database for udviklere. Jan Lund Madsen PBS10107

Her vil jeg gerne være Det er sådan dine kunder skal tænke

Import af rekursivt (parent-child) hierarki i Palo

Rita Lenstrup. Kritiske bemærkninger til artikel af Henning Bergenholtz, Helle Dam og Torben Henriksen i Hermes 5 l990, side

Pointen med Funktioner

Brugerundersøgelse Lægemiddelkorpus

09/ Version 1.4 Side 1 af 37

5. Afvigelser i stamdata fravær... 9

DM507 Algoritmer og datastrukturer

Egenskaber ved Krydsproduktet

Dansk Industri har den 3. september 2015 offentliggjort deres årlige erhvervsklimaundersøgelse.

Om at konvertere PDF - den gode, den dårlige og den forfærdelige metode

Brugergrænseflader i VSU

Introduktion til projekter

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Metoder og struktur ved skriftligt arbejde i idræt.

Evalueringsnotat. Værktøj til systematisk tidlig opsporing af kronisk sygdom hos mennesker med psykiske lidelser på botilbud

Bringe taksonomier i spil

Søren Sørensen STANDARD RAPPORT. Adaptive General Reasoning Test

DM507 Algoritmer og datastrukturer

På kant med EU. Det forgyldte landbrug - lærervejledning

Guide til god netkommunikation Introduktion og vejledning til at producere til intranettet

Trekanter. Frank Villa. 8. november 2012

Notat om metadata om grunddata

Retningslinjer for bedømmelsen. Georg Mohr-Konkurrencen runde

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Abstrakte datatyper C#-version

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Elementær Matematik. Mængder og udsagn

Kommentarer til Kanalstrategi som skal ende ud i HØRINGSSVAR

Projektbeskrivelse: 2. undersøge de mest brugte undervisningsprogrammer mht. læsefaglige elementer og metoder samt bagvedliggende læsesyn.

TANKERNE BAG DE NYE VEJLEDENDE SÆT I MATEMATIK

Vistemmernu. Et webbaseret værktøj udviklet af Programdatateket i Skive. programdatateket@viauc.dk Web:

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1

Bedømmelsesvejledning til prøven i skriftlig fremstilling D, december Dansk som andetsprog

Sundhedsstyrelsen Monitorering af danskernes rygevaner

Københavnske ejerlejlighedspriser en meget begrænset indikator for hele landets boligmarked

Intro til design og brug af korpora

Nyhedsbrev. Kurser i VækstModellen

Konvertering af STO-SIMPLE til LMF med udgangspunkt i filen: nysimpletotal.sgml

Transkript:

Fag IT og Informationssøgning de bagvedliggende datalogiske og sprogteknologiske principper Navne Andreas Søeborg Kirkedal Lars Kolind Jonas Andersen Undervisere Bolette Pedersen, Costanza Navarretta, Patrizia Paggio, Jakob Grue Simonsen og Nils Andersen Antal anslag 67.207 (37,34 normalsider)

2 Indhold INDLEDNING 4 Beskrivelse af opgave 4 Beskrivelse af rapport 4 Gold standard Indeksering Ordnet Søgning Evaluering Beskrivelse af program 5 Hvem har skrevet hvad? 6 GOLD STANDARD (ANDREAS) 6 Relevans 6 Objektiv relevans overfor subjektiv relevans Søgepolitik 7 Recall, precision og fallout 9 INDEKSERING (JONAS) 10 Sprog 11 Sproglige værktøjer 12 PoS-tagging Lemmatiser Stemming Stopordsliste Neutralisering af store og små bogstaver Sproglige værktøjer benyttet i vores opgave Termers relevans 17 Frekvens Vægtning Datastruktur for vægtning 18 Manuel og automatisk indeksering 18 ORDNET (ANDREAS) 19 RDF 21 Hjælpefiler 21 Implementation af DanNet 22 HyponymOf.rdf Synset.rdf SØGNING (LARS) 23 Forespørgsler 23 Ekspansion 23 Synonymer Hyperonymer Hyponymer Morforlogisk Vores brug af ekspansion 25 Vektorbaseret søgning 26 Implementering 26 Forespørgsler Søgningen Kald af topfunktioner Brugerinterface Output EVALUERING (ANDREAS) 31 Søgning uden ekspansion 31

3 Søgning med synonymiekspansion 32 Søgning med synonym- og hyperonymiekspansion 33 Søgning med synonym- og hyponymiekspansion 33 KONKLUSION 34 Implementering af CST 34 Tekstindlæsning 34 Afvikling af programmet 34 Udvidelsesmetode med synonymer 34 LITTERATURLISTE 36

4 Indledning Beskrivelse af opgave I denne rapport besvares den bundne skriftlige opgave i faget Informationssøgning de bagvedliggende datalogiske og sproglige principper. Til opgaven er udleveret følgende: et korpus bestående af 15 tekstfiler en readme fil, der beskriver korpus 2 RDF-hjælpefiler med information udtrukket fra DanNet en readme fil, der beskriver RDF-filerne en fil med forespørgsler Beskrivelse af rapport Rapporten er udformet således, at afsnittene indledes med en teoretisk del efterfulgt af en praktisk del. Rapporten er inddelt i fem hovedoverskrifter 1. Gold Standard 2. Indeksering 3. Ordnet 4. Søgning 5. Evaluering I rapporten noteres nye begreber og søgeord med kursiv, mens filnavne og programkode noteres med skrifttypen Courier New. Gold standard I dette afsnit bliver der opstillet gold standarder for alle søgninger i forespørgselsfilen, og problematikken omkring relevansbegrebet diskuteres. Der argumenteres for valg af søgepolitik og begreberne recall, precision, fallout og f-score beskrives. Indeksering I afsnittet om indeksering præsenteres den teoretiske baggrund for manuel og automatisk indekseringsproces herunder en diskussion af fordele og ulemper. Sprogbrug og sproglige værktøjer præsenteres, og vi argumenterer for de valg, vi i den forbindelse har truffet, da vi lavede programmet.

5 Ordnet I dette afsnit beskrives diverse ordnet og begrebsrelationer, herunder hyponomi og hyperonomi. RDF-formatet og hjælpefilerne forklares samt indlæsningen af DanNet i programmet. Søgning Afsnittet om søgning handler om forskellige former for ekspansion samt vektorbaseret søgning. Afsnittet er i vid udstrækning forklaret i forhold til implementering i programkoden. Ydermere gennemgås programmets brugerinterface og output. Evaluering Endelig evalueres de forskellige søgemetoder med og uden ekspansion i forhold til de forskellige gold standarder, deres recall, precision, fallout og f-score. Beskrivelse af program Det program, vi har lavet, kan ses som bilag med kommentarer. Programmet er skrevet i sproget Python, findes i bilaget program.zip, og kaldes eksamen.py. For at kunne eksekvere programmet, kræves det, at man har installeret en Python fortolker samt pakken Natural Language ToolKit. Sidstnævnte benævnes herefter NLTK. Hvis man vil anvende programmet på et andet korpus, skal man enten implementere et kald til en lemmatiser eller manuelt gå ind på Center for SprogTeknologi s hjemmeside og forbehandle korpus gennem de sproglige værktøjer, som dér stilles til rådighed. Center for SprogTeknologi benævnes herefter CST. De forbehandlede korpusfiler skal indkodes i programmet og lægges i korpuskataloget sammen med de ubehandlede korpusfiler. Der skal ydermere ændres i funktionen ekspsoeg, hvor strengen foedevarer skal ændres til navnet på de nye ubehandlede korpusfiler. En konsekvens af denne programmeringsløsning er, at de nye korpusfiler skal have samme filnavn og kun adskilles ved tal begyndende med 1. Eksempelvis som foedevarer1.txt, foedevarer2.txt osv. Alle filer skal gemmes med ISO-8859-15 encoding.

6 Hvem har skrevet hvad? Afsnittene Gold Standard, Ordnet og Evaluering er skrevet af Andreas, Jonas har skrevet Indeksering, mens Lars har skrevet Søgning. Indledning og konklusion er skrevet i fællesskab. Gold Standard (Andreas) For hver af de på forhånd givne forespørgsler skal der opstilles en gold standard. Ud fra disse standarder skal vores søgemaskine evalueres. Man opstiller en gold standard ved for en given forespørgsel at udvælge, hvilke tekster, der er relevante for forespørgslen. Det vil sige, at en gold standard er et ønsket resultat, som anses for korrekt. Vi har lavet vores gold standard ved at analysere de dokumenter, vi inddrager i programmet. Denne analyse er muliggjort, fordi vores korpus er meget lille, og fordi vi har nogle prædefinerede forespørgsler. Relevans Før man kan lave en gold standard, skal man afklare hvad relevans er. Man kan forklare relevans som en egenskab ved forholdet mellem et stykke information og en bruger af en søgemaskine, der foretager en søgning med et specifikt formål for øje (Huang et. Al, 2006). Objektiv relevans overfor subjektiv relevans For at afklare relevansbegrebet har vi valgt at sondre mellem objektiv relevans og subjektiv relevans. Objektiv relevans er i nogen grad statisk. Einstein og relativitetsteori vil altid stå i relation til hinanden, da Einstein opdagede relativitetsteorien. På samme måde som hund altid vil stå i relation til dyr, da hund er hyponym til dyr. På denne måde er der nogle begreber, der altid vil have relation til andre, hvis udgangspunktet er objektiv relevans. Der er dog nogle faktorer der kan ændre på den objektive relevans. Et eksempel er den indvirkning, gymnasiereformen har haft på faget geografi. Kulturgeografi er blevet udfaset fra geografifaget, og der er nu kun naturgeografi tilbage. Det betyder, at et begreber som befolkningspyramide ikke længere er relevant for en gymnasieelev, da det værktøj, som begrebet beskriver, ikke bliver brugt i historie og samfundsfag, som har assimileret domænet for kulturgeografi (Hansen 2008).

7 Hvis udgangspunktet er subjektiv relevans eller brugerrelevans, er relationerne mellem begreber ikke statiske. Alle relationer der findes mellem bestemte begreber er ikke af interesse for alle brugere. Ofte er det et lille udsnit af den objektive relevans, der har subjektiv relevans for en bruger. Problemet med relevans er, at det ikke er en objektiv sandhed eller statisk forhold for alle individer. Hvad der er relevant for en bruger, er i høj grad afhængigt af brugerens forhåndsviden om det domæne, der søges information i. Hvis en tømrer søger på grantræ, er vedkommende måske interesseret i, hvilke egenskaber den træsort har, og om det er godt til at beklæde en ydervæg. Hvis en familiefar søger på grantræ, er det mere sandsynligt, at han gerne vil vide, hvor han skal finde sit juletræ henne, eller hvilken type grantræ, der fælder mindst. Hvis søgningen ikke foregår om vinteren, vil familiefaderen muligvis forsøge at finde ud af, om han skal plante grantræer i sin have. Der er altså flere faktorer, der påvirker relevansbegrebet for brugeren af en søgemaskine. Disse faktorer er eksempelvis forhåndsviden, specialistviden, generel viden og tidspunkt. Det vil sige, at der er forskel på, hvad der er objektivt relevant, og hvad der er relevant for brugeren. Søgepolitik For vores gold standard har vi valgt at have en inkluderende søgepolitik. På trods af at man skal sondre mellem objektiv og subjektiv relevans, er det karakteristisk for de to, at subjektiv relevans er en delmængde af objektiv relevans. Delmængden er fuldstændig indeholdt af objektiv relevans. Der findes undtagelser til denne regel, da en bruger kan have følelsesmæssig eller erindringsmæssig tilknytning til en given genstand. Det er en relationstype, der ikke er dækket af objektiv relevans, og som sjældent vil være grundlag for en informationssøgning. Den første af teksterne, foedevarer1.txt, handler om agurk nærmere betegnet drueagurk. Overbegrebet til agurk er grøntsag. Hvis objektiv relevans er vigtig for brugeren, er alle dokumenter, der omhandler grøntsager, relevante for søgningen. Hvis det er målet at finde frem til de mest relevante tekster, eksempelvis de tekster der handler om begrebet grøntsag, vil inkludering af foedevarer1.txt blive opfattet som støj i søgningen, da dokumentet handler meget specifikt om en bestemt grøntsag.

8 Grundet vores inkluderende søgepolitik, er teksten foedevarer1.txt således medtaget i gold standard for søgning på ordet grøntsag. Vi besluttede også at medtage foedevarer12.txt i gold standard for søgning på brød. Brød er hyperonym til bolle. Det eneste der adskiller begreberne fra hinanden er dog størrelse og hvis man valgte ikke at forme dejen som boller er opskriften den samme som på brød. Da forskellen på de to begreber er så lille har vi valgt at inkludere foedevarer12.txt i gold standard for søgning på brød. Vi diskuterede også forespørgslen bestående af flere termer, nemlig fødevarer børn. Diskussionen gik her på, at en tekst kan handle om det ene søgeord, men ikke det andet. Problemstillingen var, at det for denne søgning vil være relevant at få søgeresultater, hvor kun en af søgetermerne fremkommer. Man må nødvendigvis gå ud fra, at når man søger på fødevarer børn, er det relationen mellem de to termer, man anser for relevant, altså at man søger efter information omkring fødevarer til børn eller børns vaner omkring fødevarer. Dette ændrer den objektive relevans, således at det er fællesmængden af objektivt relevante dokumenter, der er interessante. For at finde fællesmængden har vi lavet to gold standarder. Ud fra de tilfælde, hvor der er sammenfald af relevante tekster i de to gold standarder, kan man lave en gold standard for søgning på fødevarer børn. En anskuelse vi måtte lave var, at man også kunne komme ud for, at en tekst er relevant for en søgning, selv om søgeordet ikke er at finde i teksten. F.eks. er foedevarer7.txt relevant for en søgning på grøntsager. Ordet forekommer ikke i teksten, men ligesom foedevarer1.txt handler også foedevarer7.txt om en bestemt grøntsag. På samme måde støder man ind i dette problem i foedevarer12.txt ved en søgning på brød. Boller er hyponym til brød, og squash/zucchini/courgette er hyponymer til grøntsager, hvilket kan ses i hyponymof.rdf. Igen er det afhængigt af brugerens præferencer, om teksten vil være relevant eller støj, men de er inkluderet i de respektive gold standarder. Lignende problemer for kornsort opstår for foedevarer10.txt. Her nævnes flere forskellige typer af korn såsom byg og hvede. Yderligere typer der nævnes, adskilles ved tidspunktet for, hvornår de bliver sået: vårbyg og vintersæd. Der er igen en mængde ord, der gør dokumentet relevant for en søgning.

9 Resultatet af vores analyse af relevante dokumenter i korpus kan ses i bilaget Gold Standarder.doc. Recall, precision og fallout Med vores gold standarder som evalueringsgrundlag kan man evaluere søgemaskinen. Precision og recall bliver ofte benyttet til at evaluere kvaliteten af informationssøgning. Kort fortalt menes med precision andelen af reelt relevante automatiske identificerede termkandidater (Paggio 2006) og med recall menes andelen af relevante termer, som rent faktisk er blevet fundet (IBID). Eksempel: Da gold standarderne for fødevarer og børn har sammenfald mellem 2 dokumenter, foedevarer6.txt og foedevarer14.txt, vil en søgning, hvor kun disse 2 dokumenter bliver fundet, have recall og precision på 100 %. Hvis man har recall på 100 %, betyder det, at alle relevante dokumenter i korpus er fundet. Recall-værdien siger dog intet om, hvor mange irrelevante dokumenter, der samtidig er fundet. Hvis der er fundet mange irrelevante dokumenter, skaber det støj i søgningen, således at man potentielt skal læse mange dokumenter igennem, før man finder den viden, man reelt har søgt efter. Precision på 100 % betyder, at alle dokumenter, man har fundet, er relevante. Precision viser ikke, om alle relevante dokumenter er fundet. Dvs. at man kan have 100 % precision i sin søgning, men ikke have fundet alle relevante dokumenter i korpus. Der findes også endnu en værdi, nemlig fallout. Fallout viser proportionen af irrelevante dokumenter i søgningen. Det er en metode til at måle, hvad vi har kaldt støj. Jo højere værdi, jo mere støj er der i søgningen. Fallout udregnes som fællesmængden af irrelevante dokumenter og hentede dokumenter divideret med mængden af irrelevante dokumenter i korpus. I kraft af definitionerne af recall og precision vil man altid tilstræbe, at søgninger har 100 % precision og 100 % recall. I så fald vil alle relevante dokumenter i korpus være fundet, og der vil være 0 % fallout. I praksis er det dog næsten umuligt at opnå dette, og den meget varierende definition af brugerrelevans er i den forbindelse et af de

10 største problemer. Det kan dog opnås for søgninger i små domænespecifikke LSP 1 korpora, men der vil opstå problemer ved skalering. Jo større korpus er, jo sværere er det at opnå gode resultater, da det bliver mere kompliceret at sikre højt recall, høj precision og minimalt fallout. Hvis korpus består af heterogene domænespecifikke dokumenter såsom internettet, vil det være svært at opnå en god præcision, da der på internettet er større mulighed for stavefejl, homonymi og polysemi på tværs af domæner. Precision og recall hænger på den måde sammen i en slags elastisk forhold. Det er muligt at øge en søgemaskines precision, men det sker ofte på bekostning af recall. Hvis man øger recall, eksempelvis ved at indhente flere dokumenter vha. en bredere søgning, vil det ofte resultere i, at flere af dokumenterne er irrelevante altså bliver ens precision lavere og fallout højere. Man kan kombinere recall og precision til en enkelt målbart værdi, der kaldes f-score. Denne værdi kan, udover at være en slags gennemsnit, vægtes afhængigt af, om man gerne vil have god precision eller godt recall. F2-score vægter recall højest mens f0.5 vægter precision højest. Indeksering (Jonas) For at danne overblik over dokumenter og deres sammenhæng, vil man som udgangspunkt analysere de enkelte dokumenter grundigt med henblik på at identificere deres indhold. Ved at mærke dokumenterne i et korpus med en profil, der beskriver de enkelte dokumenters indhold, kan man nøjes med at søge i mængden af profiler. Derigennem kan man så identificere de dokumenter, der indeholder den information, man søger, og som er relevante i forhold til ens forespørgsel. Denne form for repræsentativ mærkning af dokumenter kaldes indeksering. 1 Language for Special Purpose. For disse korpora vil brugerne primært være domæneeksperter og man vil kunne antage et niveau af forhåndsviden, og derfor i højere grad tage udgangspunkt i subjektiv relevans.

11 Indeksering bliver af Salton og McGill defineret som den vigtigste og sandsynligvis sværeste del af informationssøgning. Of all the operations required in information retrieval, the most crucial and probably the most difficult one, consists in assigning appropriate terms and identifiers capable of representing the content of the collection items. (Salton & McGill 1986, s. 54) Salton og McGill beskriver tre fordele ved at indeksere dokumenter (Salton & McGill 1986, s. 56). For det første er det lettere for brugeren at danne sig et overblik over en dokumentsamling. For det andet kan dokumenter relatere til hinanden ud fra tilsvarende eller relaterede emner i henhold til deres profil. For det tredje muliggøres det at forudse de enkelte informationers relevans i forhold til et givent søgekriterium. Indeksering kan foretages både manuelt og automatisk. Ved manuel indeksering analyserer man dokumenterne manuelt og bestemmer indekstermer ud fra dokumenternes indhold. Problematikken opstår, hvis man vil søge specifik information i et større korpus. Da er det imidlertid ikke realistisk at gennemføre en sådan form for analyse manuelt, da det er for tids- og ressourcekrævende (Salton & McGill 1986, s. 55). Man må derfor finde på en måde, hvorpå denne proces kan effektiviseres, hvorfor man oftest benytter sig af automatisk indeksering. Sprog Før indekseringsprocessen påbegyndes skal der tages stilling til, igennem hvilket indekseringssprog, man udtrykker et dokuments emne. Her taler man om ukontrolleret og kontrolleret sprog. Gør man brug af kontrolleret sprog, bruges specifikke termer til at karakterisere dokumenternes indhold. Et scenarie kunne være, at man havde en samling dokumenter, hvor man ønskede at indeksere dokumenterne i forhold til udvalgte termer. Man ville på den måde kunne se de udvalgte termers relevans i de enkelte dokumenter i samlingen. Det kan være fordelagtigt at kontrollere indekseringsvokabularet, således at de termer, der bruges til at identificere dokumenters indhold med, er forudbestemte (Salton & McGill 2006, s. 56). Fordelen består i, at man ud fra indeksering kan synliggøre de prædefinerede termers relevans for de enkelte dokumenter.

12 I det ukontrollerede sprog tages der udgangspunkt i et dokuments sprogbrug, hvorigennem hele dokumentets tekst er indekserbar. Alle termer kan her udtrækkes og genfindes i dokumenter, uanset hvor i dokumentet de findes. Det kan beskrives på den måde, at dokumentet består af en mængde af termer, hvor man har mulighed for at søge på alle termerne. Derved er det ikke nødvendigt, at emne eller begreb tilpasses en autoritativ liste, hvorfor der er flere indgange til dokumentet. Kontrolleret sprogbrug kan være en fordel i indekseringsprocessen, hvis man vil indeksere et stort antal dokumenter, der omhandler mange emner. Hvis man gerne vil udtrække information tilhørende et bestemt domæne fra et korpus, der indeholder dokumenter med information om mange domæner, kan indekseringstiden nedsættes, og recall og precision forøges. Disse fordele er dog forudsat, at der er en koordinering af indekstermer og domænespecifikke søgetermer. Et scenarie er, hvis man som mekaniker gerne vil søge internettet, som består af heterogene tekster, igennem for information vedrørende mekaniske problemer og mekaniske egenskaber ved biler, kan en kontrolleret indeksering således være en fordel. Vi benytter os konsekvent af ukontrolleret sprog, selvom man ville kunne argumentere for, at brugen af sproglige værktøjer peger i retningen af det modsatte. Denne argumentation beskrives i afsnittet om sproglige værktøjer. Sproglige værktøjer Ved hjælp af sproglige værktøjer gøres det lettere at repræsentere den viden, som dokumenter indeholder. Når man bearbejder et korpus med sproglige værktøjer, er grundtanken, at man behandler ordene, således at de lettere kan repræsentere den viden, teksterne indeholder, så den senere kan fortolkes. (Hansen 2006, s. 354) De former for sproglige værktøjer, man typisk benytter, er tagging, lemmatisering, stemming, stopordsliste og neutralisering af store og små bogstaver. Disse værktøjer er hver især beskrevet i følgende afsnit. PoS-tagging PoS-taggeres funktion er at tilskrive en syntaktisk markør til hvert token i en tekst. Et token er en størrelse, som for eksempel kan bestå af et ord, et tegn, en stående vending

13 eller en forkortelse. Et punktum er således et token, hvis det står i slutningen af en sætning. Men hvis punktummet er en del af en forkortelse, er det den samlede forkortelse, der er et token. Dvs. at PoS-tagging er afhængigt af, at teksten, der bliver behandlet, er tokeniseret. Afhængigt af, hvilket tagset, man arbejder med, ændrer taggerens tilgang sig. I forbindelse med denne opgave er den syntaktiske markør et Part-of-Speech-tag (PoStag), der tilstræber at mærke tokens med ordklasse og andre morfosyntaktiske kategorier. Der er forskellige typer af taggere. Vi vil kort beskrive henholdsvis den statistiske, regelbaserede og transformationsbaserede tagger. Den statistiske og den regelbaserede tagger bygger på en leksikonbaseret tagger. En leksikonbaseret tagger sammenligner et korpus med et leksikon, der har det mest sandsynlige PoS-tag tilknyttet et givent ord. Det tilskriver derpå alle ord i korpus med et PoS-tag. Den statistiske og den regelbaserede tagger forbedrer den leksikonbaserede ved brug af enten regler eller statistikker. En statistisk tagger bruger således det ovennævnte tokeniserede korpus til at udregne sandsynligheder. Det er især sandsynligheden af sekvenser af tags og derefter sandsynligheden for, at dette tag har et givent token i den givne kontekst. Med en regelbaseret tagger vil man, når et korpus er blevet behandlet af en leksikonbaseret tagger, opstille en mængde regler, der har til hensigt at forbedre det output, man får. Målet er på den måde få flere korrekt taggede tokens. Reglerne, også kaldet disambigueringsreglerne, udformes efter, hvilke mønstre reglerne skal undersøge. Den sidste type tagger kaldes en transformationsbaseret tagger. Et eksempel på en sådan er Brill-taggeren. Denne kan beskrives som en blanding af en regelbaseret og en statistisk tagger. I denne tagger er det regler, der bestemmer, hvilke tags, der skal tilskrives hvilke tokens. Udformningen af regler står maskinen selv for. Ligesom en statistisk tagger har Brill-taggeren et tokeniseret korpus, taggeren bliver trænet på. På baggrund af træningskorpusset laver Brill-taggeren en mængde regler, som den bruger til at tagge andre korpora. De regler, som en Brill-tagger kommer frem til, kan være identiske med dem, en lingvist vil komme frem til. Nogle af reglerne har overhovedet intet med syntaks at gøre, men drejer sig udelukkende om semantik.

14 CST s PoS-tagger, som vi gør brug af, bygger på Brill-taggeren. Lemmatiser Hvis man anskuer taggerens funktion i kontekst med yderligere sproglige værktøjer, er den ganske brugbar som optakt til at lemmatisere. Dorte Haltrup Hansen beskriver denne sammenhæng sådan: udføres en del af den morfologiske analyse af PoS-taggeren ved dens tildeling af morfosyntaktiske tags til hvert ord i en tekst. Lemmatiseren tager sig her af den sidste del af analysen, hvor forholdet mellem ordformen og dets lemma afklares (Hansen 2006, s. 360). En lemmatiser bruger således den sprogteknologiske ordbog til at genkende et ord og føre det tilbage til dets grundform (Hansen 2006, s. 359). Idéen med at lemmatisere er, at ordlisten, som skal behandles, bliver mere korrekt, fordi man i sin betragtning kun anskuer lemmaet. Eksempelvis vil infinitivet æde og dets udvidede form ædelse ikke få hver deres plads på den ordliste, der skal ende med at være den vægtede liste. I øvrigt består de synsets, der er i DanNet af lemmaer. Dette giver yderligere en god grund til at lemmatisere, da det i så fald er lettere at sammenholde disse. Lemmatisering af termer fjerner i øvrigt kvantificeringsegenskaber ved en given term. Dette er dog ikke et problem, da kvantificering af det semantiske indhold først bliver relevant ved søgning i applikationer, der gør brug af natursprogsgrænseflader. De bedste resultater for lemmatisering opnås, hvis man arbejder med dokumenter, som allerede er PoS-tagget (Braasch et al. 2006, s. 86). Grunden til dette er netop, at lemmatiseren skal genkende den rigtige ordklasse. Hvis den ikke gør det, løber man hurtigt ind i problemer, eksempelvis med ordet brød. Brød er et substantiv, men kan også tolkes som et verbum i præteritum, altså datid af at bryde. Netop ovenstående problematik gør sig gældende i CST s lemmatiser, som vi gør brug af. Denne problematik kan afhjælpes ved brug af PoS-tagging, netop fordi lemmatiseren så kan genkende brød som det substantiv, det er. Stemming Stemming kan beskrives som en mindre avanceret form for lemmatisering. Ved stemming skærer man frekvente endelser af ord, således at man eksempelvis fjerner

15 ene fra flertalsformen af ordet brød. Metoden er dog ikke synderligt anvendelig, da der er en del problematikker forbundet med den. Netop fordi stemming udelukkende kan beskære ordet for at få det til at fremstå i form af sin stamme, må man ud fra den synsvinkel antage, at ord med samme stamme, har fælles betydning. Denne antagelse er naturligvis fejlagtig. Metoden er dog meget anvendelig i engelsksprogede søge- og indekseringsscenarier, hvor stemming ofte bruges til at fjerne pluralis suffikset. Stopordsliste Stopordslister gør sig gældende ved automatisk indeksering, hvor der tælles ord- eller frasefrekvenser i dokumentet, hvorefter man rangerer dem i forhold til deres forekomst. Man ønsker således at fjerne såkaldt støj i søgningen ved at frasortere de ord, der er uden semantisk indhold. Disse ord kan nemlig ikke anvendes til at beskrive et dokuments indhold. Desuden har kombinationen af disses hyppighed og mangel på semantisk indhold en negativ effekt på precision. For at beskæftige sig med de mellemfrekvente ord i en dokumentsamling, er man derfor nødsaget til at isolere dem. Hvis man benytter sig af en god stopliste sorterer man kun udvalgte ord fra. Virkningen består i, at man i stoplisten har en liste af ord uden semantisk indhold. Disse ord kaldes funktionsord. Stoplisten fungerer som en slags filter, man sammenholder med dokumentets profil. I praksis fungerer det således, at hvis ordet findes i både stoplisten og dokumentet, fjernes ordet fra dokumentet. Funktionsord på dansk tilhører lukkede ordklasser. Det er derfor er muligt at oprette en stopordsliste på baggrund af ordklasse, og fjerne ord baseret på deres PoS-tag. Da vi har valgt, at outputtet fra CST består udelukkende af lemmaer, og ikke PoS-tags, har vi oprettet en liste med ord tilhørende de lukkede ordklasser som beskrevet ovenstående. Efter man har fjernet funktionsordene, skal man finde frem til de ord, der er anvendelige som indekstermer og deres relation til dokumentets indhold. Neutralisering af store og små bogstaver Hvis et givent ord findes flere gange i en tekst, men eksempelvis varierer mellem at være stavet med stort eller lille forbogstav, vil ordet blive opfattet som to forskellige ord. Dette sker som følge af, at computeren ikke er i stand til at skelne ordets semantiske indhold. Det vil have en indflydelse på frekvensen og derigennem vægtningen. Derfor vælger vi at neutralisere store og små bogstaver. Der findes en

16 nem metode til at neutralisere store bogstaver i Python, nemlig vha. metoden string.lower(). Sproglige værktøjer benyttet i vores opgave Af ovennævnte sproglige værktøjer er det kun stemming, vi ikke har gjort brug af i vores indekseringsproces. En stemmingfunktion er relativt enkel at programmere ved hjælp af regulære udtryk eller ved at tage en skive af en streng, og derved udskifte den uønskede sekvens ved ords endelse. Men stemming er som beskrevet et unødigt værktøj, når man kan gøre brug af en lemmatiser. For at lette arbejdet med tekst i vores program, har vi valgt at neutralisere store bogstaver, så alle bogstaver er små. Denne beslutning faldt ganske naturligt, da vi som tidligere nævnt benytter CST s sproglige værktøjer. Det output, man får derfra, består udelukkende af små bogstaver. Derudover er termerne i DanNet også skrevet med småt. Det viste sig, da vi havde bearbejdet vores korpus gennem CST s PoS-tagger, at problematikken med substantivet brød, som er beskrevet tidligere, ikke blev afhjulpet som forventet. De eventuelle fejl i outputtet fra lemmatiseren har således muligvis påvirket den statistiske del af programmet. Netop fordi denne funktion er så grundlæggende for de efterfølgende processer, afføder den en mængde problemer. Vi var i programmet nødsagede til at lave en løsning på problemet. Efter manuel gennemgang af det output, vi fik fra CST, konkluderede vi, at fejlen tilsyneladende kun påvirkede brød. Der er muligvis andre ord, der bliver påvirket af samme fejl. Men eftersom brød er det eneste af de indekstermer, vi i opgaven beskæftiger os med, der bliver påvirket, har vi valgt ikke at gennemgå det samlede korpus for yderligere forkerte lemmatiseringsresultater. Det havde været optimalt at rette fejlen i selve lemmatiseren, men dette var ikke en mulighed. Vi besluttede at omgå problemet ved at indføre en regel, således at forekomster af verbet bryde, ændres til brød. Et ønskeligt scenarie ville være at implementere disse sproglige værktøjer i selve programmet. På den måde ville man både kunne importere ubearbejdede korpora og automatisk lemmatisere søgestrenge. Dette ville give en mere uafhængig søgemaskine. Det er muligt at downloade CST s sprogteknologiske værktøjer, hvis man vil lave et uafhængigt sprogteknologisk indekserings- og søgeprogram. Den software, man kan

17 downloade, er skrevet programmeringssproget C++. Vi kunne dog ikke finde en metode til at implementere denne software i vores program. Eftersom vi har benyttet sproglige værktøjer, kan der argumenteres for, at vi gør brug af kontrolleret sprog. Men ud fra den anskuelse, at indekseringstermerne er bestemt ud fra dokumenternes indhold og ikke er prædefinerede, holder vi fast på, at sproget er ukontrolleret. Termers relevans Frekvens I vores program går brugen af sproglige værktøjer, på nær stoplisten, forud for oprettelse af frekvenslisterne. For at finde frem til de ord, man vil bruge som indekstermer, er frekvensmåling et nyttigt værktøj, fordi det fortæller noget om, hvilke ord, der beskriver dokumenterne bedst (Salton & McGill 2006, s. 73). Frekvensen er en beregning af ords forekomst i en given tekst. Når man har foretaget denne beregning, kan man altså se, hvilke termer, der forekommer hyppigst i de enkelte tekster, og derved danne et billede af de mest relevante termer. Hvis man bestemmer termers relevans udelukkende på baggrund af frekvensmåling, møder man et problem. Den antagelse, at et ord er en god indeksterm, fordi det forekommer ofte, er ikke gyldig, da man netop leder efter identificerende ord, der har en mere unik, beskrivende karakter. Derfor bruger man en stopliste til at fjerne de semantisk indholdsløse ord. Frekvensmåling tjener også det formål, at det danner grundlag for vægtning af termer. Vægtning Mens man ved frekvens beskæftiger sig med ords forekomst i de enkelte dokumenter, beskæftiger man sig indenfor vægtning med ords forekomst i hele dokumentsamlingen. Hvis en term er højfrekvent, har det ikke nødvendigvis en høj vægtning. I vores program udføres vægtberegningen ud fra en frekvensliste, som er en associationsliste med termer som key og frekvens som value. Udregningen foregår i funktionen weight, og returnerer en associationsliste med termer som key og vægte som value.

18 Relevansen af indekstermer for en given tekst skal udregnes ved vægtning, hvor frekvens er en central faktor. Ords vægt bestemmes i forhold til deres frekvens i hele dokumentsamlingen. På den måde kan en lavfrekvent term blive betragtet som vigtig for en tekst, hvis den kun forekommer i få tekster i samlingen. Hvis den lavfrekvente term får en høj vægt, betyder det, at den er en indekseringsterm, fordi den adskiller dokumenter fra hinanden. Vægt udregnes med formlen TF*IDF. TF står for term frekvens og er værdien for en given term i et dokument i korpus, mens IDF står for inverteret dokument frekvens. IDF er en måde at vende frekvensanskuelsen om på. I stedet for at indeksere et dokument på et ord, indekserer man ordet med dokumenter. Hvis agurk forekommer i de fleste dokumenter i korpus, vil vægtningen blive lav, da agurk i så fald ikke vil være en god term at indeksere på, da den ikke adskiller indholdet af dokumenterne fra hinanden. De ord, der er vægtet højest, vil man kunne erklære som emneord. Emneord er naturligvis vigtige som kriterier i forespørgsler i dokumentsamlinger, hvor dokumenter er indekserede med emneord. Ved vægtet indeksering forstås, at emneord er tilknyttet poster med vægte eller grader, der angiver emneordenes relevans som indeks for poster. Datastruktur for vægtning weightlist_list er den liste, der indeholder indekseringen. Hvert element på listen er et freq_dist object. Disse objekter indeholder hver en vægtet liste for et givent dokument i korpus. Freq_dist object er en datastruktur, som er speciel for NLTKmodulet. Det er en afart af en associationsliste, og indeholder lemmaer med tilhørende vægt. Lemmaer står som key og vægt står som value. Denne liste bruges som indeks for korpus. Manuel og automatisk indeksering Indeksering går altså groft sagt ud på, at man analyserer de enkelte dokumenter og tilskriver dem en profil. Forudsat at de, der arbejder med indekseringen, er konsekvente i arbejdet, sikrer man som regel en høj kvalitet i indekseringen ved at indeksere dokumenter manuelt. Det kræver både et vist kendskab til og enighed om, hvilket system man bearbejder, eksempelvis med henblik på, hvilke forespørgsler systemet skal kunne håndtere. Ifølge Salton og McGill (Salton & McGill 2006, s. 58) er

19 resultatet af manuel indeksering dog oftest ikke udtømmende nok, da der udelades relevante informationer, netop fordi arbejdet ikke gøres konsekvent nok. Derfor anses potentialet i en kontrolleret manuel indeksering for værende ganske utopisk. Hvis indekseringen er optimalt eksekveret, hvad end den er manuel eller automatisk, vil en diskussion omkring, hvilken af metoderne, der er at foretrække, gå på, om effektiviteten ved automatisk indeksering opvejer værdien af den potentielle præcision ved manuel indeksering. Man kan nemlig ved manuel indeksering opnå en højere præcision end ved automatisk indeksering, fordi man derved kan tage højde for ord med forskellig ordklasse, som har samme lemma. Omvendt kan man spare betydeligt mange ressourcer ved at benytte sig af automatisk indeksering. I vores opgave opererer vi med et relativt lille korpus, hvorfor manuel indeksering havde været mulig. Men den præcision, vi kunne have opnået ved manuel indeksering, opvejes til fulde af den mængde ressourcer, der bespares ved den automatiske indeksering. Af den årsag bruger vi indekserer vi automatisk. Ordnet (Andreas) I vores søgemaskine gør vi brug af et ordnet. Et ordnet består af en mængde sproglige data såsom ord og begreber. Til ordene er knyttet definitioner, som er udtrykt i et formelt sprog og ud fra definitionerne bliver begreberne systematiseret. Der er ofte flere relationstyper såsom over- og underbegreb, del/helheds- og funktionsrelationer. Det ordnet, vi gør brug af, er DanNet. DanNet er et ordnet med danske ord, som er modelleret efter Princeton WordNet og EuroWordNet. I DanNet er ord arrangeret i synsets, som er sæt af synonymer grupperet for at beskrive et distinkt begreb. Baggrunden for synsets er den flertydighed, der er at finde i naturlige sprog. Ved at gruppere ord med samme betydning kan man tage højde for polysemi og homonymi. Polysemi betyder flertydighed, hvor homonymier to ord, som tilfældigvis har samme udtryk. (Herslund og Smith 2003, s. 92) Efter begreberne er beskrevet af synsets, kan de sættes i system. Grundet den metode, hvorpå definitioner i DanNet er opbygget, er det relativt ukompliceret at udtrykke og udtrække informationer om hyponomirelationer altså overbegrebsrelationer.

20 De semantiske relationer i denne sammenhæng kaldes hyponymi og er en hierarkisk relation. Det, som står under noget andet i hierarkiet, kan beskrives som x er en y. Et eksempel kan være en guitar er et strengeinstrument, hvor guitar er hyponym til strengeinstrument og strengeinstrument er hyperonym til guitar. Andre begreber som eksempelvis kontrabas og violin er også hyponymer til strengeinstrument, og er derfor såkaldte ko-hyponymer til guitar (IBID, s. 104). Definitioner i DanNet er indholdsdefinitioner, som er karakteriseret ved at indeholde genus proximus og differentia specifica (Madsen 1999, s. 76). Genus proximus er det nærmeste hyperonym og differentia specifica er træk, der adskiller underbegreber med samme genus proximus fra hinanden. Definitionerne stammer fra Den Danske Ordbog, som netop er bygget op på denne meget udbredte definitionstype. (IBID: s. 5). Problemet med denne type definition er, at relationer udover hyponomirelationer er svære at udtrykke. Der er en standardiseret metode til at udtrykke hyponomirelationer, men andre relationer udtrykkes ikke på en standardiseret måde og er meget afhængig af den enkelte redaktør. Ordnet kobler ord og begreber sammen på baggrund af definitioner i Den Danske Ordbog. Hyponomirelationer er udtrykt, men at ketcher, bold og net er relateret til tennis, er ikke udtrykt i ordnet. Indenfor objektiv relevans er det et problem, da en relation mellem relativitetsteori og Einstein ikke vil være udtrykt, og Einstein vil ikke være nævnt med mindre ordet indgår i et synset, der beskriver en klog person. 2 (Fellbaum 1998, s. 10) I relation til søgning er denne problemstilling mindre relevant, da relativitetsteorien ofte er benævnt Einsteins relativitetsteori. I tilfældet med ketcher er ketcher hyperonym til tennisketcher. Det vil ikke give et problem i et søgescenarie med denne søgemaskine, da vi ved søgeekspansion udvider med underbegreber og søger på dele af komposita. Dvs. at en søgning på ketcher vil finde ord, hvori ketcher er en del af et kompositum såsom tennisketcher, badmintonketcher, squashketcher osv. For søgemaskiner med disse egenskaber er leksikalske net såsom DanNet en udmærket hjælp til udvidelse af søgestrenge. For at de informationer, der står i DanNet kan bruges i forskellige applikationer, skal relationerne beskrives i et formelt sprog. DanNet er beskrevet i RDF. 2 Benævnt The Tennis Problem af Roger Chaffin.

21 RDF RDF står for Resource Description Framework og er en standardiseret metode til at beskrive data og udtrykke semantiske oplysninger på internettet. En ressource på internettet er et objekt såsom et billede, en hjemmeside, et XML-dokument eller et program. RDF er meget velegnet til internettet, da man kan bruge XML-syntaks til at udtrykke RDF. RDF er dog udviklet uafhængigt af XML, hvorfor det er muligt at gøre brug af RDF med anden syntaks end XML. Det er hensigtsmæssigt at beskrive DanNet i RDF med XML syntaks. XML er nemlig hverken platformuafhængigt eller licenspligtigt, og desuden er XMLs egen struktur hierarkisk. XML består af et rod-element og et vilkårligt antal grene. Grenene kan igen dele sig i flere mindre grene osv., således at der kan være et vilkårligt antal forgreninger. Derudover er XMLs primære formål at være et maskinlæsbart sprog. Af den grund er XML hensigtsmæssigt netop for RDF, da standardiseringen gør det nemt at udtrække de oplysninger, som er opmærket og repræsenteret på denne måde. Hjælpefiler Hjælpefilerne synsets.rdf og hyponymof.rdf, der skal indlæses til programmet, er opmærket i RDF. De synsets, der er repræsenteret, er NounSynsets. I DanNet såvel som WordNet og EuroWordNet er synsets fordelt på substantiver, adjektiver, verber og adverbier, men krop på vores synsets.rdf indeholder kun NounSynsets. I synsets.rdf er NounSynsets tildelt et ID, som står som værdi til rdf:aboutattributten i wn20schema:nounsynset-elementet. Substantiverne står som værdi til rdfs:label-attributten. Hvis man læser synset.rdf, kan man se, at substantiverne har et suffix, der består af tal, kommaer og underscore. Hvis ordet er efterfulgt af et komma, er det en indikation på at ordet er flertydigt. Indlejret i wn20schema:nounsynset-elementet er endnu et element, der indeholder en streng med synset id et. HyponymOf.rdf indeholder en masse rdf:description-elementer, der er adskilt vha. rdf:about-attributten. Attributten har en værdi, der henviser til et synset specificeret ved et synset id. Indlejret i rdf:description-elementerne er et wn20schema:hyponymof-element. Attributten rdf:resource indeholder en værdi,

22 der henviser til et synset, som er identificeret som hyperonym til synsettet i rdf:description-elementets rdf:about-attribut. Med de to filer kan man i en søgemaskine udvide sin søgning med søgeordets synonymer, hyperonymer og hyponymer. Implementation af DanNet Vi har tilføjet de to ovennævnte filer, hyponymof.rdf og synset.rdf, til vores søgemaskine, så det er muligt at udvide en given søgning. HyponymOf.rdf I hyponymof.rdf er den relevante information relationerne imellem de forskellige synset id er. Vi udtrækker denne information vha. regulære udtryk og tilskriver synset id er til en liste. Det kan vi, da alle synset er beskrevet på en standardiseret måde. Listen er arrangeret, så synset id med et lige listeindeks er efterfulgt af synset id er, der er hyponymer til det foregående synset id. Listen hedder hyponymid. Derefter bliver elementerne på hyponymid renset således at kun id et står tilbage. Indtil da har næsten alle elementer et præfiks som t-. Nogle elementer er dog ikke identificeret med tal, men med dummy eller Thing. Dummy refererer til et dummysynset da ikke alle synset i DanNet er definerede. Hvis der refereres til Thing, betyder det, at hyperonymet til et givent synset er det højeste i begrebssystemet som er entitet. Man kan hverken søge på dummy-synsets eller entitet og derfor bliver de tildelt en tom streng. Den tomme streng fungerer som plads holder på listen for at vedligeholde rækkefølgen. En liste er ikke hensigtsmæssig at bearbejde, da der er sammenfald mellem hyponymirelationer. Derfor bliver listen omsat til en associationsliste. Da associationslisten bliver lavet ud fra en liste, som kun er arrangeret efter indeksnummer, kan man lave associationslisten på to måder. En, hvor et synset id fungerer som key og ko-hyponymer til synsettet på en liste som value. Og en hvor et synset id, der fungerer som key, har ko-hyperonymer som value. Den valgte metode for søgeekspansion afgør, hvilken associationsliste, der bliver oprettet.

23 Synset.rdf Fra synset.rdf vil vi udtrække information om hvilke termer, der hører til synset id erne. Filen bliver indlæst på samme måde som hyponymof.rdf, og regulære udtryk bliver brugt til at udtrække den information, vi skal bruge og rense de indlæste variabler. En associationsliste bliver oprettet med synset id er som key og de ord, der udgør synsettet som value. Søgning (Lars) Forespørgsler Opgaveformuleringen stiller som krav, at forespørgslerne skal indlæses fra en fil indeholdende en eller flere forespørgsler, som igen kan bestå af et eller flere ord. I de tilfælde, hvor der er flere ord i en forespørgsel, er det aktuelt at søge på fællesmængden af disse ord, altså at finde tekster, hvor begge ord optræder. Dette er dog kun aktuelt, hvis man søger uden ekspansion. Søger man med ekspansion, vil det ikke være aktuelt at søge på fællesmængden men i stedet på delmængden. Yderligere er det i samme kontekst vigtigt, at forespørgslerne, der består af flere ord, behandles som én forespørgsel frem for som flere separate forespørgsler pr forespørgsel. Forespørgslerne, som de er udleveret, er man nødt til at modificere, for at de kan blive brugt i søgemaskinen. Da vores indeksering og udtrækket fra DanNet begge udelukkende består af lemmatiserede ord, er det en nødvendighed, at ordene i forespørgslerne står i deres grundform, for at de kan blive matchet. Ideelt set burde man indlæse forespørgselsfilen og derefter automatisk lemmatisere forespørgslerne, så det ikke ville være en nødvendighed at føde programmet med lemmatiserede ord. Ekspansion Der kan være flere måder at udføre en søgning på. Normalt vil en søgning i de flestes opfattelse være en søgning blot på det ord, man har givet som input, som de fleste søgemaskiner gør det. Det giver en ret præcis søgning på lige præcist dette ord, hvilket kan være meningsfuldt i nogle henseender. Problemet består i, at det er karakteristisk for informationssøgning, at man ikke nødvendigvis kender til de bedste søgetermer, da man netop søger information om et emne eller domæne. Da man muligvis ikke kender

24 de mest optimale keywords, som kan bruges i denne søgning, kan det være udfordrende at foretage den søgning, man er interesseret i. Mange ting har bestemte tekniske eller latinske navne, eller også kan ens søgeord været et homonym eller et polysem, hvilket giver støj i søgningen. I et sådant tilfælde vil det være en stor fordel at ekspandere sin søgning med eventuelle relaterede termer til begrebet. Dette kan ske med synonymer, hyponymer eller hyperonymer, som kan bidrage til den information, man søger. Synonymer Ekspandering af ens søgning er ikke nødvendigvis en fordel. Dog vil det i mange tilfælde være en fordel eventuelt at ekspandere med synonymer for at få fat i flere af de relevante tekster og derved forbedre recall. Eksempelvis kan en søgning på mad blive ekspanderet med føde, kost, æde og ædelse, hvilket i de fleste tilfælde vil forbedre ens søgning. Synonymer, som det ikke for os i denne sammenhæng er muligt at finde, er sammensætninger af ord der semantisk er synonymer. Dette kan eksmpelvis være ordet husholdningsaffald, der har det samme semantiske indhold som affald fra husholdninger, og derved er parvise synonymer. (Pedersen et al. 2005, s. 18) Sådanne elementer ville også i vores tilfælde være interessante at finde. Dog er det relativt kompliceret at få genkendt sådanne elementer som synonymer. Dette ville kræve, at disse sekvenser skulle identificeres som et syntagme i vores system frem for en sekvens. Yderligere ville det formentligt også være problematisk at få opbygget en synsetsamling, der indeholder sådanne synonymer, der muliggør ekspansion med denne type synonymer. Hyperonymer Ønsker man i højere grad et godt recall, kan det være en god idé at inddrage både synonymer og hyperonymer. Derved fås også tekster, hvor indholdet er indenfor samme overkategori, hvilket vil give nogle mere generelle tekster. Søger man eksempelvis på agurk, kan man derved få ekspanderet med grøntsag. Dette vil være fordelagtigt, hvis intentionen er at finde noget generelt vedrørende søgeordet.

25 Hyponymer At ekspandere med hyponymer er også en mulighed. Dette kan dog ikke altid opfattes som en fordel, da der ved nogle søgninger kan komme meget støj med i søgningen. Søger man eksempelvis på grøntsag, kan der blive ekspanderet med eksempelvis agurk, gulerod, selleri. Vil man blot finde oplysninger om grøntsager generelt, vil tekster om agurk, gulerod og selleri være irrelevante. Altså vil man få et højere recall, mens precision vil falde, især hvis det er en søgning på generelle oplysninger om grøntsager og ikke forskellige typer af grøntsager. Morforlogisk En anden måde at ekspandere på kan være at udvide søgestrengen med morfologiske varianter, så man kan matche uregelmæssige bøjninger af ordene. Dette er dog ikke nødvendigt for os, i og med at både søgestrenge og indeks er lemmatiserede tekster. Det, man i en anden sammenhæng kan bruge teknikken til, er at ekspandere forespørgslerne på det tidspunkt, hvor der søges i den originale tekst, som ikke er lemmatiseret, og derved også at kunne finde de uregelmæssigt bøjede ord også i teksten. Vores brug af ekspansion Vi har valgt at lave en løsning, hvor det er muligt enten at søge på den givne forespørgsel, at ekspandere med det relevante synset, hvori termen optræder, at ekspandere med en kombination af synonymer og hyperonymer eller at ekspandere med en kombination af synonymer og hyponymer. At vi ekspanderer med synonymer i de tre ekspansionsmuligheder, skyldes at synsets netop beskriver et ensartet semantisk indhold, så vi på den måde, delvist tager højde for polysemi og homonymi. At det er muligt at vælge, hvilken ekspansionsmetode, man vil bruge, giver en væsentligt bedre søgning, fordi man kan vælge den metode, som passer til brugerens præferencer. Forskellige søgninger vil laves ud fra forskellige opstillede mål. Man vil ofte på forhånd vide, hvad det er for en type søgning, man vil lave: om man vil finde noget generelt og overordnet, eller noget specifikt om forskellige underordnede afarter af søgeordet, som er, hvad man får ud af at ekspandere med henholdsvis hyperonymer og hyponymer. Er ekspansion med enten hyperonymer eller hyponymer for

26 omfattende, kan en ekspanderet søgning med synonymer i de fleste tilfælde gavne på recall uden at skade precision i for høj en grad. Brugeren vil deraf kunne søge væsentligt mere effektivt i forhold til brugerens præferencer, hvilket vil give et bedre resultat i de fleste søgescenarier. Vektorbaseret søgning Når man har en vægt for hvert ord i hver tekst i et korpus, er det muligt at lave en simpel form for vektorbaseret søgning. I en vektorbaseret søgning bliver dokumenter fundet med de forespørgsler, man har, og søgningen får tilskrevet en vis rang alt efter, hvor relevant søgeordet er i dokumentet. Rangen er i vores tilfælde vægtningen for det ord eller gennemsnittet af vægtningerne for de ord, som søgningen matcher i dokumentet. Ud fra dette kan man lave en vektorbaseret repræsentation af forespørgslerne ved at liste vektorerne op med deres værdi (Pupin & Silvestri 2006). I vores tilfælde vil dette være de tekster, forespørgslen findes i med vægt. Ideelt set burde man have en vektor, der for alle dokumenter indeholder oplysninger om, hvorvidt ordene findes i dem eller ej. Vi har valgt at forsimple det, så vi reelt set blot får de relevante oplysninger ud, og ikke får returneret dem, som ikke er relevante for dokumentet. Implementering Forespørgsler Da det er nødvendigt at kunne søge på flere ord i en forespørgsel, har vi valgt i funktionen fspliste at indlæse forespørgselsfilen linje for linje, og tilskrive hver linje til en liste, som har et element for hver forespørgsel i forespørgselsfilen. Hver forespørgsel kan bestå af flere ord. Alternativt kunne man have opdelt de forespørgsler, som består af flere ord, op i lister med flere elementer på. Vi har dog valgt at sende så simpelt et output som muligt videre, og derved blot have en streng af ord som forespørgsel pr element. Vælger man at ekspandere sin søgning, modificeres denne liste blot af funktionen udvidfspliste, som behandler hver forespørgsel på forespørgselslisten. Forespørgslerne bliver behandlet separat med hjælp fra udvidsoegestreng, som ekspanderer med synonymer, og eventuelt hyponymer eller hyperonymer, alt efter hvilken søgemetode man har valgt. Ekspanderer man, udvider man blot den