Hoe vindt Google synoniemen en hoe worden die in context geplaatst

Statistical machine translation en context is synoniemen

Waar komen de synoniemen vandaan? Hier kijk ik aan de hand van een aantal patenten en artikelen van Google over hoe de zoekmachine synoniemen vindt en in context plaatst.

In mijn vorige artikel heb ik gekeken naar expliciete en impliciete lokale zoekopdrachten op basis van Yahoo patenten. Hierbij heb ik gekeken naar taal als een impliciete zoekopdracht. Echter taal is veel meer impliciet dan wat ik daar suggereerden. Namelijk in een taal zijn zeer veel synoniemen of woorden van de zelfde betekenis maar deze woorden kunnen een expliciete betekenis hebben in een bepaalde context. Hier kijk ik naar een manier waarop Google een synoniem vindt en deze in een bepaalde context kan zetten.

Synoniemen en hoe deze zoekresultaten verbeteren

Om te begrijpen hoe een taal werkt kan men kijken naar synoniemen. Woorden die de zelfde betekenis hebben maar anders worden geschreven. Mensen gebruiken dagelijks verschillende woorden die de zelfde betekenis hebben, vaak in het zelfde gesprek. Kortom in communicatie met elkaar gebruiken we verschillende woorden die het zelfde betekenen. Google en andere zoekmachines communiceren ook met haar gebruikers. Dat wil zeggen een gebruiken vult een zoekopdracht in en de zoekmachine geeft een x aantal resultaten. Soms, en vaak wanneer de zoekresultaat niet optimaal is, veranderd de gebruiker haar zoekopdracht door net een andere sleutelwoord in te vullen. En dit is frustrerend voor gebruikers. Immers op dat moment lijkt het alsof je met een domme computer aan het praten bent. Om dit te voorkomen proberen zoekmachines taal en met name synoniemen te kraken. Laten we kijken hoe zoekmachines uit de enorme data synoniemen vinden.

Statistical Machine Translation (SMT) en synoniemen?

statistical-machine-translation

In het kort is SMT een manier om vertalingen te generen op basis van statische modellen. Met andere woorden, op basis van statistiek wordt berekend welk woord (IBM heeft woord voor woord vertaling op basis van SMT geïntroduceerd maar tegenwoordig worden hele zinnen of paragrafen gebruikt) de beste vertaling is in een andere taal. Google geeft SMT aan als:

Several research systems, including ours, take a different approach: we feed the computer with billions of words of text, both monolingual text in the target language, and aligned text consisting of examples of human translations between the languages. We then apply statistical learning techniques to build a translation model.

Door gebruik te maken van een enorme database zoals de een index van het internet kan een computer programma inschatten welke vertaling het beste is.

Door gebruik te maken van deze procedure worden ook synoniemen gevonden, of paren van woorden die dezelfde betekenis hebben. Het voorbeeld dat in de patent wordt gebruikt is “how to ship a box”, “ship” kan worden aangeduid als boot of als verzenden. Maar door de context is het duidelijk dat het hier niet om een boot (of een schip) gaat maar om het versturen/verzenden van een doos. Zoekresultaten voor [how to ship a box] waar schepen of trawlers naar voren komen  is weinig relevant. Met andere woorden, door synoniemen wordt de kwaliteit van de zoekresultaten beter.

Synoniemen en context

Synoniemen zijn handig maar een lijst met alleen synoniemen is weinig zinvol omdat veel synoniemen in een bepaalde context een specifieke betekenis hebben. Google bericht hierover in “Helping computers understand language” en daarvoor in de patent “Determining query term synonyms within query context“. Om de kwaliteit van de zoekresultaten te vergroten is het nodig om de context waarin de synoniem wordt gebruikt te classificeren. Dit zeer moeilijk voor computer programma’s en een manier om dit te doen is door te kijken naar hoe zoekmachine gebruikers de zoekmachine gebruiken. Met andere woorden, door te kijken naar de logs.

qualified-synonymHet proces kan als volgt werken. Zoekresultaten worden gegeven voor een bepaalde zoekopdracht en het systeem heeft synoniemen ontdekt in de zoekopdracht op basis van SMT. Dan kijkt het systeem naar de eerder gemaakte zoekopdrachten van de gebruiker en associeert deze met de huidige zoekopdracht. Deze eerder gemaakte zoekopdrachten zijn gemaakt binnen een bepaalde periode, bijvoorbeeld binnen een uur of binnen een gebruikerssessie. Op dat moment wordt de synoniem geclassificeerd als kandidaat synoniem. Dit wordt gedaan voor zeer veel gebruikers. En door deze zoekopdrachten van verschillende gebruikers met elkaar te vergelijken kan er een betere inschatting worden of een synoniem in aanmerking komt als kandidaat synoniem. Een andere test om een kandidaat synoniem te vinden is door te kijken naar de zoekresultaten. Als de zoekresultaten overeenkomen dan kan een synoniem worden aangemerkt als kandidaat synoniem. Deze kandidaat synoniemen worden gerangschikt en aan een aantal condities onderworpen. Als de kandidaat synoniemen alle condities doorlopen kunnen ze worden aangemerkt als gekwalificeerde synoniem.

Bijvoorbeeld als veel mensen zoeken op [badmantel], daarna zoeken op [badjas], de vertaling voor beide woorden is gelijk of bijna gelijk, en de zoekresultaten lijken erg op elkaar dan wordt [badmantel] aangemerkt als synoniem voor [badjas] en vice versa. Op dat moment kunnen de gekwalificeerde synoniemen worden gebruikt als synoniemen voor een zoekopdracht. Met andere, door gebruik te maken van enorme data en deze te mijnen kan er met een hoge zekerheid synoniemen worden gevonden en deze kunnen worden gebruikt voor een zoekmachine.

Tot slot,

Ik begon dit artikel met een probleem dat een gebruiker soms opnieuw een zoekopdracht moet invullen met een andere sleutelwoord omdat de zoekresultaten niet optimaal waren. Met andere woorden, de zoekmachine gebruiker zoekt opnieuw met een synoniem en hoopt op betere zoekresultaten. Statistical Machine Translation en het kwalificeren van synoniemen waardoor ze in context kunnen worden geplaatst zijn mogelijke antwoorden voor dit probleem, maar Google gebruikt veel meer slimme technieken om de zoekresultaten te verbeteren. Het voorbeeld hierboven geeft wel aan hoe Google de data van haar gebruikers gebruikt om betere zoekresultaten naar voren te laten komen. Dit is een prachtig voorbeeld over hoe Google de semantiek (betekenis) van een document en zoekopdrachten aan elkaar bundelt en begrijpelijk maakt voor computers.

In een perfecte wereld en een perfecte zoekmachine betekend dit dat webmaster zich geen zorgen meer hoeven te maken over sleutelwoorden. Immer de zoekmachine vindt de synoniem toch. Dit is niet helemaal waar. Immers zoals we hier hebben gezien gebruikt Google de logs over haar gebruikers om een synoniem in context te plaatsen. Met andere woorden, het is nodig dat een zoekopdracht niet perfect is om een synoniem in een context te plaatsen. Dit betekend ook niet dat een webmasters een web document vol zet met alle mogelijke synoniemen of sleutelwoorden. Dit is, allereerst, niet nodig en ten tweede is keyword stuffing tegen de richtlijnen van Google. Maar het helpt wel om synoniemen te gebruiken op een normale manier in een tekst. Een voorbeeld die Matt Cutts geeft is “USB stick”, waarbij hij aanraadt om op een natuurlijke manier ook “flash drives” of “tumb drives” te noemen.

Een reachtie op “Hoe vindt Google synoniemen en hoe worden die in context geplaatst”

Geef een reactie

Uw e-mail adres wordt niet gepubliceerd.

*
*

De volgende HTML tags en attributen kunnen worden gebruikt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>