Dubbletter, tripletter och en och annan kvadrupel

6 december, 2009 Henrik

SwePub är som sagt lanserad. Det ligger en hel del arbete bakom den samlade nationella noden, inte minst från alla deltagande lärosätens sida. Det har handlat mycket om att implementera metadataspecar och att fortlöpande göra dataförbättringar; ett arbete som även fortsätter efter lanseringen.

En viktig del i arbetet med söktjänsten SwePub.kb.se har varit att hantera alla de dubbletter som förekommer i datat. Det finns en hel del av den varan i SwePub-datat eftersom det består av poster insamlade från en rad olika lokala system.

Ett typexempel är två forskare som samarbetat kring en publikation och lagt in den var för sig i sitt eget lokala system. Detta förekommer såväl för samarbeten olika lärosäten emellan som när forskarna är verksamma vid samma universitet. Andra exempel är forskare som flyttat och lagt in samma publikation i två olika system. Eller avhandlingar från lärosäten som saknar examinationsrätt: både det examinerande lärosätet och forskarens ”hemmalärosäte” levererar en post för avhandlingen.

Det rör sig om i runda tal 10% dubbletter, vilket med 250 000 poster medför ca 25 000 dubblettposter. Dessa är fördelade på ungefär 11 000 dubblett-tupler (två eller flera poster som beskriver samma publikation). Det rör sig alltså främst om dubbletter men det förekommer även en hel del tripletter (runt 700), kvadrupler (runt 100) et cetera (ett fåtal).

För att identifiera och slå ihop dessa går posterna igenom ett dedupliceringssteg innan de laddas i sökmotorn. Mängden data och dubbletter gör det ganska klart att dedupliceringen måste ske i huvudsak på automatisk väg. Eftersom data även uppdateras frekvent har vi valt att göra dedupliceringen från början varje natt för att slippa hålla reda på en lång historia av hopslagna poster.

En algoritm är ju dock aldrig hundraprocentig och vi har därför lagt till en möjlighet att ange undantag manuellt, d.v.s. att säga att två eller flera poster *inte* är dubbletter. En vidareutveckling blir att även kunna tvinga ihop dubbletter som missats av algoritmen.

Själva dedupliceringsalgoritmen är inte helt enkel att beskriva kortfattat, men här kommer ett försök i punktform:

  1. Skapa en nyckel för varje post bestående av dess publikationstyp (artikel, kapitel, doktorsavhandling etc.) och de första femton normaliserade tecknen i titeln.
  2. Skapa temporära kluster för poster med samma nyckel.
  3. För varje par av poster i ett sådant kluster, jämför dessa enligt nedan (ett uppfyllt villkor innebär att posterna anses vara dubbletter, och kollen avbryts):
    1. Identiska id:n (isbn, pmid, isi-id)?
    2. Samma tidskriftsreferens (issn+vol+num+startsida)?
    3. Överensstämmande titlar och utgivningsår? För publikationstyper som har värdpublikation måste även värdpublikationens titel överensstämma

Vad gäller strängjämföresle av titlar kan påpekas att dessa görs med en algoritm som inte kräver exakt liket utan tolererar att strängarna skiljer sig åt till en viss grad. Detta är nödvändigt då fält inte bara skiljer sig åt p.g.a rena stavfel utan även att titlar m.m. anges på lite olika sätt. Det kan exempelvis handla om hur man använder förkortningar.

Det finns en del andra finesser i algoritmen. För överskådlighetens skull lämnar vi dock dessa därhän.

I avsaknad av uppmärkt testdata (vilket är mycket tidskrävande att ta fram) har vi gjort en manuell utvärdering av algoritmen. Detta har gått till genom att manuellt granska ett slumpvis urval av dubbletter samt par av poster som ”precis” klassats som icke-dubbletter. Resultatet visar på att både precision (andelen av de identifierade dubbletter som är äkta dubbletter) och täckning (andel av alla äkta dubbletter som hittas) ligger över 95%.

Vi är ganska nöjda med detta resultat och tror att det i kombination med möjligheten att manuellt ange undantag mycket väl fyller sina syften för söktjänsten.

Hur vi slår ihop poster återkommer vi till i ett kommande inlägg.

Filed under: Utveckling

Etiketter:, ,


Kategorier

Senaste kommentarer

Arkiv

Verktyg

Informationskanaler