From search query input to search results output: Natural Language Search

Inbenta heeft een onverslaanbaar self-service percentage dankzij de op Natural Language gebaseerde Semantic Search Engine. Deze maakt het mogelijk om ongestructureerde, verkeerd getypte, dubbelzinnige, beperkte zoekopdrachten van gebruikers te koppelen aan gestructureerde, specifieke, beknopte FAQ titels. Hierdoor vinden de klanten van onze klanten de informatie die ze willen, snel en gemakkelijk op een ongekende manier.

 
Een van de grootste uitdagingen in Natural Language Processing is hoe om te gaan met dubbelzinningheid, een van de hoofdkenmerken van een natuurlijke taal.
 
Denk bijvoorbeeld aan de Engelse uitdrukking “run a test”. Het woord “run” verwijst vaak naar ‘hardlopen’. Alleen in deze specifieke context betekent het hier ‘uitvoeren’. Het verschil is duidelijk voor iemand die vertrouwd is met de Engelse taal, maar niet voor een computer.
 
Zelfs als een computer is staat is om de syntaxis van een zinsnede als “run a test” te analyseren, zal het nog steeds niet in staat zijn het verschil te zien tussen die zinsnede en de zinsnede “run a race”. De betekenis van deze twee is echter totaal verschillend!
 
Daarom gaat de analyse van Inbenta’s Semantic Search verder door het analyseren van de contextuele betekenis van woorden. Hierdoor kan het de beste definitie van het woord “run” kiezen, zelfs als de syntaxis en het woord hetzelfde zijn.
 
Dit document biedt u een glimp van hoe dit proces werkt.
 
Stel u voor dat u in een telecombedrijf werkt en dat u verantwoordelijk bent voor het creëren van veelgestelde vragen, een knowledge base en al het materiaal dat u online gaat publiceren, zodat uw klanten het zelf kunnen vinden.
 
Voor dit specifieke voorbeeld (in het Engels) heeft u een FAQ die de kosten en de plannen beschrijft voor uw klanten om naar andere landen te bellen met de titel:
 
“What is the price for international calls?”
 
Alles lijkt in orde, toch? Maar hier komt het probleem: de kans dat uw klanten deze FAQ zullen zoeken met dezelfde sleutelwoorden die u heeft gebruikt in de content is gering.
 
In plaats daarvan zullen ze vragen intypen als:
 
“how much wll me cost to call to francw”
 
Uw gebruikers zullen altijd zoekopdrachten gebruiken die hun specifieke situatie beschrijven. Daarom zal hun woordgebruik anders zijn dan die van u, omdat u een meer algemeen scenario probeert te beschrijven.
 
Het eerste wat Inbenta doet, is een geavanceerde spellingscontrole algoritme toepassen.

Spelling

In het voorbeeld hierboven is ”wll” geen Engels woord. Hierdoor is het geen onderdeel van ons uitgebreide Engelse woordenboek. Het moet daarom gecorrigeerd worden.
 
We zouden deze spellingsfout kunnen oplossen met “will”“well” of “wall”. Toch zou de meest waarschijnlijke correctie “will” moeten zijn omdat die een betere betekenis geeft aan de hele zin.
 
Er is nog spellingsprobleem: “francw”. Opnieuw zouden mogelijke oplossingen “francs”“franc” en France”  kunnen zijn, hoewel de meest aannemelijke optie natuurlijk de naam van de Europese natie is. Als wij zeggen “de meest aannemelijke”, is dat makkelijk te beslissen voor de mens, maar dit is heel moeilijk voor computers. Inbenta’s enorme Engelse woordenboek (Frans, Spaans en heel veel andere woordenboeken zijn ook mogelijk) bevat informatie over hoe waarschijnlijk combinaties van woorden zullen zijn, op basis van de specifieke kenmerken van de feitelijke kennis en algemene kenmerken van de taal.
 

Search

 
Vanaf dit punt zal Inbenta niet meer zoeken met de originele verkeerd getypte zoekopdracht, maar zal een antwoord vinden op de gecorrigeerde versie.
 
De volgende stap is om eventuele dubbelzinnigheden in de zin op te lossen (en in natuurlijke taal zitten altijd dubbelzinnigheden!):
 
“how much will it cost to call to France?”

Ambiguity

Inbenta maakt gebruik van verschillende instrumenten om dit te bereiken: domein woordenboeken, syntactische analyse, lokale grammatica en lexicale functies. Het uitvoeren van de juiste syntactische en semantische analyses is cruciaal voor het vinden van relevante antwoorden.
 
Met syntactische analyse bepaalt Inbenta de precieze functie van elk woord in deze bepaalde zin. Het resultaat van de analyse is als volgt:
 

Speech

 
De analyse van de zin zal afhangen van meerdere factoren, het domein woordenboek, ondubbelzinnige regels, context, etc.
 
Het woord “call” kan een zelfstandig naamwoord zijn en verschillende betekenissen hebben die niets te maken hebben met telefoontjes, bijvoorbeeld “urge”“decision”“cry” etc. Maar als werkwoord en met betrekking tot de telecommunicatie, heeft “call”  ondubbelzinnig betrekking op bellen via de telefoon.
 
Vervolgens zal Inbenta een semantische analyse uitvoeren om het relatieve belang van elk woord in de zin te bepalen. Gebruikers voegen vaak een hoop informatie toe in een zoekopdracht, die niet van belang is voor het vinden van een relevant antwoord. Deze toegevoegde zoekwoorden – in de zoekbranche ‘ruis’ genoemd – kunnen vaak leiden tot irrelevante resultaten. Echter, ons systeem is in staat om te bepalen welke woorden van belang zijn, omdat ze betekenis hebben. Op basis van de huidige Knowledge Base en Inbenta’s unieke semantisch-statische algoritme, kan Inbenta een bepaalde semantisch waarde aan elk woord in de zoekopdracht toekennen.

Percentage

 
Zoals u kunt zien, heeft niet elke term in de zoekopdracht dezelfde waarde. In dit geval bevatten “cost” en“France” bijna 70% van het gehele semantische ‘gewicht’ van de zoekopdracht. We zijn nu dicht bij het vinden van een relevant antwoord op deze vraag.
 
Inbenta beschikt over een uitgebreide woordenlijst die honderdduizenden termen en vele soorten semantische relaties, genaamd “Lexical Functions” bevat. Deze Lexical Functions bevatten gemakkelijke relaties, zoals synoniemen, maar ook complexere relaties die afhankelijk zijn van de context waarin de term voorkomt.
 
Dankzij het woordenboek en de Lexicale Functies is Inbenta in staat om zinnen met dezelfde betekenis te herkennen ondanks het gebruik van verschillende woorden die gebruikt zijn om de betekenis uit te drukken. En met deze ultieme “meaning algorithm” zijn we in staat om te weten hoe dichtbij of hoe veraf deze zinnen van elkaar staan vanuit een betekenis standpunt.
 
Naast nog vele andere, bevat het woordenboek deze twee Lexicale Functies:
 
  • De term“international”  is gerelateerd aan“nation”, en daarom aan de namen van alle verschillende landen. Dat vertelt Inbenta dat “France” en “international” op de een of andere manier met elkaar verband houden in termen van betekenis.

Semantic Tree

  • Ook vroeg deze specifieke gebruiker naar de “kosten”, hetgeen een manier is om te vragen wat hij moet betalen voor een service. Echter, de auteur van de FAQ schreef het met de term “prijs”, wat bijna hetzelfde concept is, maar vanuit het perspectief van diegene die betaald wordt, niet diegene die betaalt. Daarom zijn “kosten” en “prijs” aan elkaar gerelateerd.

Paraphrase

 
Door het toepassen van deze twee Lexicale Functies, weet Inbenta dat de gebruikersvraag is gerelateerd aan de begrippen ‘pricing’ en ‘international’, ook al werden deze woorden niet echt in de zoekvraag gebruikt.
 
Het Lexicon groeit elke dag door het werk van onze computertaalkundigen, die de ontwikkeling zowel in termen van de uitbreiding van semantische relaties als de complexiteit van deze Lexical Functies bevorderen.
 
In dit specifieke geval stelt onze gepatenteerde “Semantic Coincidence Algorithm” in combinatie met ons uitgebreide Lexicon ons in staat om te berekenen dat de gebruikersvraag en deze specifieke FAQ een “Semantic Coincidence Score” hebben van precies 57.49%.
 
Als er geen andere FAQ is met een betere Semantic Coincidence Score dan de vraag met de titel “What is the price for international calls?”“, dan zal dit de eerste zijn die wordt weergegeven in de resultatenpagina.
 
Nogmaals, de auteur van de FAQ heeft alleen geschreven “What is the price for international calls?“”. Hij hoefde geen alternatieve herformulering in te voeren, labels toe te voegen, synoniemen index bestanden of vervelende woordenschat alternatieven te beoordelen.
 
Bij Inbenta geloven wij dat ontwikkelaars en schrijvers van knowledge bases zich alleen zorgen moeten maken over WAT er in de content zit, niet HOE de content moet worden gevonden. Inbenta neemt die verantwoordelijkheid over, zodat uw knowledge manager meer tijd heeft om MEER en BETERE content te schrijven.
 
Het is ook belangrijk om op te merken dat onze Semantic Search Engine een geweldige responstijd moet hebben, zelf wanneer er duizenden FAQ’s moeten worden gezocht en duizenden gebruikers verschillende vragen stellen op dezelfde precieze seconde.
 
In dit voorbeeld had onze zoekmachine maar 0.0033376097679138 seconde nodig om het juiste antwoord te vinden op deze vraag, met als basis meer dan 2500 FAQ’s om uit te kiezen.