Het vinden van de juiste persoon

Samenvatting

We maken kennis met een nieuwe manier van zoeken: naar personen in plaats van naar web-documenten. We gaan ook zelf zo'n zoeken-naar-personen-machine maken. Maar als je iets maakt, wil je ook kunnen opmeten hoe goed het is. Vandaar dat we ook leren hoe de kwaliteit van een zoekmachine wordt opgemeten en wat daar allemaal bij komt kijken.

Om te beginnen...

De video Search engines in Plain English van Lee Lefever geeft een goede inleiding in de werking van zoekmachines.

Hoe moet je de opdrachten inleveren?

Je maakt deze opdrachten met een groepje van twee personen. Maak een Wiki-pagina of een pagina in Google-Docs en zorg dat de UvA-begeleiders van deze webklas in die pagina kan schrijven.
Kopieer elke opdracht die op deze pagina staat naar jouw pagina, en schrijf het antwoord steeds onder de opdracht. Hou exact dezelfde volgorde aan. Doe alle opdrachten. Lever alleen de URL van je pagina in via de ELO.

Zoeken naar personen

Zoekmachines als Google en Yahoo geven webpaginas terug als antwoord op een zoekvraag. Vaak is datgene wat je zoekt niet direct een pagina maar kan je datgene waarnaar je op zoek bent wel weer op een webpagina vinden. Bijvoorbeeld, hoe oud de zangeres Madonna is.

Een veel voorkomende informatiebehoefte is dat je een persoon in je omgeving zoekt die je kan helpen bij XXX. In het Engels wordt dit vaak expert search en ook wel people search genoemd. In essentie is het heel simpel: je typt woorden in die een bepaald onderwerp goed beschrijven en je krijgt een lijstje met personen terug. Hiervan denkt de zoekmachine dat deze mensen expert zijn of een grote interesse hebben in het ingevoerde onderwerp.

Probeer het zelf eens op de zoekmachine naar EU parlementsleden. Neem als zoektermen "moslim", "Maffia", "Turkije" of "nederland". Zijn dat nou experts op die gebieden?


Evaluatie: wanneer is een zoekmachine goed?

Van een zoekmachine wil je dat ie vindt waar jij naar zoekt, dat op de eerste pagina met zoekresultaten toont, en liefst zo hoog mogelijk. Zoekmachines doen hier erg hun best voor en natuurlijk proberen ook websites erg hoog in de Google-rangorde te komen, zeker als ze wat willen verkopen.

Hoe kun je nou de kwaliteit van een zoekmachine opmeten? Is er een maat waarmee je verschillende zoekmachines kunt vergelijken? Hier zijn verschillende maten voor ontwikkeld die ook echt door Google, Yahoo en alle anderen gebruikt worden. We behandelen er twee.

  1. Hieronder staan van de eerste vijf antwoorden op een zoekvraag of ze goed of fout waren. Bereken de p@5 en de RR.
    1. fout
    2. fout
    3. goed
    4. fout
    5. goed
  2. Geef twee voorbeelden waarin de P@10 en de RR aan elkaar gelijk zijn.

Gemiddelden

Zoals je zelf vast wel gemerkt hebt schommelt de kwaliteit van antwoorden van een zoekmachine nogal en is sterk afhankelijk van je zoekvraag. Daarom wordt er bij het vergelijken van zoekmachines vaak gekeken naar de gemiddelde P@10 en RR over een groot aantal vragen. Bij 100 vragen tel je dan alle P@10's voor elke vraag bij elkaar op en deelt dat door 100. Uiteindelijk krijg je dus weer een getal tussen 0 en 1.

Bereken de gemiddelde RR en P@5 over de volgende vier vragen.
Vraag 1 Vraag 2 Vraag 3 Vraag 4
fout goed fout fout
fout fout goed goed
goed fout fout fout
fout goed goed fout
goed goed fout fout

Hieronder staan drie soorten zoekmachines. Geef voor elk van de drie aan of je nou beter de RR of de P@10 kunt gebruiken om de kwaliteit te bepalen. Leg ook steeds uit waarom.

FindTheEmail.com
Type een naam van een persoon in en als antwoord krijg je een lijst van 10 emailadressen.
FindaMobile.com
Type de naam van een bepaald type mobiele telefoon in en als antwoord krijg je een lijst van 10 winkels waar je die telefoon kunt kopen.
FindaWerkstuk.com
Type een onderwerp in en als antwoord krijg je een lijst met 10 al helemaal voor jou gemaakte werkstukken over dat onderwerp.


Evaluatie: hoe bepaal je of een antwoord van de zoekmachine goed is of niet?

Zoekmachines hebben het maar moelijk. Als je een rekenmachine bouwt is het heel makkelijk om te bepalen of de antwoorden die gegeven worden goed zijn: ze moeten kloppen met de wiskundige wetten. Met andere woorden: voor elke vraag aan een rekenmachine is er een duidelijk omschreven van te voren in theorie bepaald correct antwoord.

Bij vragen aan een zoekmachine is het helemaal niet altijd op voorhand duidelijk wat de goede antwoorden zijn. Hoe bepaal je dat dan? Je laat de antwoorden door mensen beoordelen! Die zijn tenslotte de gebruikers van zoekmachines. Maar wat dan als een antwoord door verschillende mensen verschillend wordt beoordeeld? Dit probeert men weer op te lossen door

  1. de mensen duidelijke instructies te geven en
  2. "makkelijke" vragen te gebruiken.
Een vraag is makkelijk als het heel eenvoudig is vast te stellen of een antwoord relevant is voor de vraag of niet.

Je wilt de leeftijd van Balkenende weten en typt de twee woorden Balkenende leeftijd in Google in. We zeggen dat een pagina relevant is voor deze zoekvraag als je zonder te scrollen achter de leeftijd van Balkenende kan komen. (Nb. Als er staat dat Balkende geboren is op 6 Augustus 1964 is dat natuurlijk een relevante pagina.).
Ga naar Google, type de vraag in, en kopieer de antwoord pagina in een tekstverwerker. Ga voor elk antwoord na of het relevant is, en zet dat bij het antwoord in je tekstverwerker. Markeer jouw deel duidelijk met een kleur. Kopieer bij een relevant antwoord het stukje uit de pagina waaruit zijn leeftijd blijkt. Geef tenslotte ook de p@10 en de RR voor deze zoekvraag.

In de volgende opdracht meten we de intercodeursbetrouwbaarheid op. Dit is een maat die aangeeft in hoeverre een groep mensen hetzelfde denkt over de gegeven antwoorden op een vraag.

Stel je het volgende geval voor:
Je bent iemand die niet op jouw school zit. Je bent verliefd op iemand van jouw school en wilt weten wat voor school dat is. Je typt de naam van die school in Google in. We zeggen dat een Google-antwoord relevant is als de pagina waarheen het antwoord verwijst je wat over die school vertelt.

Type nu de naam van je school in en score de top 10 antwoorden als relevant of niet. Let op: elk antwoord moet je op zichzelf bekijken; dus niet antwoord 6 fout rekenen omdat je die informatie ook al bij antwoord 3 had gekregen.
Lever de score in en bereken de p@10 en de RR.

Neem nu de score van iemand uit je klas en bereken de intercodeursbetrouwbaarheid door simpelweg te tellen in hoeveel van de 10 gevallen je hetzelfde antwoord had gegeven. Lever de score in als percentage. Vraag nu een derde erbij en bereken in hoeveel van de gevallen jullie alledrie hetzelfde antwoord hadden. Maak een mooie tabel, en lever het uiteindelijke antwoord in.

Stel je bent een docent en maakt een toets van 10 vragen. Die toets wordt nagekeken door twee leraren die allebei les geven in het vak waar die toets over gaat. Wat voor intercodeursbetrouwbaarheid verwacht je bij de volgende drie vakken? Geef steeds kort aan waarom je dat percentage geeft.



We gaan terug naar het zoeken naar experts op een bepaald onderwerp. Ga naar de zoekmachine naar tweede kamerleden en type na elkaar de volgende vragen in:

We verwachten dus politici te krijgen die expert zijn op deze twee gebieden. We kunnen op een redelijk objectieve manier vaststellen of de antwoorden kloppen door te kijken wie van de tien er lid zijn van de kamercommissies voor onderwijs voor de eerste vraag. Voor de antwoorden op de tweede vraag kijken we natuurlijk naar de leden van de commissie van sociale zaken en werkgelegenheid. Als een persoon in die commissie zit is het antwoord goed, en anders is het fout.

Zoek uit wie er in deze twee commissies zitten op www.tweedekamer.nl. Geef nu voor beide zoekvragen de volgende informatie:
  1. het rijtje van tien personen die de zoekmachine gaf, met er achter of het goed of fout was;
  2. de P@10 en de RR


We zagen net dat onderwijs goed scoorde maar sociale zaken en werkgelegenheid niet zo goed. Een paar woorden zijn natuurlijk ook wel erg weinig om een interessegebied in uit te drukken. We kunnen dat gelukkig ook uitbreiden. Ga naar de pagina waar de taken van de commissie voor sociale zaken en werkgelegenheid worden beschreven, en kopieer met Control C de beschrijving. Ga nu weer naar de zoekmachine naar tweede kamerleden en plak met Control V die hele beschrijving in het zoekveld en zoek opnieuw.

  1. Maak opnieuw een lijstje met namen met daarachter wie goed en wie fout waren, en bereken opnieuw de P@10 en de RR.
  2. Maak de volgende zin af: "Als ik meer zoektermen aan een zoekmachine geef neemt het aantal goede antwoorden in de top 10 (de P@10) toe omdat ..."

Hoe werkt de zoeken-naar-mensen zoekmachine nou?

Voor we die vraag beantwoorden kijken we eerst nog even naar de best hoge scores die de politieke zoekmachine kreeg. Stel dat we een gemiddelde reciprocal rank vinden van (1+ 1/3)/2= 2/3=0.66. Is dat nou goed? Om die vraag te beantwoorden kan je het vergelijken door wat je zou krijgen door puur te gokken.

Voor we verder gaan halen we eerst even wat kansberekening bij je op:

Dus je hebt een kans van minder dan 1 op 1 miljoen dat je een 10 haalt voor een proefwerk met 10 MC vragen als je alleen maar gokt.



Er zijn 150 kamerleden die de zoekmachine kan teruggeven. In elke commissie zitten 25 leden.

  1. Wat is de kans dat een kamerlid in de commissie voor onderwijs zit?
  2. Wat is de kans dat je een RR van 1 hebt op de vraag "onderwijs"?
  3. Wat is de kans dat je een gemiddelde RR van 1 hebt als je het gemiddelde neemt over 10 vragen?
  4. Wat is de kans op een RR van minstens 1/2 (bij 1 vraag)?
  5. (*) Wat is de kans op een P@10 van .1 of hoger? Dit betekent dus dat minstens 1 van de antwoorden goed is.
  6. (*) Voor welke n kan de p@n nooit gelijk zijn aan 0? Wat is de minimale RR die je in deze situatie zal krijgen?

Een P@10 van .6 is dus al een erg goede score. Hoe krijgt die zoekmachine dat voor elkaar? Eigenlijk is het idee heel simpel en precies hoe een koppelaarster werkt. Een koppelaarster die personen aan personen koppelt doet voor iedereen in haar boekje het volgende:

Ze koppelt personen aan elkaar door hun profielen te vergelijken en te kijken of die profielen goed bij elkaar passen (wat dat ook moge betekenen).

Het koppelen van een onderwerp aan een persoon is eigenlijk niks anders dan het koppelen van 2 personen. Stel je voor dat jij het onderwerp bent. Als jij bij een koppelaarster komt vraagt ze je om jezelf te beschrijven. Op basis daarvan maakt ze een profiel van jou. Vervolgens zoekt ze in haar lijst met mogelijke koppelkandidaten diegene wiens profiel het best bij jou (eigenlijk: bij jouw profiel) past.

Stel je begint een dating-site en wilt personen koppelen. Je moet dus voor iedereen een profiel hebben. Je hebt de keuze uit 2 technieken:

  1. Met welke methode zal je een beter beeld krijgen van iemand? Motiveer je antwoord.
  2. Methode B is natuurlijk lastig uitvoerbaar en nogal kostbaar door al het typwerk. Kan je een alternatief bedenken dat wel makkelijk en goedkoop uitvoerbaar is en wat toch lijkt op methode B?

Het bouwen van profielen voor politici is best makkelijk want alles wat een politicus in de Tweede Kamer zegt wordt opgenomen en uitgetypt. De makers van de zoekmachine hoefden dus alleen alles wat een kamerlid zei achter elkaar te zetten en op basis daarvan zijn of haar profiel te maken. We zullen nu zien dat jullie zelf ook best makkelijk zo'n zoekmachine kunnen maken.

Zelf verzamelen van gegevens over personen.

Voordat we een zoekmachine kunnen maken moeten we eerst gegevens verzamelen. Dat doen we in de laatste opdracht van deze week.
In de volgende les zullen we dan gaan zoeken in verzameling door jullie ingevoerde personen.
Van elk persoon hebben we het volgende nodig:

  1. naam
  2. foto
  3. een URL/webadres naar zijn/haar pagina (bijv: hyves/school/myspace)
  4. Het belangrijkste: zoveel mogelijk teksten geschreven door die persoon. Emails, blogposts, alle chat berichtjes, smsjes, verhaaltjes, ...., zoveel mogelijk. Plak dat allemaal achter elkaar in 1 document. (Word of tekst bestand of web pagina).
Een voorbeeld vind je op deze pagina. Al die informatie kan je op een formuliertje op het web achterlaten.

Ga naar deze pagina. Hier ga je de gegevens van jouw personen invoeren in de database. Het systeem is zo opgezet dat er voor iedere klas een eigen database gemaakt kan worden. Nu doen we echter alles bij elkaar: dus kies als school atc-cc-gg-rhc en als klas maartenmarx. Vul nu je eigen naam en emailadres in, en geef de gegevens voor minstens drie experts op. Zorg vooral dat je flink wat tekst in het Data veld plakt. (doe dat gewoon met Control C-Control V).

Alle ingevoerde personen kan je terugvinden op deze pagina.

Welke personen moet je nou kiezen? In ieder geval jezelf! Dat is het meest belangrijkste persoon op aarde. Voor de andere ben je helemaal vrij. Het leukste is om iemand te nemen die je goed kent, je moeder, je zus, je vriend of vriendin, die ene meester die zichzelf zo te gek vind, de burgemeester, ..... Zorg wel dat je flink wat teksten over die persoon kunt verzamelen.

Uitproberen

Na verloop van tijd wordt de data die je hebt ingevoerd in een persoonszoekmachine opgeslagen en kan je het terugvinden. Je kan dan gaan zoeken in de personen die zijn toegevoegd door jou en je medeleerlingen. Dit gaat in net zo'n omgeving als bij het zoeken naar politici en kan op deze pagina.

Tot Slot

Als je ideëen hebt om een serieuze persoonszoekmachine te beginnen kan je contact opnemen met maartenmarx@uva.nl en gebruik maken van hetzelfde zoeksysteem naar personen als gebruikt is voor de politici.

Update 2009-09-11: Zo'n zoekmachine is ondertussen ontwikkeld voor de Europese verkiezingen. Zie deze zoekmachine waarin gezocht werd naar EU-parlementsleden die gaan over onderwijs ("school"). En als je vanaf nu opeens allerlei aanbiedingen krijgt van spullen die perfect bij je passen, dan gebruikt de afzender vast je profiel....

Literatuur/Meer weten?