Søk i fulltekst - Full-text search

I tekst henting , fulltekstsøk refererer til teknikker for å søke en enkelt datamaskin -stored dokument eller en samling i en fulltekstdatabase . Fulltekstsøk skiller seg fra søk basert på metadata eller på deler av originaltekstene representert i databaser (for eksempel titler, sammendrag, utvalgte seksjoner eller bibliografiske referanser).

I et fulltekstsøk undersøker en søkemotor alle ordene i hvert lagret dokument når det prøver å matche søkekriterier (for eksempel tekst spesifisert av en bruker). Tekstsøkende teknikker ble vanlig i bibliografiske databaser på nettet på 1990-tallet. Mange nettsteder og applikasjonsprogrammer (for eksempel tekstbehandlingsprogramvare ) tilbyr fulltekstsøkfunksjoner. Noen websøkemotorer, for eksempel AltaVista , bruker teknikker for fulltekstsøk, mens andre bare indekserer en del av websidene som er undersøkt av indekseringssystemene deres.

Indeksering

Når det gjelder et lite antall dokumenter, er det mulig for fulltekst-søkemotoren å skanne innholdet i dokumentene direkte med hver forespørsel , en strategi som kalles " seriell skanning ". Dette er hva noen verktøy, for eksempel grep , gjør når du søker.

Imidlertid, når antallet dokumenter som skal søkes potensielt er stort, eller mengden søk som skal utføres er betydelig, blir problemet med fulltekstsøk ofte delt inn i to oppgaver: indeksering og søk. Indekseringstrinnet vil skanne teksten til alle dokumentene og bygge en liste over søkeord (ofte kalt en indeks , men mer korrekt kalt en samsvar ). I søketrinnet, når du utfører en bestemt spørring, refereres det bare til indeksen, i stedet for teksten til originaldokumentene.

Indekseringen vil gjøre en oppføring i indeksen for hvert begrep eller ord som finnes i et dokument, og muligens notere sin relative posisjon i dokumentet. Vanligvis vil indekseren ignorere stoppord (for eksempel "the" og "og") som er både vanlige og utilstrekkelig meningsfulle til å være nyttige i søk. Noen indeksatorer bruker også språkspesifikke stammer fra ordene som blir indeksert. For eksempel vil ordene "stasjoner", "kjørt" og "kjørt" bli registrert i indeksen under enkeltbegrepsordet "stasjon".

Presisjonen mot tilbakekalling

Diagram over et søk med lav presisjon og lav tilbakekalling

Recall måler mengden relevante resultater som returneres ved et søk, mens presisjon er målet på kvaliteten på resultatene som returneres. Recall er forholdet mellom relevante resultater som returneres til alle relevante resultater. Presisjon er antall relevante resultater som returneres til det totale antallet returnerte resultater.

Diagrammet til høyre representerer et søk med lav presisjon og lav tilbakekalling. I diagrammet representerer de røde og grønne prikkene den totale populasjonen av potensielle søkeresultater for et gitt søk. Røde prikker representerer irrelevante resultater, og grønne prikker representerer relevante resultater. Relevans indikeres av nærheten til søkeresultatene til sentrum av den indre sirkelen. Av alle mulige resultater som vises, vises de som faktisk ble returnert av søket på en lyseblå bakgrunn. I eksemplet ble bare 1 relevant resultat av 3 mulige relevante resultater returnert, så tilbakekallingen er et veldig lavt forhold på 1/3, eller 33%. Presisjonen for eksemplet er en meget lav 1/4, eller 25%, siden bare 1 av de 4 returnerte resultatene var relevant.

På grunn av tvetydighetene i det naturlige språket , inkluderer systemer for fulltekstsøk vanligvis alternativer som stoppord for å øke presisjonen og stammen for å øke tilbakekallingen. Søk med kontrollert vokabular hjelper også med å løse problemer med lav presisjon ved å merke dokumenter på en slik måte at uklarheter elimineres. Kompromissen mellom presisjon og tilbakekalling er enkel: en økning i presisjon kan senke den totale tilbakekallingen, mens en økning i tilbakekalling senker presisjonen.

Falskt positivt problem

Fulltekstsøk vil sannsynligvis hente mange dokumenter som ikke er relevante for det tiltenkte søkespørsmålet. Slike dokumenter kalles falske positiver (se Type I -feil ). Hentingen av irrelevante dokumenter skyldes ofte den naturlige tvetydigheten i det naturlige språket . I eksempeldiagrammet til høyre er falske positiver representert av de irrelevante resultatene (røde prikker) som ble returnert av søket (på en lyseblå bakgrunn).

Klyngeteknikker basert på bayesiske algoritmer kan bidra til å redusere falske positiver. For et søkeord for "bank" kan gruppering brukes til å kategorisere dokument/datauniverset i "finansinstitusjon", "sted å sitte", "sted å lagre" etc. Avhengig av forekomsten av ord som er relevante for kategoriene, søkeord eller et søkeresultat kan plasseres i en eller flere av kategoriene. Denne teknikken distribueres omfattende i e-discovery- domenet.

Ytelsesforbedringer

Manglene ved fritekstsøk har blitt adressert på to måter: Ved å gi brukerne verktøy som gjør dem i stand til å uttrykke søkespørsmålene sine mer presist, og ved å utvikle nye søkealgoritmer som forbedrer hentingspresisjonen.

Forbedrede spørreverktøy

  • Stikkord . Dokumentskapere (eller utdannede indeksører) blir bedt om å gi en liste med ord som beskriver emnet i teksten, inkludert synonymer til ord som beskriver dette emnet. Søkeord forbedrer tilbakekallingen, spesielt hvis søkeordlisten inneholder et søkeord som ikke er i dokumentteksten.
  • Feltbegrenset søk . Noen søkemotorer gjør det mulig for brukere å begrense fritekstsøk til et bestemt felt i en lagret datarekord , for eksempel "Tittel" eller "Forfatter".
  • Boolske spørringer . Søk som bruker boolske operatører (for eksempel "encyklopedi" OG "online" IKKE "Encarta" ) kan dramatisk øke presisjonen i et fritekstsøk. Den AND operatør sier i praksis: "Ikke hente alle dokumenter med mindre det inneholder begge disse vilkårene." Den NOT operatøren sier i praksis: "Ikke hente et dokument som inneholder dette ordet." Hvis hentelisten henter for få dokumenter, kan OR -operatøren brukes til å øke tilbakekallingen . vurdere for eksempel "encyklopedi" OG "online" ELLER "Internett" IKKE "Encarta" . Dette søket vil hente dokumenter om elektroniske leksikon som bruker begrepet "Internett" i stedet for "online". Denne økningen i presisjon er veldig ofte kontraproduktiv siden den vanligvis kommer med et dramatisk tap av tilbakekalling.
  • Frasesøk . Et frasesøk samsvarer bare med de dokumentene som inneholder en spesifisert setning, for eksempel "Wikipedia, gratis leksikon."
  • Konsept søk . Et søk som er basert på flerordskonsepter, for eksempel sammensatt termbehandling . Denne typen søk blir populær i mange e-discovery-løsninger.
  • Konkordanssøk . Et konkordansesøk gir en alfabetisk liste over alle hovedordene som forekommer i en tekst med deres umiddelbare kontekst.
  • Nærhetssøk . Et frasesøk samsvarer bare med de dokumentene som inneholder to eller flere ord som er atskilt med et bestemt antall ord; et søk etter "Wikipedia" INNEN2 "gratis" vil bare hente de dokumentene der ordene "Wikipedia" og "gratis" forekommer innen to ord fra hverandre.
  • Regelmessig uttrykk . Et regulært uttrykk benytter en kompleks, men kraftig spørring syntaks som kan brukes til å angi henting forhold med presisjon.
  • Uklart søk vil søke etter dokument som samsvarer med de gitte begrepene og noen variasjoner rundt dem (ved for eksempel å bruke redigeringsavstand til terskel for flere variasjoner)
  • Søk etter jokertegn . Et søk som erstatter ett eller flere tegn i et søk med et jokertegn, for eksempel en stjerne . For eksempel vil bruk av stjernen i et søket "s*n" finne "synd", "sønn", "sol", etc. i en tekst.

Forbedrede søkealgoritmer

Den Pagerank -algoritmen utviklet av Google gir mer fremtredende i dokumenter som andre websider har knyttet. Se søkemotor for flere eksempler.

Programvare

Følgende er en delvis liste over tilgjengelige programvareprodukter hvis overordnede formål er å utføre fulltekstindeksering og søk. Noen av disse er ledsaget av detaljerte beskrivelser av deres teori om drift eller interne algoritmer, som kan gi ytterligere innsikt i hvordan fulltekstsøk kan utføres.

Referanser

Se også