Semantisk søk
Teknologiske løsninger på kompleks søkeproblematikk. Tradisjonelle søk leter etter innhold som inneholder ordene, søker man f.eks. etter “Måke parkeringsplass” vil tradisjonelle søk finne “Måke” og “parkeringsplass”.
Hva er det egentlig brukeren leter etter?
Tradisjonelle søk leter etter innhold som inneholder ordene, søker man f.eks. etter “Måke parkeringsplass” vil tradisjonelle søk finne “Måke” og “parkeringsplass”. Det er lett for mennesker å forstå at dette ikke dreier seg om en fiskemåke som leter etter parkeringsplass, men for datamaskiner er det ikke like rett frem. Løsningen på denne utfordringen, er å bruke AI for å analysere teksten, for å gi bedre ressultat. Dette kalles “Semantisk søk” og sammen med Direktoratet for Byggkvalitet skal vi implementere dette på deres nettside.
Av teknisk prosjektleder Haakon Høier
Leksikalsk søk: Når søk bare er tegn.
Et tradisjonelt leksikalsk søk sammenligner tegn, og prøver å finne treff. Om man søker etter f.eks Trapp, vil et leksikalst søk gi gode treff der ordet trapp dukker opp ofte.
En utfordring dukker opp, er når man bruker setninger for å søke: “Hvordan bygge en trapp?”
Uten justeringer, vil alle ord i setningen over bli prioritert like mye, og i DiBKs tilfelle, er “Bygge” brukt veldig mye, og da er det vanskelig å treffe godt i resultatet.
Vi gjort mange justeringer i det leksikalske søket for treffe bedre i slike tilfeller
- Implementere stoppord (ord som ikke tas med i oppslaget)
- Justere levenshtein distance (hvor mange skrivefeil skal det tas høyde for)
- Resultatheving på spesifikke sider/dokumenter og kategorier
- Legge inn synonymordbok (f.eks at terrasse og platting gir like resultat)
Dette kan løse mange utfordringer, men når mengden innhold er så stor som i DiBKs tilfelle, er det grenser for hvor langt man kommer med slike justeringer.
Semantisk søk: Når tegn blir til setninger med betydning
Et semantisk søk baserer seg på vektorisering av tekst. Ved hjelp av AI analyserer vi innholdet som finnes på nettsiden, og hva brukeren har skrevet i søkefeltet. Da kan vi bedre forstå hvilket innhold som passer best til søket. Teknologien bygger tungt tekstanalyse med store språkmodeller, og vektorisering av dokumenter.
Når man da f.eks søker etter “Hvordan bygge en trapp”, skjønner det semantiske søket at det er ikke all bygging det handler om her, men spesifikt om trapp. Den skjønner også at det er “Trapp” som er hovedtematikken, og henter frem dokumenter som omhandler trapp og utforming, regler og forskrifter om denne. I DiBKs tilfelle skal Forskrifter om trapp komme øverst, og deretter for eksempel forskrifter om rekkverk, da disse har med trapp å gjøre:
Teknologi som forstår brukeren
Leksikalt søk kan være riktig teknologi å bruke, dersom man kun er på utkikk etter treff på ord, og at det sjeldent brukes setninger. I tilfeller der det er mye tekstlig innhold, og man trenger å forstå hva brukeren er på utkikk etter, er semantisk søk veien å gå. Se sammenstilling under, for å se forskjeller:
Aspekt | Leksikalt Søk | Semantisk Søk |
Metode | Matcher eksakte ord og fraser | Forstår meningen bak søkespørsmål |
Synonymer | Vanskelig å håndtere | Bruker NLP (Naturlig språk prosessering) for å finne synonymer |
Polysemi | Ingen kontekstuell forståelse | Disambiguering gjennom kontekst |
Relevans | Basert på eksakt ordmatch og frekvens | Basert på konseptuell relevans og brukerintensjon |
Kunnskapskilder | Begrenset til tekstens innhold | Benytter kunnskapsgrafer og ontologier |
Brukeropplevelse | Kan gi irrelevante resultater | Mer presise og relevante resultater |
Løsning klar for lansering
Sammen med Direktoratet for Byggkvalitet skal vi nå knekke koden for den perfekte søkeopplevelsen for byggteknisk innhold, og vi gleder oss til å dele resultatet!