NO311657B1 - Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor - Google Patents

Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor Download PDF

Info

Publication number
NO311657B1
NO311657B1 NO19993413A NO993413A NO311657B1 NO 311657 B1 NO311657 B1 NO 311657B1 NO 19993413 A NO19993413 A NO 19993413A NO 993413 A NO993413 A NO 993413A NO 311657 B1 NO311657 B1 NO 311657B1
Authority
NO
Norway
Prior art keywords
words
word
text
symbols
sequence
Prior art date
Application number
NO19993413A
Other languages
English (en)
Other versions
NO993413D0 (no
NO993413L (no
Inventor
Knut Magne Risvik
Original Assignee
Fast Search & Transfer Asa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from NO983175A external-priority patent/NO983175L/no
Application filed by Fast Search & Transfer Asa filed Critical Fast Search & Transfer Asa
Priority to NO19993413A priority Critical patent/NO311657B1/no
Publication of NO993413D0 publication Critical patent/NO993413D0/no
Publication of NO993413L publication Critical patent/NO993413L/no
Publication of NO311657B1 publication Critical patent/NO311657B1/no

Links

Landscapes

  • Liquid Crystal Substances (AREA)

Description

Oppfinnelsen angår et søkesystem for informasjonsgjenfinning, spesielt informasjon lagret i form av tekst T, hvor en tekst omfatter ord og/eller symboler s og sekvenser S derav, hvor informasjonsgjenfinningen finner sted med en gitt eller varierende grad av overensstemmelse mellom et spørsmål Q, hvor spørsmålet Q omfatter ord/eller symboler q og sekvenser P derav, og gjenfunnet informasjon R, omfattende ord og/eller symboler og sekvenser derav fra teksten T, hvor søkesystemet omfatter en datastruktur for lagring av minst en del av teksten T og en metrikk M, som måler graden av overensstemmelse mellom spørsmålet Q og gjenfunnet informasjon R, og hvor søkesystemet implementerer søkealgoritmer for å eksekvere et søk, spesielt et fulltekstsøk på basis av stikkord kw, samt en fremgangsmåte i søkesystemet for informasjonsgjenfinning, spesielt informasjon lagret i form av tekst, hvor en tekst T omfatter ord, symboler s og sekvenser S derav, hvor informasjonsgjenfinningen finner sted med en gitt eller varierende grad av overensstemmelse mellom et spørsmål Q, hvor spørsmålet Q omfatter ord og/eller symboler q og sekvenser P derav, og gjenfunnet informasjon R omfattende ord og/eller symboler og sekvenser derav fra teksten T, hvor søkesystemet omfatter en datastruktur for lagring av minst en del av teksten T og en metrikk M som måler graden av overensstemmelse mellom spørsmålet Q og gjenfunnet informasjon R, hvor søkesystemet implementerer søkealgoritmer for å eksekvere et søk, spesielt et fulltekstsøk på basis av stikkord kw, hvor informasjonen i teksten Tev delt i ord s og ordsekvenser S og hvor ordene er understrenger av hele teksten adskilt av ordgrensetermer og danner en sekvens av symboler, og hvor hvert ord er strukturert som en sekvens av symboler.
Oppfinnelsen angår også bruk av søkesystemet.
En enorm informasjonsmengde innen forskjellige områder av menneskekunnskap er innsamlet og lagret i datamaskinbaserte minnesystemer. Da minnesystemer i økende grad er knyttet til offentlig tilgjengelige datakommunikasjonsnettverk, har det vært en økende innsats for å utvikle systemer og fremgangsmåter til å søke og gjenfinne informasjon for offentlig eller personlig bruk. Nåværende søkemetoder for data har imidlertid begrensinger som sterkt reduserer muligheten for effektivt å gjenfinne og
benytte informasjon lagret på denne måte.
Informasjon kan lagres i form av forskjellige datatyper og innenfor området informasjonssøking og -gjenfinning vil det være nyttig å skjelne mellom dynamiske data og statiske data. Dynamiske data er data som forandrer seg ofte og kontinuerlig, slik at mengden av valide data varierer hele tiden, mens statiske data bare sjelden forandrer seg eller overhodet ikke. For eksempel vil økonomiske data, slik som aksjekurser eller meteorologiske data, være utsatt for meget hurtige forandringer og er derfor dynamiske. På den annen side er arkival lagring av bøker og dokumenter vanligvis permanente og statiske data. Begrepet dataflyktighet er forbundet med hvor lenge informasjonen er valid. Flyktigheten av data har en viss betydning for hvordan informasjonen skal søkes og gjenfinnes. Store datavolumer krever en eller annen struktur for å muliggjøre søking, men tidskostnaden ved å bygge slike strukturer må ikke være høyere enn den tid dataene er valide. Kostnadene ved å bygge en struktur er avhengige av datavolumet og følgelig bør byggingen av datastrukturer for søking av informasjonen ta hensyn både til datavolumet og flyktigheten. Den innsamlede informasjonen som lagres i databaser og disse kan være strukturerte eller ustrukturerte. I tillegg kan databasene inneholde en rekke dokumenttyper, herunder sammensatte dokumenter som inneholder bilder, video, lyd og formatert eller annotert tekst. Spesielt er strukturerte databaser vanligvis utstyrte med indekser for å lette søking og gjenfinning av dataene. Veksten av World Wide Web (WWW) tilbyr en jevnt økende samling av sammensatte og hyperkjedede dokumenter. En stor del av disse er ikke samlet i strukturerte databaser, og det står ikke til rådighet indekser som tillater hurtig søking. Imidlertid er behovet for å søke dokumenter på World Wide Web åpenbart og som et resultat er det blitt utviklet en rekke såkalte søkemotorer, som kan tillate søking av i det minste deler av informasjonen på World Wide Web.
Med en søkemotor er det vanligvis forstått ett eller flere verktøy for å søke og gjenfinne informasjon. I tillegg til selve søkesystemet inneholder en søkemotor også en indeks, for eksempel inneholdende tekst fra et stort antall ressursadresser (URL) på Internett. Eksempler på slike søkemotorer er AltaVista, HotBot med Inktomi-teknologi, Infoseek, Excite og Yahoo. Alle disse tilbyr bekvemmeligheter for å utføre søking og gjenfinning av informasjon i World Wide Web. Imidlertid er deres hastighet og effektivitet på ingen måte jevnbyrdig med den store informasjonsmengde som er tilgjengelig på World Wide Web og følgelig later søke- og gjenfinningseffektiviteten til disse søkemotorene mye tilbake å ønske. Søking av en stor samling av tekstdokumenter kan vanligvis utføres med en rekke avspørringsstyper. Den mest vanlige avspørringsstype er jevnføring og varianter av denne. Ved å spesifisere et stikkord eller et sett av stikkord som skal foreligge i den etterspurte informasjonen, gjenfinner søkesystemet alle dokumenter som oppfyller dette kravet. Den grunnleggende søkemetode er såkalt enkeltstikkord-jevnføring. Det søkes etter stikkordet p og alle dokumenter som inneholder dette ordet skal gjenfinnes. Der er også mulig å søke etter et stikkordprefiks pj og alle dokumenter hvor dette prefikset foreligger i et eller annet stikkord i dokumentene, vil bli gjenfunnet. I stedet for å søke med stikkord er søkingen undertiden basert på såkalt eksakt frasejevnføring, hvor søkingen benytter flere enkeltstikkord i en bestemt sekvens. Som velkjent av fagfolk, kan den eksakte jevnføring av stikkordfraser i mange søkesystemer utføres med bruk av boolske operatorer, for eksempel basert på operatorer som OG, ELLER, IKKE som tillater en filtrering av informasjon. For eksempel vil bruken av en OG-frase føre til at alle dokumenter som inneholder de to stikkord forbundet med en OG-operator vil komme opp. Også en NÆR-operator er blitt benyttet for å gjenfinne bare de dokumenter hvor stikkordene stemmer overens og som er plassert "nær" hverandre i dokumentteksten. I mange strukturerte databaser er dokumentene rommet i databasen blitt annotert, dvs. for eksempel forsynt med felter som angir visse deler eller typer av informasjon i dokumentet. Dette tillater søking etter overensstemmelser bare i deler av dokumentet og er nyttig når typen av den etterspurte informasjon er kjent på forhånd.
Når det søkes i tekstdokumenter, er dataene strukturerte og foreligger vanligvis i et eller annet naturlig språk, så som engelsk, norsk etc. Når det søkes etter dokumenter med en bestemt kontekst, er det mulig å benytte nærhetsmetrikker for å jevnføre stikkord eller fraser som tilnærmet stemmer overens med spørsmålet. Å tillate feil i stikkord og fraser er en vanlig metode for nærhet, og å bruke en tesaurus er en annen vanlig metode. En proksimitetssøking krever bare at det skal være en partiell overensstemmelse mellom den gjenfunne informasjon og spørsmålet. Den internasjonale publiserte patentsøknad WO96/00945 tittel "Variable length data sequence matching method and apparatus" (Doringer & al., overdratt til International Business Machines Corp.), viser bygging, vedlikehold og bruk av en database med en trie-lignende struktur for å lagre innførsler og gjenfinne i det minste en delvis overensstemmelse, foretrukket den lengste delvise overensstemmelse eller alle delvise overensstemmelser for et søkeargument (inngangsnøkkel) fra innførslene.
For ytterligere å belyse den generelle teknikkens stand kan nevnes internasjonalt publisert patentsøknad nr. W092/15954 (Kimball & al.,
overdratt til Red Brick System, USA), US patent nr. 5 627 748 (Baker «fe al., overdratt til Lucent Technologies, Inc., USA) som begge viser datastrukturer i form av suffikstrær for søking/jevnføring i en kvadratisk matrise. Ingen av disse to publikasjoner viser noe annet enn et regulært suffikstre, bortsett fra bruken av en sammenkjedet liste under jevnføringen, og viser eller antyder ikke forsøk på å begrense søkerommet når det søkes etter tilnærmede overensstemmelser. Imidlertid ville slike bestrebelser være høyst ønskelige når det benyttes datastrukturer basert på suffikstrær for søking, spesielt for tilnærmede overensstemmelser i ekstremt store dokumentsamlinger, slik som kan finnes på World Wide Web.
Hovedhensikten med den foreliggende oppfinnelse er å skaffe et søkesystem og en fremgangsmåte til hurtig og effektiv søking og gjenfinning av informasjon i store datavolumer. Spesielt er det en hensikt med den foreliggende oppfinnelse å skaffe et søkesystem som er egnet til å implementere søkemotorer for søking av informasjonssystemer med desentralisert lagring av data i stort volum, for eksempel Internett. Det skal forståes at søkesystemet i henhold til oppfinnelsen på ingen måte er begrenset til å søke og gjenfinne informasjon lagret i form av alfanumeriske symboler, men like gjerne kan benyttes til å søke og gjenfinne informasjon lagret i form av digitaliserte bilder og grafiske symboler, da ordet tekst som her benyttet, også kan tolkes som bilder hvor disse er representert helt eller delvis ved sett av symboler. Det skal også forståes at søkesystemet i henhold til oppfinnelsen skal implementeres som programvare skrevet i en passende høynivåspråk på kommersielt tilgjengelige datamaskinsystemer, men det kan også implementeres i form av en dedisert prosessorretning for søking og gjenfinning av informasjon av den før nevnte art.
De ovennevnte hensikter og fordeler realiseres i henhold til oppfinnelsen med et søkesystem som er kjennetegnet ved at datastrukturen omfatter en trestruktur i form av et ujevnt adskilt sparse-suffikstre ST(7) for å lagre suffikser av ord og/eller symboler s og sekvenser S derav i teksten T, at metrikken M omfatter en kombinasjon av en editeringsavstandsmetrikk D( s, q) for en tilnærmet grad av overensstemmelse mellom ord og/eller symboler s;q i henholdsvis teksten T og et spørsmål Q og en editeringsavstandsmetrikk Dws(£-P) for en tilnærmet grad av overensstemmelse mellom sekvenser S av ord og/eller symboler s i teksten T og en spørsmålssekvens P av ord og/eller symboler q i spørsmålet Q, idet den siste editeringsavstandsmetrikk innbefatter vektende kostnadsfunksjoner for editeringsoperasjoner som omformer en sekvens S av ord og/eller symboler s i teksten 7* til sekvensen P av ord og/eller symboler q i spørsmålet Q, slik at vektingen finner sted med en verdi proporsjonal med en forandring i lengden av sekvensen S etter en transformasjon eller avhengig av størrelsen av ordene og/eller størrelsen av sekvensene S;P som skal jevnføres, at de implementerte søkealgoritmer omfatter en første algoritme for å bestemme graden av overensstemmelse mellom ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten T og et spørsmål Q, og en annen algoritme for å bestemme graden av overensstemmelse mellom sekvenser S;P av ord og/eller symboler i suffikstrerepresentasjonen av henholdsvis teksten T og spørsmålet Q, idet de første og/eller andre algoritmer søker datastrukturen med spørsmål Q i form av enten ord, symboler, sekvenser av ord eller sekvenser av symboler eller kombinasjoner derav, slik at informasjon R gjenfinnes på basis av spørsmålet Q med en gitt grad av overensstemmelse mellom den førstnevnte og det sistnevnte, og at søkealgoritmene etter valg også omfatter en tredje algoritme for å bestemme eksakt overensstemmelse mellom ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten T og spørsmålet Q og/eller en fjerde algoritme for å bestemme eksakt overensstemmelse mellom sekvenser S;P av ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten Tog spørsmålet Q, idet de tredje og/eller fjerde algoritmer søker datastrukturen med spørsmålet Q i form av enten ord, symboler, sekvenser av ord eller sekvenser av symboler eller kombinasjoner derav, slik at informasjon R gjenfinnes på basis av spørsmålet Q med en eksakt overensstemmelse mellom den førstnevnte og det sistnevnte.
I en fordelaktig utførelse av søkesystemet i henhold til oppfinnelsen er det ujevnt adskilte sparse-suffikstre ST( T) et ordadskilt sparse-suffikstre SSTwsC^O som omfatter bare en undermengde av suffiksene i teksten T.
Foretrukket er da det ordadskilte sparse-suffikstre SSTWS(7) et stikkordadskilt sparse-suffikstre SSTkws(7).
I ytterligere fordelaktig utførelser av søkesystemet i henhold til oppfinnelsen er den første algoritme for å bestemme graden av stikkordoverenstemmelse i et stikkordaskilt sparse-suffikstre SST|CWS(7<1>) kjennetegnet ved trekk som fremgår av det uselvstendige krav 4, den annen algoritme for å bestemme graden av stikkordsekvensoverensstemmelser i et stikkordadskilt sparse-suffikstre SSTkws(7) ved trekk som fremgår av det uselvstendige krav 6, et fordelaktig trekk i den annen algoritme ved det som fremgår av det uselvstendige krav 7, den tredje algoritme for å bestemme en eksakt stikkordoverensstemmelse i et stikkordadskilt sparse-suffikstre SSTkws(J) ved det trekk som fremgår av det uselvstendige krav 5, og endelig er den fjerde algoritme for å bestemme en eksakt stikkordsekvensoverensstemmelse i et stikkordadskilt sparse-suffikstre SSTkws(7) kjennetegnet ved det trekk som fremgår av det uselvstendige krav 8.
De ovennevnte hensikter og fordeler realiseres også i henhold til oppfinnelsen med en fremgangsmåte som er kjennetegnet ved å generere datastrukturen som et ordadskilt sparse-suffikstre SSTWS(7) for å representere alle suffikser som starter ved et ordskillesymbol i teksten T, å lagre sekvensinformasjon om ordene s i teksten Ti det ordadskilte sparse-suffikstre SSTWS(I), å generere en kombinert editeringsavstandsmetrikk M som omfatter en editeringsavstandsmetrikk T>( s, q) for ord s i teksten T og et spørreord q i et spørsmål Q og en ordstørrelsesavhengig editeringsavstandsmetrikk DWS( S, P) for sekvenser S av ord i teksten T og en sekvens P av ordene q i spørsmålet Q, idet editeringsavstandsmetrikken DWS( S, P) er minimumsummen av kostnader for editeringsoperasjoner som omformer en sekvens S til sekvensen P, slik at minimumsummen av kostnader utgjør minimumsummen av kostnadsfunksjoner for hver editeringsoperasjon vektet med en verdi proporsjonal med forandringen i totallengden av sekvensen S eller med forholdet mellom den aktuelle ordlengde og gjennomsnittlig ordlengde i sekvensene S;P, og å bestemme graden av overensstemmelse mellom ordene s, q ved å beregne editeringsavstanden D( s, q) mellom ordene s i den gjenfunne informasjon R og ordet q i et spørsmål Q, eller i tilfellet ordene s, q befinner seg mer enn k feil fra hverandre, å bestemme graden av overensstemmelse mellom ordsekvensene Sr, Pq av henholdsvis gjenfunnet informasjon R og et spørsmål Q for å beregne editeringsavstanden Dws(5'ÆPe) for alle overensstemmelser.
Fordelaktig omfatter fremgangsmåten i henhold til oppfinnelsen dessuten å veie en editeringsoperasjon som endrer ordet s til ordet q med en parameter for nærheten mellom karakterene til ordene s;q, slik at det således tas hensyn til likheten mellom ordene s;q når kostnaden for den angjeldende editeringsoperasjonen bestemmes.
I en fordelaktig utførelse av fremgangsmåten i henhold til oppfinnelsen begrenses antallet overensstemmelser ved å beregne editeringsavstanden D^ Sr- Pq) for et begrenset antall ord i spørreordsekvensen PQ.
I en annen fordelaktig utførelse av fremgangsmåten i henhold til oppfinnelsen defineres editeringsavstanden T)( s, q) mellom ordene s og et ord q rekursivt og beregnes ved hjelp av en dynamisk programmeringsprosedyre og editeringsavstanden DWS(5,P) mellom sekvenser S og en sekvens P defineres tilsvarende rekursivt og beregnes ved hjelp av en dynamisk programmeringsprosedyre.
I henhold til oppfinnelsen blir de ovennevnte hensikter og fordeler også realisert med bruken av søkesystemet i henhold til oppfinnelsen i en tilnærmet søkemotor.
Søkesystemet og fremgangsmåten i henhold til oppfinnelsen skal nå omtales mer detaljert i det følgende med henvisning til den ledsagende tegning, hvor fig. 1 viser et eksempel på et suffikstre,
fig. 2 eksempler på ordadskilte sparse-suffikstrær som benyttet i den foreliggende oppfinnelse,
fig. 3 et eksempel på et såkalt PATRICIA-trie som kjent i teknikken,
fig. 4 et ytterligere eksempel på et ordadskilt sparse-suffikstre som benyttet i den foreliggende oppfinnelse,
fig. 5 et eksempel på eksplisitt lagret ordsekvensinformasjon som benyttet i den foreliggende oppfinnelse,
fig. 6 en bladnodestruktur som benyttet i den foreliggende oppfinnelse, og fig. 7 skjematisk strukturen til en søkemotor med søkesystemet i henhold til den foreliggende oppfinnelse
Søkesystemet i henhold til oppfinnelsen består essensielt av tre deler, nemlig datastrukturen, metrikkene for tilnærmet overensstemmelse og søkealgoritmen. Når fulltekstgjenfinning er målet, slik det essensielt vil være tilfelle med søkesystémet i henhold til foreliggende oppfinnelse, så skal hele datasettet som skal gjenfinnes, være lagret i en datastruktur som støtter en høy avspørringssytelse.
Basiskonseptet som ligger til grunn for den foreliggende oppfinnelse skal først diskuteres i noen detalj. Lagret informasjon i form av tekst Ter delt i ord og ordsekvenser. Ordene er understrenger av hele teksten adskilt av ordgrensetermer. Mengden av ordgrensetermer er betegnet BTworej. Et vanlig sett av ordgrensetermer kunne være mengden {",':', '\t\ '\n', '\0', '?'} hvor \t angir en tabulatorkarakter, \n angir en linjematingskarakter og \0 angir en dokumentsluttindikator. I samband med den følgende beskrivelse av den foreliggende oppfinnelse vil det være nyttig med noen definisjoner vedrørende strenger og sekvenser.
Definisjon 1: Streng
En streng er en sekvens av symboler tatt fra et alfabet, så som ASCII-tegnene. Da er lengden av strengen er antallet instanser og symboler eller karakterer som utgjør strengen og betegnes \ x\. Hvis x har lengden m, kan strengen også skrives som x1, x2... xi... xm, hvor x, representerer det /te symbol i strengen.
En understreng av x er en streng gitt av en sammenhengende gruppe av symboler innenfor x. Således kan en understreng fås av x ved å slette ett eller flere tegn i begynnelsen eller slutten av strengen.
Definisjon 2: Understreng, suffiks og prefiks
En understreng av x er en streng x/ = xit *,+/,...x, for en eller annen 1< i< j< n. Strengen x, = x" = x,...x„ er et suffiks av streng x og strengen Xj = x/ = xix2... Xj er et prefiks av streng x.
Også begrepet ordsekvens vil bli benyttet.
Definisjon 3: Ordsekvens
En ordsekvens er en sekvens av adskilte, påfølgende ord. En ordsekvens
S = s1, s2,..., s„ består av n enkeltord (eller strenger) sj, s2, opp til s„.
Ordsekvenser er begrenset av sekvensgrensetermer. Mengden av sekvensgrensetermer er betegnet BTseq. En vanlig mengde av sekvensgrensetermer kunne være mengden {'\0'}, hvor \0 angir en dokumentsluttmarkør.
Begrepet tilnærmet ordjevnføring kan beskrives som følger.
Gitt en streng s = sis2... sn og en avspørringsterm q = qiq2... qm. Da er oppgaven å finne alle forekomster av q i s som høyst er k feil fra den opprinnelige avspørringsterm q. En nærhetsmetrikk angir hvordan feilene mellom q og en potensiell overensstemmelse sj... Sj skal begrenses.
En vanlig metrikk for tilnærmet ordjevnføring er Levenstein-avstanden eller editeringsavstanden (V.I. Levenstein, "Binary codes capable of correcting deletions, insertions, and reversals", (russisk) Doklady Akademii nauk SSSR, bind 163, nr. 4, pp. 845-8 (1965); også Cybernetics and Control Theory, bind 10, nr. 8, pp. 707-10 (1996)). Denne metrikken er definert som minimumsantallet editeringsoperasjoner som er nødvendig for å omforme en streng til en annen. En editeringoperasjon er gitt ved en eller annen omskrivningsregel, for eksempel:
(a—►£), sletting
(e—* a), innskudd
( a— >b), utskifting
Lap og m være to ord av henholdsvis størrelse i og j. Da betegner D( i, j) editeringsavstandn mellom zte prefiks til p ogyte prefiks til m. Editeringsavstandn kan da rekursivt defineres som:
Det er også mulig å definere en tilnærmet overensstemmelse på nivået til ord i en ordsekvens, og dette kan beskrives som følger.
Gitt en tekst T bestående av n ord w1, w2,..., wn hvor hvert av ordene er en streng av tegn. En sekvensmønster P består av m ord pi, p2,..., pm. Sekvensmønsteret P sies å ha tilnærmet forekomst i T om sekvensen Pi, p2,..., pm skiller seg høyst med k feil fra en sekvens wh wi+ I,..., Wj for en eller annen i,j, slik at l< i <j <n. Igjen bestemmer en nærhetsmetrikk hvordan antall feil mellom de to sekvenser skal beregnes.
En tekst som skal gjenfinnes, må i et søkesystem indekseres på en måte som letter søking av dataene. Følgelig er datastrukturen en kjernedatastruktur i søkesystemet i henhold til den foreliggende oppfinnelse og er basert på såkalte suffikstrær og spesielt et sparse-suffikstre. Disse to typer strukturer skal defineres i det følgende. Et suffikstre S(7) er en trerepresentasjon av alle mulige suffikser i teksten T. Alle unære noder i et suffikstre S(7) er sammenkjedet med sitt barn for å skape en kompakt variant.
Fig. 1 viser suffikstreet for teksten T = "structure"
Enda mer spesielt er den foreliggende oppfinnelse basert på sparse-suffikstrær. Disse ble innført av J. Kårkkåinen & E. Ukkonen i "Sparse Suffix Trees", Proceedings of the Second Annual International Computing and Combinatories Conference (COCOON '96), Springer Verlag, pp. 219-230, som igjen var basert på idéer publisert av D.R. Morrison, "PATRICIA - Practical Algorithm to Retrieve Information Coded in Alphanumeric", Journal of the ACM, 15, pp. 514-534 (1968). Et sparse-suffikstre er definert som følger.
Definisjon 4: Sparse- suffikstre
Et sparse-suffikstre SS(r) av en tekst T er et suffikstre som bare inneholder en undermengde av suffiksene som foreligger i suffikstreet ST(7) til teksten.
Når søkesystemet i henhold til den foreliggende oppfinnelse benyttes til å søke etter hele ord, kan fordelaktig et ujevnt adskilt sparse-suffikstre dannes for å lagre suffikser som bare starter ved ordgrenser. Begrepet ordadskilt sparse-suffikstre er definert som følger.
Definisjon 5: Ordadskilt sparse- suffikstre
Et ordadskilt sparse-suffikstre SSTws(^) av en tekst T er et sparse-suffikstre SST(Z) som inneholder bare suffiksene som starter ved et ordadskillelsestegn i teksten.
Fig. 2 viser to eksempler på ordadskilte sparse-suffikstrær. Deler av suffiksene er blitt utelatt for å lette lesbarheten. Det ordadskilte sparse-suffikstre for T = "to be the best" er den venstre struktur og T = "to make the only major modification" er den høyre struktur på fig. 2.
I søkesystemet i henhold til den foreliggende oppfinnelse er teksten naturlig delt i ord som lagres uavhengig i det ordadskilte sparse-suffikstre. Da den atomære søketerm for søkingen er ordet selv, vil fordelaktig hvert suffiks avsluttes ved slutten av ordet. Dette reduserer sparse-suffikstreet til et såkalt PATRICIA-trie (Morrison, op.cit). Et trie er definert i litteraturen som et tre med rot og de egenskaper at hver node, bortsett fra roten, inneholder et symbol i alfabetet og at ikke to barn av samme node inneholder samme symbol. Det skal bemerkes at ordet trie stammer fra order "retrieval" og følgelig angir at trie er en trestruktur egnet for gjenfinning av data. Et PATRICIA-trie defineres som et stikkordadskilt sparse-suffikstre (KWS-tre), hvor suffiksene lagret i bladnodene er begrenset av stikkordbegrensere. Et eksempel på et Patricia-trie for mengden av stikkord {"avoid", "abuse", "be", "become", "breath", "say"} er vist på fig. 3. Strukturen benyttet i søkesystemet i henhold til foreliggende oppfinnelse skiller seg fra PATRICIA-triet fordi søkesystemet eksplisitt lagrer sekvensinformasjon om ordene. Reduksjon av suffiksmengden krever at representasjonen av bladnoden forandres. Pekere til den originale tekst erstattes av suffiksstrengen selv. En suffiksmengdereduksjon av denne art er vist på fig. 4 for en av strengene vist på fig. 2. Med andre ord viser fig. 4 det ordadskilte sparse-suffikstre for T = "to make the only major modification" og med suffiksene kuttet ved ordgrensen. En bladnode vil inneholde en liste over alle posisjoner hvor ordet representert av bladnoden forekommer.
I stedet for å benytte den implisitte sekvens av informasjon funnet i originalteksten, lagrer den foreliggende oppfinnelsen eksplisitt sekvensinformasjon i det ordadskilte sparse-suffikstre. Dette gjøres ved å benytte pekere mellom bladnodene som representerer påfølgende ord i den originale teksten. Da minst alle forekomstene av ordet representert av en bestemt bladnode er tilgjengelige, må en peker adderes til det neste påfølgende blad.
En bladnode inneholder bare suffikset til det ord den representerer, så når sekvenspekerne i forekomstlisten gjennomløpes, blir bare suffiksene til hvert av de påfølgende ord vist. Dette håndteres ved å lagre hele ordet i bladnoden i stedet for bare suffikset, og således skiller også datastrukturen til den foreliggende oppfinnelse seg fra PATRICIA-triet i denne henseende. Datastrukturen for eksplisitt lagret ordsekvensinformasjon med en forekomstliste med pekere til neste påfølgende ord og til dets forekomst er vist på fig. 5.
Søkesystemet i henhold til den foreliggende oppfinnelse benytter et PATRICIA-trie for å organisere forekomstlisten (Morrison, op. eit.). PATRICIA-triet setter søkesystemet i stand til å aksessere listen av alle påfølgende ord som stemmer overens med strengen p2 i et tidsrom 0(^1), hvor \ p2\ naturligvis er lengden av p2. Ved å benytte et PATRICIA-trie til å organisere listen av forekomster, fås en komplett definert trestruktur for å lagre ordene fra en tekst og vedlikeholde sekvensinformasjonen. En typisk bladnode, med både et PATRICIA-trie for den organiserte forekomstliste og den ekstra usorterte liste av forekomster, er vist på fig. 6. Som et eksempel på minnebehovet for en forekomstliste som benytter søkesystemet i henhold til foreliggende oppfinnelse, har en database med 742358 dokumenter totalt
333 856 744 ord og et leksikon på 538 244 distinkte ord. Den totale størrelse av databasen er 2054,52 MB. Den gjennomsnittlige ordlengde er således 6,45 byte. Et sparse-suffikstre vil benytte 8 bit for hver innvendig node, med bruk av 32-bits pekere. Det er antatt at det benyttes et gjennomsnitt på 3 interne noder for hvert ord. Bladnoden vil da kreve 6,45 byte for å lagre hele ordet pluss 32 bit for en peker til en forekomstliste. En total på 34,45 byte/ord gir samlet størrelse på 18,108 MB. I tillegg har forekomstlisten størrelsen 4 byte per innførsel og 12 byte hvis hele versjonen skal benyttes. Følgelig vil det totale minnebehov for forekomstlisten variere fra 1273 MB til 3820 MB. Datastrukturen som benytter et sparse-suffikstre, vil ha en størrelse på mellom 60 til 200% av originalteksten. Dette er sammenlignbart med kravene til en invertert fil, mens sparse-suffikstreet som benyttet i søkesystemet i henhold til oppfinnelsen gir langt raskere søking, muliggjør tilnærmet jevnføring og gjør det lett å foreta en sekvensjevnføring.
I tilnærmet søking benyttes en metrikk for å gi et feilmål på en mulig overensstemmelse. Søkesystemet i henhold til den foreliggende oppfinnelse benytter flere metrikker og spesielt en unik kombinasjon av metrikker. Disse metrikker samt den kombinerte metrikk skal drøftes i det følgende.
En editeringsavstandsmetrikk som definert ovenfor, tillater operasjonene sletting, innsetting og utskifting som intuitivt gjelder for ord så vel som tegn. Vanlige feil i jevnføringen av fraser er manglende , ekstra eller endrede ord. Følgelig skal editeringsavstandsmetrikken som tidligere definert, tilpasses og utvides for det tilnærmede ordsekvensjevnføringsproblem. Editeringsoperasjoner for sekvenser defineres nedenfor.
Definisjon 6: Editeringsoperasjoner for sekvenser
For å omforme en sekvens S av ord til en annen sekvens P av ord, kan editeringsoperasjonen som tillates på ord i sekvensene skrives i henhold til følgende omskrivningsregler:
• (a—►e), sletting av ord a fra sekvensen
• (e—+ a), innsetting av ord a til sekvensen
• { a—* b), utskifting av et ord a med ord b
• ( ab-+ ba), transposisjon av tilstøtende ord a og b.
I stedet for tegn som atomer, benytter søkesystemet i henhold til oppfinnelsen editeringsoperasjoner på ord som da skal anses som operasjonelle atomer.
En kostnadsfunksjon ce( nt( x— >y) er en konstant som defineres som
hvor d( x, y) er definert som
Ved å benytte editeringsoperasj onene som definert ovenfor, kan editeringsavstanden for sekvenser nå defineres.
Definisjon 7: Editeringsavstand for sekvenser
Editeringsavstandsmetrikken for sekvenser definerer avstanden Dseq( S, P) mellom sekvensen S = s1, s2,..., s„ og sekvensen P <=> pi, p2,---, pm som minimumssummen av kostanden c( x— >y) for sekvensen av editeringsoperasjoner som omformer sekvensen S til sekvensen P. Søkesystemet i henhold til den foreliggende oppfinnelse forbedrer editeringsavstandsmetrikken for sekvenser ved å vekte kostnaden for editeringsoperasjoner med størrelsen av ordene som det arbeides med.
Definisjon 8: Ordstørrelsesavhengig editerin<g>savstand for sekvenser Ordstørrelsesavhengig editeringsavstand for sekvenser er definert som minimumssummen av kostander for editeringsoperasjoner nødvendige for å omforme en sekvens til en annen. Kostnadsfunksjonene er avhengige av ordstørrelsen til sine operander.
I søkesystemet i henhold til oppfinnelsen er en definisjon av kostnadsfunksj oner gitt ved ligningene
hvor / angir gjennomsnittslengden av et ord i to sekvenser som sammenlignes. Kostnaden for hver editeringsoperasjon vektes av en størrelse proporsjonal med forandringen i den totale lengde av sekvenser eller med forholdet mellom den nåværende ordlengde og den gjennomsnittlige ordlengde i sekvensene som betraktes.
Nå reflekterer avstandsmetrikken antagelsen om en eller annen relasjon mellom ordlengden og hvor viktig ordet er i den semantiske kontekst i ordsekvensen. Videre benytter søkesystemet i henhold til oppfinnelsen nærhet på tegnnivå når editeringsoperasjonen for (a—for utskifting benyttes. Utskifting av et ord a med et annet ord b skal være relatert til likheten mellom disse to ord. Den nye kostnadsfunksj onen for editeringsoperasjonen for utskifting er derfor gitt som:
Hvor D( a, b) er den normaliserte editeringsavstandsmålefunksjon for ord, betyr 0 full likhet, 1 .ingen likhet.
Søkesystemet i henhold til oppfinnelsen kombinerer
editeringsavstandsmetrikken for sekvenser med kostnadsfunksjonene som gitt ved formlene (4), (5) og (6), med en editeringsavstandsmetrikk for ord som gitt ved formel (1). Dette betyr at sekvensediteringsoperasjoner bare benyttes når ordene som jevnføres, befinner seg mer enn k feil fra hverandre.
Algoritmene benyttet i søkesystemet i henhold til oppfinnelsen utfører effektiv søking av de omtalte strukturer. Overensstemmelser finnes i henhold til metrikkene som er gitt ovenfor.
Tilnærmet ordjevnføring i et ordadskilt sparse-suffikstre utføres ved å kombinere beregningen av editeringsavstandsmetrikken og et gjennomløp av suffikstre. En algoritme for dette er skrevet i pseudokode og gitt i tabell I.
Denne algoritmen er adaptert fra en trie-jevnførende algoritme som foreslått av H. Shang & T.H. Merrettal, "Tries for Approximate String Matching", IEEE Transactions on Knowledge and Data Engineering, bind 5, nr. 4, pp. 540-547 (1996). Den forventede kjøretid for algoritmen i verste tilfelle er 0( K\ L\ K) i henhold til Shang & Merrettal (op.cit.).
Tilnærmet ordsekvensjevnføring krever beregning av ordsekvens-editeringsavstanden for alle mulige jevnføringer. Imidlertid kan antallet mulige jevnføringer begrenses ved å starte beregningen av editeringsavstanden bare på de mulige ord. Kostnaden ved å slette et ord fra sekvensen bestemmer antallet mulige startord. Hvis den akkumulerte kostnad ved å slette de i første ord i en avspørringssekvens Pq overstiger en gitt feilterskel, er det ikke mulig at kandidatsekvensen som starter med /te ord i avspørringen kan være en overensstemmelse. Derfor vil for en avspørringssekvens Pq på / ord høyst / mulige startord forsøkes. Da det ikke er noen returpekere i sekvensstrukturen til treet, vil det ikke være sikret at alle mulige overensstemmelser fås. Ytterligere returpekere vil løse dette problemet. Algoritmen for tilnærmet ordsekvensjevnføring som benyttet i søkesystemet i henhold til den foreliggende oppfinnelse, er gitt i pseudokode i tabell II nedenfor. Algoritmen prøver å jevnføre de første stikkord med Pi, p2,... sekvensielt, idet den tester alle mulige startposisjoner.
I ApproxSequenceMatch-algoritmen i tabell II er
ApproxMatchRest- funksjonen definert av algoritmen i tabell III under. Denne funksjonen jevnfører den resterende sekvens, med bruk av en initial feilverdi. Algoritmene i tabell II og III er skrevet i samme pseudokode som algoritmen i tabell I.
Find £jcac/-funksjonen som benyttes til å finne bladnoden som stemmer overens med det første ord i sekvensen, gjennomfører et enkelt gjennomløp av treet og dens kjøretid er 0\ pi\, hvor pj betegner det første ordet i en spørsmålsekvens Pq. Beregningen av editeringsavstanden kan gjøres i tiden \ P<\> ved bruk av likefrem dynamisk programmering eller i tiden 0( k) (hvor k betegner feilterskelen) med bruk av forbedrede versjoner av beregningsalgoritmen, se E. Ukkonen, "Finding Approximate Patterns in Strings", Journal of Algorithms, bind 6, pp. 132-137 (1985).
Om Yj^ occiPi) betegner den totale sum av antallet forekomster av hvert ord pi i ordsekvensen, så er kjøretiden i verste tilfelle 0( fc£nocc( pj)).
Endelig skal implementeringen av en søkemotor basert på søkesystemet i henhold til oppfinnelsen kort drøftes. Spesielt er søkemotoren basert på søkesystemet i henhold til oppfinnelsen implementert som en tilnærmet søkemotor (ASE) og er tenkt benyttet som en søkemotor for å indeksere store dokumentsamlinger og skaffe algoritmer for eksakt og tilnærmet søking av disse dokumentsamlingene. ASE skal skaffe en datastruktur for å lagre store tekster eller samlinger av dokumenter. Det skal forståes at datastrukturen kan genereres fra dokumenter som inneholder ytterligere informasjon, så som bilder, video og lyd, og teksten kan være formatert og/eller annotert. Datastrukturen er identisk med det ordadskilte sparse-suffikstre som drøftet ovenfor, og det skal naturligvis forstås at ordene er stikkordene i søkesystemet, så følgelig kunne det ordadskilte sparse-suffikstre i stedet betegnes som et stikkordadskilt sparse-suffikstre (KWS-tre). ASE skal inneholde algoritmer for å indeksere dokumentene i KWS-treet. Disse algoritmene utgjør naturligvis en del av søkesystemet i henhold til foreliggende oppfinnelse, men de er velkjente for fagfolk og beskrevet i litteraturen, se for eksempel J. Kårkkåinen & E. Ukkonen (op.eit.) og D.R.Morrison (op.cit.).
Søkesystemet i henhold til oppfinnelsen og som benyttet i ASE, anvender algoritmer både for eksakt og tilnærmet jevnføring av et mønster i et KWS-tre. Algoritmene gitt ovenfor i tabell I og II benyttes til tilnærmet ord-og ordsekvensjevnføring med den ikke-uniforme editeringsavstand som metrikk. Å finne en eksakt overensstemmelse av stikkordet p med lengde m i et KWS-tre er kjent i teknikken og implementeres lett som et enkelt gjennomløp av trestrukturen. En egnet algoritme for eksakt stikkordjevnføring skrevet i pseudokode er gitt i tabell IV. Søkesystemet i henhold til oppfinnelsen skal også være i stand til å støtte algoritmer for eksakt stikkordssekvensjevnføring. Algoritmer for eksakt stikkordsekvensjevnføring er kjent i teknikken og implementeres lett som for eksempel vist i pseudokode i tabell V nedenfor. Algoritmen gitt her, vil først finne den eksakte overensstemmelse til det første stikkord, om noen. Deretter vil den for alle forekomster av det første stikkord sjekke om det annet stikkord stemmer overens med det annet stikkord i avspørringen. Hvis så, benyttes MatchRest- prosedyren i tabell V til å bestemme om forekomsten av de to første stikkord stemmer overens i hele sekvensen. For tilnærmet stikkordjevnføring i et KWS-tre implementerer søkesystemet algoritmen i tabell I ovenfor. For tilnærmet stikkordsekvensjevnføring implementerer søkesystemet algoritmen i tabell II ovenfor og jevnfører et første stikkord sekvensielt med pi, p2--- og tester alle mulige startposisjoner, mens ApproxMatchRest- fvmksjonen som gitt i tabell III, benyttes til å jevnføre en sekvens som starter i en bestemt posisjon, og å håndtere den initiale feilverdi.
Endelig skal ASE behøve en enkel frontmaskin som gir brukeren kontroll med indeksering og avspørring av dokumentsamlingen. Frontmaskinen skal også være i stand til å levere statistikk om dokumentsamlingen og skaffe både et nettverksgrensesnitt for fjernaksess, f.eks. via WWW, og et brukergrensesnitt til en lokal tjener.
ASE med søkesystemet i henhold til oppfinnelsen bør være generelt på en måte som lett tillater tilføyelse av nye indekserings- og søkealgoritmer. Det skal også være lett å implementere lagring av ekstra informasjon om hvert dokument eller stikkord. Spesielt bør frontmaskinen være uavhengig av datastrukturen og søkealgoritmene, slik at interne forandringer i disse ikke har noen virkning på dens utførelse.
For bruk av søkesystemet i henhold til oppfinnelsen, bør ASE utføres slik at den har en så lav minneadministrasjon som mulig i datastrukturen. Også søking bør utføres slik at den er så rask som mulig. Det vil imidlertid vanligvis foreligge en avveining mellom disse to faktorer.
For å oppsummere skal et ASE søkesystem i henhhold til oppfinnelsen omfatte fire hovedmoduler: 1. Dokumentindekseringsmodul DIM for indeksering av dokumenter i KWS-trestrukturen. Denne modulen skal også innehold alle utvidelser for å støtte flere dokumenttyper. 2. Datalagringsmodul DSM basert på et stikkordadskilt sparse-suffikstre (KWS-tre) 3. Søkealgoritmemodul SAM for å søke i KWS-treet, innholdende algoritmer for eksakt/tilnærmet jevnføring av henholdsvis ord og ordsekvenser. 4. Brukergrensesnitt-frontmodul FEM som omfatter både brukergrensesnitt til en lokal tjener og et nettverksgrensesnitt for fjernsøking.
De fire modulene til ASE samarbeider slik at det tilbys en komplett søkemotorfunksjonalitet. Datastrømmen mellom de forskjellige moduler er vist på fig. 7. Indeksering av en samling av dokumenter gjøres i dokumentindekseringsmodulen som omfatter indekseringsalgoritmer. Denne modulen er naturligvis ikke en del av søkesystemet i henhold til oppfinnelsen, men indekseringsalgoritmene som kan benyttes, er velkjente i teknikken. Teksten som finnes i dokumentene, føres videre til datalagringsmodulen DSM for lagring. Datalagringsmodulen er naturligvis en del av søkesystemet i henhold til oppfinnelsen og er, som angitt, basert på KWS-trestrukturen. Søkealgoritmemodulen SAM inneholder algoritmer for å søke i dataene som befinner seg i datalagringsmodulen. Denne modulen implementerer søkesystemet i henhold til den foreliggende oppfinnelse og tillater at en søkeprosess avspør datastrukturen om tre- og nodeinformasjon, samtidig som den opprettholder tilstandsvariabler. Frontmodulen kan f.eks. implementeres på en arbeidsstasjon eller en personlig datamaskin o.l., og gir funksjonaliteten som angitt ovenfor.
Som allerede angitt i innledningen, skal det forståes at søkesystemet i henhold til oppfinnelsen kan implementeres som programvare skrevet i et passende høynivåspråk på kommersielt tilgjengelige datamaskinsystemer, herunder arbeidsstasjoner. Det kan også, som angitt, implementeres i form av en dedisert prosessorinnretning som fordelaktig kan omfatte et stort antall parallellprosessorer som er i stand til å prosessere store ordsekvenser i parallell for tilnærmet jevnføring av et stort antall avspørringssekvenser. De faste operasjonelle parametrene for prosessoren kan da legges inn i en lavnivåkode, mens stikkordsekvenser lagt inn fra KWS-trestrukturen tillater en ekstremt hurtig prosessering av spørsmål på en enorm mengde data, og søkesystemet i henhold til den foreliggende oppfinnelse vil følgelig i høy grad være egnet til utføre søkinger på f.eks. World Wide Web, selv i en KWS-trestruktur stor nok til å indeksere samtlige dokumenter som for øyeblikket tilbys på World Wide Web og dessuten være i stand til å håndtere den forventede vekst i datavolumet på World Wide Web i fremtiden.

Claims (14)

1. Søkesystem for informasjonsgjenfinning, spesielt informasjon lagret i form av tekst, hvor en tekst T omfatter ord og/eller symboler s og sekvenser S derav, hvor informasjonsgjenfinningen finner sted med en gitt eller varierende grad av overensstemmelse mellom et spørsmål Q, hvor spørsmålet Q omfatter ord/eller symboler q og sekvenser P derav, og gjenfunnet informasjon R, omfattende ord og/eller symboler og sekvenser derav fra teksten T, hvor søkesystemet omfatter en datastruktur for lagring av minst en del av teksten T og en metrikk M, som måler graden av overensstemmelse mellom spørsmålet Q og gjenfunnet informasjon R, og hvor søkesystemet implementerer søkealgoritmer for å eksekvere et søk, spesielt et fulltekstsøk på basis av stikkord kw, karakterisert ved at datastrukturen omfatter en trestruktur i form av et ujevnt adskilt sparse-suffikstre ST( T) for å lagre suffikser av ord og/eller symboler j og sekvenser S derav i teksten T, at metrikken M omfatter en kombinasjon av en editeringsavstandsmetrikk D( s;q) for en tilnærmet grad av overensstemmelse mellom ord og/eller symboler s;q i teksten T og et spørsmål Q og en editeringsavstandsmetrikk DwsOS.P) for en tilnærmet grad av overensstemmelse mellom sekvenser S av ord og/eller symboler s i teksten T og en spørsmålssekvens P av ord og/eller symboler q i spørsmålet Q, idet den siste editeringsavstandsmetrikk innbefatter vektende kostnadsfunksj oner for editeringsoperasjoner som omformer en sekvens S av ord og/eller symboler i teksten r til sekvensen P av ord og/eller symboler q i spørsmålet Q, slik at vektingen finner sted med en verdi proporsjonal med en forandring i lengden av sekvensen S etter en transformasjon eller avhengig av størrelsen av ordene og/eller symbolene s;q og/eller størrelsen av sekvensene S;P som skal jevnføres, at de implementerte søkealgoritmer omfatter en første algoritme for å bestemme graden av overensstemmelse mellom ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten Tog et spørsmål Q, og en annen algoritme for å bestemme graden av overensstemmelse mellom sekvenser S;P av ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten Tog spørsmålet Q, idet de første og/eller andre algoritmer søker datastrukturen med spørsmål Q i form av enten ord, symboler, sekvenser av ord eller sekvenser av symboler eller kombinasjoner derav, slik at informasjon R gjenfinnes på basis av spørsmålet Q med en gitt grad av overensstemmelse mellom den førstnevnte og det sistnevnte, og at søkealgoritmene etter valg også omfatter en tredje algoritme for å bestemme eksakt overensstemmelse mellom ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten T og spørsmålet Q og/eller en fjerde algoritme for å bestemme eksakt overensstemmelse mellom sekvenser av ord og/eller symboler s;q i suffikstrerepresentasjonen av henholdsvis teksten Tog spørsmålet Q, idet de tredje og/eller fjerde algoritmer søker datastrukturen med spørsmålet Q i form av enten ord, symboler, sekvenser av ord eller sekvenser av symboler eller kombinasjoner derav, slik at informasjon R gjenfinnes på basis av spørsmålet Q med en eksakt overensstemmelse mellom den førstnevnte og det sistnevnte.
2. Søkesystem i henhold til krav 1, karakterisert ved at det ujevnt adskilte sparse-suffikstre ST(7) er et ordadskilt sparse-suffikstre SSTWS(7) som omfatter bare en undermengde av suffiksene i teksten T.
3. Søkesystem i henhold til krav 2, karakterisert ved at det ordadskilte sparse-suffikstre SSTWS(7) er et stikkordadskilt sparse-suffikstre SSTkws(r).
4. Søkesystem i henhold til krav 3, karakterisert ved at den første algoritme for å bestemme graden av stikkordoverensstemmelse i et stikkordadskilt sparse-suffikstre SSTkws(7) omfatter trinn for å gjennomløpe sparse-suffikstreet SSTkws(r) nivå for nivå fra rotnoden, å beregne editeringsavstanden D( s, q) fra rotnoden og til hver node i sparse-suffikstreet SSTkws(7) nivå for nivå, og å avbryte det videre gjennomløp av sparse-suffikstreet SSTkws( T) fra en node dersom editeringsavstanden D( s, q) fra rotnoden til denne node er større enn en grenseverdi k * 0.;
5. Søkesystem i henhold til krav 4, karakterisert ved at den tredje algoritme for å bestemme en eksakt stikkordoverensstemmelse i et stikkordadskilt sparse-suffikstre SSTkws(7) svarer til den første algoritme, men med grenseverdi k = 0.;
6. Søkesystem i henhold til krav 3, karakterisert ved at den annen algoritme for å bestemme graden av stikkordsekvensoverensstemmelse i et stikkordadskilt sparse-suffikstre SSTkws(7) omfatter trinn for å gjennomløpe sparse-suffikstreet SSTkws(7) nivå for nivå fra rotnoden, å sammenligne strengen for et første søkeord qj i spørsmålsekvensen P med strengen fra rotnoden og til en node i sparse-suffikstreet SSTkws(7), og ved overensstemmelse innenfor en initial feilverdi betrakte alle forekomster av første stikkord qh som rotnoden i en trestruktur som utgjør et undertre i sparse-suffikstreet SSTkws(7) og deretter gjennomløpe undertreet nivå for nivå, å beregne editeringsavstanden D^ S. P) mellom sekvensen P og en gjennomløpt sekvens S, og å avbryte det videre gjennomløp av undertreet fra en node i dette dersom editeringsavstanden fra undertreets rotnode til denne node er større enn en grenseverdi k * 0.
7. Søkesystem i henhold til krav 6, karakterisert ved at den initiale feilverdi er mindre enn eller høyst lik grenseverdien k.
8. Søkesystem i henhold til krav 6, karakterisert ved at den fjerde algoritme for å bestemme en eksakt stikkordsekvensoverensstemmelse i et stikkordadskilt sparse-suffikstre SSTkws(X) svarer til den annen algoritme, men med grenseverdien k = 0.
9. Fremgangsmåte i et søkesystem for informasjonsgjenfinning, spesielt informasjon lagret i form av tekst, hvor en tekst T omfatter ord og/eller symboler s og sekvenser S derav, hvor informasjonsgjenfinningen finner sted med en gitt eller varierende grad av overensstemmelse mellom et spørsmål Q, hvor spørsmålet Q omfatter ord og/eller symboler q og sekvenser S derav, og gjenfunnet informasjon R omfattende ord og/eller symboler og sekvenser derav fra teksten T, hvor søkesystemet omfatter en datastruktur for lagring av minst en del av teksten T og en metrikk M som måler graden av overensstemmelse mellom spørsmålet Q og gjenfunnet informasjon R, hvor søkesystemet implementerer søkealgoritmer for å eksekvere et søk, spesielt et fulltekstsøk på basis av stikkord kw, hvor informasjonen i teksten Ter delt i ord s og ordsekvenser S, hvor ordene er understrenger av hele teksten adskilt av ordgrensetermer og danner en sekvens av symboler, og hvor hvert ord er strukturert som en sekvens av symboler, karakterisert ved å generere datastrukturen som et ordadskilt sparse-suffikstre SSTWS(7) for å representere alle suffikser som starter ved et ordskillesymbol i teksten T, å lagre sekvensinformasjon om ordene i teksten T i det ordadskilte sparse-suffikstre SSTWS(7), å generere en kombinert editeringsavstandsmetrikk M som omfatter en editeringsavstandsmetrikk D( s, q) for ord s i teksten T og et spørreord q i et spørsmål Q og en ordstørrelsesavhengig editeringsavstandsmetrikk D^ S. P) for sekvenser S av ord s i teksten T og en sekvens P av ord q i spørsmålet Q, idet editeringsavstandsmetrikken DWS(5,P) er minimumsummen av kostnader for editeringsoperasjoner som omformer en sekvens S til sekvensen P, slik at minimumsummen av kostnader utgjør minimumsummen av kostnadsfunksj oner for hver editeringsoperasjon vektet med en verdi proporsjonal med forandringen i totallengden av sekvensen S eller med forholdet mellom den aktuelle ordlengde og gjennomsnittlig ordlengde i sekvensene S;P, og å bestemme graden av overensstemmelse mellom ordene s;q ved å beregne editeringsavstanden D( s, q) mellom ordene s av den gjenfunne informasjon R og ordet q i et spørsmål Q, eller i tilfellet ordene s, q befinner seg mer enn k feil fra hverandre, å bestemme graden av overensstemmelse mellom ordsekvensene Sr, Pq av henholdsvis gjenfunnet informasjon R og et spørsmål Q for å beregne editeringsavstanden Dws(SÆPø) for alle overensstemmelser.
10. Fremgangsmåte i henhold til krav 9, karakterisert ved dessuten å vekte en editeringsoperasjon som endrer ordet s til ordet q med en parameter for nærheten mellom karakterene til ordene s;q, slik at det således tas hensyn til likheten mellom ordene s;q når kostnaden for den angjeldende editeringsoperasjonen bestemmes.
11. Fremgangsmåte i henhold til krav 9, karakterisert ved å begrense antallet overensstemmelser ved å beregne editeringsavstanden D^ Sr. Pq) for et begrenset antall ord i spørreordsekvensen Pq.
12. Fremgangsmåte i henhold til krav 9, karakterisert ved å definere editeringsavstanden D( s, q) mellom ordene s og et ord q rekursivt, og å beregne editeringsavstanden D( s, q) ved hjelp av en dynamisk programmeringsprosedyre.
13. Fremgangsmåte i henhold til krav 9, karakterisert ved å definere editeringsavstanden DWS(5,P) mellom sekvenser S og en sekvens P rekursivt, og å beregne editeringsavstanden DWS(5',P) ved hjelp av en dynamisk programmeringsprosedyre.
14. Bruk av et søkesystem i henhold til krav 1 i en tilnærmet søkemotor.
NO19993413A 1998-07-10 1999-07-09 Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor NO311657B1 (no)

Priority Applications (1)

Application Number Priority Date Filing Date Title
NO19993413A NO311657B1 (no) 1998-07-10 1999-07-09 Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO983175A NO983175L (no) 1998-07-10 1998-07-10 Soekesystem for gjenfinning av data
NO19993413A NO311657B1 (no) 1998-07-10 1999-07-09 Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor

Publications (3)

Publication Number Publication Date
NO993413D0 NO993413D0 (no) 1999-07-09
NO993413L NO993413L (no) 2000-01-11
NO311657B1 true NO311657B1 (no) 2001-12-27

Family

ID=26648870

Family Applications (1)

Application Number Title Priority Date Filing Date
NO19993413A NO311657B1 (no) 1998-07-10 1999-07-09 Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor

Country Status (1)

Country Link
NO (1) NO311657B1 (no)

Also Published As

Publication number Publication date
NO993413D0 (no) 1999-07-09
NO993413L (no) 2000-01-11

Similar Documents

Publication Publication Date Title
KR100414236B1 (ko) 데이터의 검색을 위한 서치 시스템 및 방법
US9875299B2 (en) System and method for identifying relevant search results via an index
CN107153647B (zh) 进行数据压缩的方法、装置、系统和计算机程序产品
US6754650B2 (en) System and method for regular expression matching using index
US7376642B2 (en) Integrated full text search system and method
US7013304B1 (en) Method for locating digital information files
US6691123B1 (en) Method for structuring and searching information
US8812508B2 (en) Systems and methods for extracting phases from text
NO338518B1 (no) Flerregisterbasert informasjonsgjenfinningssystem
JP2006048684A (ja) 情報検索システムにおけるフレーズに基づく検索方法
CN101310277B (zh) 获得文本的表示的方法和系统
CN112835923A (zh) 一种相关检索方法、装置和设备
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
NO311657B1 (no) Sökesystem og fremgangsmåte til gjenfinning av data, og bruken derav i en sökemotor
CN1326073C (zh) 用于建立计算机文字信息的索引和进行检索的方法和系统
CN116028698B (zh) 一种高效率信息搜索系统
Aggarwal Information Retrieval and Search Engines
JP4223756B2 (ja) 文書検索方法、文書検索プログラム及び文書検索システム
Wang et al. ACRES: efficient query answering on large compressed sequences
CN113641783A (zh) 基于关键语句的内容块检索方法、装置、设备和介质
Kumari et al. PERFORMANCE OF DATA STRUCTURES ON STRING SEARCH
Ahmed et al. IMPROVED FUZZY SEARCHINGTECHNOLOGY
Daoud et al. Augmented order preserving minimal perfect hash functions for very large digital libraries
CZ200164A3 (cs) Vyhledávací systém a postup pro vyhledávání dat a využití tohoto systému a postupu ve vyhledávacím stroji

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees