Automatisk extraktion av nyckelfraser ur webbplatser genom Bayesiansk klassificering

Relevanta dokument
Automatisk nyckelfrasextraktion ur html-sidor

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Word- sense disambiguation

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Inlämningsuppgift: Pronomenidentifierare

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

Språkteknologi och Open Source

Övning (X)HTML 2. Sidan 1 av

Bootstrapping för substantivtaggning

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Klassificering av homonymer Inlämningsuppgift språkteknologi

Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi

Dependensregler - Lathund

Optimering av webbsidor

Tentamen Marco Kuhlmann

Gränssnitt för FakeGranska. Lars Mattsson

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor


Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Mobil streckkodsavläsare

Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, , 15 oktober 2001

2D1418, Språkteknologi NADA, Kungliga Tekniska Högskolan SÖKMOTOROPTIMERING. Av Erik Lindgren

Kungl. Tekniska högskolan NADA Grundformer med Stava

Utseende. Lauri Watts Översättare: Stefan Asserhäll

En bortsprungen katt

Användarmanual för Content tool version 7.5

TDDD02 Språkteknologi för informationssökning (2016) Ordklasstaggning. Marco Kuhlmann Institutionen för datavetenskap

Word-guide Introduktion

WEBBUTVECKLING Kursplanering


Introduktion till språkteknologi

Laboration 2: Xhtml och CSS.

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Genetisk programmering i Othello

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Webbutveckling Laboration 1: HTML5 och CSS3.

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Uppgift 1 ( Betyg 3 uppgift )

Statistisk Maskinöversättning eller:

Slump och statistik med Scratch. Se video

Kravspecifikation Fredrik Berntsson Version 1.3

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Att bygga enkla webbsidor

Tentamen, Algoritmer och datastrukturer

En stiligare portal Laboration 3

Användarhandledning Version 1.2

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén

Sovra i materialet. Vad är viktigt? Vad kan tas bort? Korta ner långa texter.

de var svåra att implementera och var väldigt ineffektiva.

Manual för Typo3 version 4.2

Logging Module into the PRIME Core

Prototypbaserad Inkrementell Diagnos. Anders Holst SICS, Swedish Institute of Computer Science AB

Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord

Webbplats analys cite4me.org

TDP003 Projekt: Egna datormiljön

Presentera dig själv Laboration 1

Manual till publiceringsverktyg

Hammarbyskolan Reviderad februari 2009 Lokal kursplan i svenska/svenska som andra språk

TDP Regler

Styrelsebloggens bruksanvisning

Ersätta text, specialtecken och formatering

Labbrapport: HTML och CSS

Statistikens grunder HT, dagtid Statistiska institutionen

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

- ett statistiskt fråga-svarsystem

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

Hur du gör ditt Gilles hemsida - en liten hjälp på vägen

Att använda Weka för språkteknologiska problem

Grafisk visualisering av en spårbarhetslösning

Omvärldsbevakning. Sammanfattning av Business Intelligence-kursen. Nyhetsarkiv och källork. Hämta webbnyheter. Modeller över texter

extensible Markup Language

Kort om World Wide Web (webben)

Skriv! Hur du enkelt skriver din uppsats

Föreläsning 13 Innehåll

Ellibot 1.0. Interaktivmedia Content Management System. Publicera för webben

Projekt Intelligent Indexering

Automatisk Sentimentklassificering av Twitter-inlägg

Kampanjtaggning. Lathund. Google Analytics. Erik Nettelbrandt Sida 1 av 7

Laboration 3 i kursen Produktion för tryckta medier och webb: Webbplatsproduktion med ett publiceringssystem

Lektion 2 - CSS. CSS - Fortsätt så här

Tillgänglighetskrav på teknik Dessa krav baseras på WCAG 2.0,

TDDD02 Föreläsning 7 HT-2013

Grundläggande textanalys. Joakim Nivre

24-timmarswebben. Riktlinje Förklaring Så uppfyller vi den

Nätet. Uppgiften. Nivå

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

WEBB365.SE. Hur skriver man sökmotoroptimerade texter

Identifiering av ordvitsar med Granska

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

GRATIS SEO, SÖK- OPTIMERING? JA, DETTA KAN DU GÖRA SJÄLV!

I den tidigare filen Manual Editor belystes grunderna för enkel uppdatering samt editorns utformning.

Statistik från webbplatser

Tentamen i Introduktion till programmering

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Ansiktsigenkänning med MATLAB

Att styla webbsidor. Nivå. Uppgiften

Transkript:

Automatisk extraktion av nyckelfraser ur webbplatser genom Bayesiansk klassificering MARTIN BLOMBERG Examensarbete Stockholm, Sverige 2005 TRITA-NA-E05101

Numerisk analys och datalogi Department of Numerical Analysis KTH and Computer Science 100 44 Stockholm Royal Institute of Technology SE-100 44 Stockholm, Sweden Automatisk extraktion av nyckelfraser ur webbplatser genom Bayesiansk klassificering MARTIN BLOMBERG TRITA-NA-E05101 Examensarbete i datalogi om 20 poäng vid Programmet för datateknik, Kungliga Tekniska Högskolan år 2005 Handledare på Nada var Viggo Kann Examinator var Stefan Arnborg

Sammanfattning Automatisk nyckelfrasextraktion baseras ofta på statistik som exempelvis termfrekvens för att extrahera fraser ur text. Målet med detta examensarbete var att utöver sådan statistik utnyttja html-taggar för att extrahera mer relevanta fraser ur webbplatser. Uppdragsgivare till detta examensarbete var Jajja Communications AB. Kea, ett befintligt system för nyckelfrasextraktion ur vanlig text, modifierades, dels för att passa webbplatsers struktur, dels för att ta hänsyn till html. Kea bygger sin algoritm på naiv Bayesiansk klassificering. Systemet användes för att extrahera fraser ur några av Jajja Communications kunders webbplatser. Kea användes också omodifierat och resultaten jämfördes och utvärderades. För att utvärdera resultaten användes en funktionell utvärderingsmetod där medarbetare på Jajja Communications fick bedöma extraherade fraser enligt en viss skala. Utvärderingen visar att bättre resultat uppnåddes efter modifieringen och att vissa delar av html gick att spåra hos en förhållandevis stor del av de fraser som bedömts högt.

Automatic keyphrase extraction from web sites using a naïve Bayes classifier Abstract Computerized tools for automatic keyphrase extraction often make use of statistics such as term frequency to extract phrases from text. The aim of this work was to, in addition, use html tags for keyphrase extraction from web sites in an attempt to extract phrases that were more relevant. This master s project was commissioned by Jajja Communications AB. Kea, an existing tool for keyphrase extraction from plain text based on naïve Bayes, was modified in part to work with the structure of web sites, in part to incorporate html tags. The modified system was used to extract keyphrases from some of Jajja Communications client web sites. An unmodified version of Kea was also used and the results of the two systems were compared and evaluated. The phrases were rated by an evaluation team, which consisted of three co-workers at Jajja Communications. All phrases were rated according to a pre-defined fourlevel scale. The conclusion is that the modifications made to Kea were successful and resulted in a larger proportion of phrases that received a high rating. It was possible to trace some parts of html to highly rated phrases.

Förord Jag vill rikta ett tack till Jajja Communications som var uppdragsgivare till detta examensarbete och Mikael Krantz som var min handledare där. Tack också till professor Viggo Kann som var min handledare på KTH Nada. Jag vill även tacka Daniel Wennlund som samtidigt som jag också gjorde examensarbete på Jajja Communications och som jag hade många givande diskussioner med. Martin Blomberg, mars 2005

Innehåll 1 Introduktion 1 1.1 JajjaCommunications... 1 1.2 Problembeskrivning... 1 1.3 Mål... 2 1.4 Avgränsningar... 2 1.5 Disposition... 2 2 Teori 3 2.1 Inledning... 3 2.2 Övervakadmaskininlärning... 4 2.2.1 Beslutsträd... 4 2.2.2 NaivBayesianskklassificering... 5 2.2.3 Genetiskaalgoritmer... 6 2.3 Ordklasstaggning... 6 2.3.1 Regelbaserad ordklasstaggning... 6 2.3.2 Stokastisk ordklasstaggning... 7 2.3.3 Brill-taggare... 7 2.4 Ordstammar... 7 2.4.1 LovinsochPorter... 8 2.5 Stoppord... 8 2.6 Nyckelfrasextraktion... 8 2.6.1 Kandidatfraser... 9 2.6.2 Nyckelfraser... 10 2.6.3 Attribut hos fraser... 10 2.7 Färdigasystem... 11 2.7.1 GenEx... 12 2.7.2 Kea... 12 2.8 Språkspecifika delar av nyckelfrasextraktion.............. 13 2.8.1 Ordochordstammar... 13 2.8.2 Sammansattaord... 14 3 Genomförande 16 3.1 Nyckelfrasextraktionpåsvenska... 16 3.2 Webbplatser... 17

3.2.1 Filstrukturer... 17 3.3 Användning av Kea... 17 3.3.1 Sammanställningavfraser... 18 3.4 Modifikation av attribut... 18 3.4.1 Positionsattributet... 18 3.4.2 tf idf... 19 3.4.3 Attribut för html... 19 3.4.4 Lingvistiskanpassning... 20 3.5 ImplementationiKea... 20 3.5.1 Kandidatfraser N-gram med taggning............ 20 3.6 Matematisk behandling av indata till Kea............... 20 3.7 Utvärdering... 21 3.7.1 Etttredjesystem... 22 3.7.2 Traditionellutvärdering... 22 3.7.3 Funktionellutvärdering... 22 4 Resultat 24 4.1 Introduktion till presentation av resultat................ 24 4.2 Funktionellutvärdering... 24 4.2.1 Utvärdering av Daniels system (D)............... 24 4.2.2 Utvärdering av omodifierade Kea (K).............. 25 4.2.3 Utvärdering av modifierade Kea (M).............. 27 4.3 Traditionellutvärdering... 28 4.4 Samsynochmajoritetsbedömningar... 29 4.5 De kompletterande frågorna... 29 5 Analys och diskussion 31 5.1 Analysavutvärderingen... 31 5.1.1 Utvärderingensnackdelar... 31 5.1.2 Utvärderingensfördelar... 31 5.2 Analysavresultaten... 32 5.2.1 ResultatfrånKea... 32 5.2.2 Resultat från det modifierade Kea............... 32 5.2.3 Samsyn... 33 5.2.4 Korrelation... 34 5.2.5 Lingvistiskanalys... 36 5.2.6 Slutsatser... 37 5.3 Sammanfattningsvis... 37 5.4 Felkällor... 38 6 Ytterligare arbete 39 6.1 Ordklassmönster... 39 6.2 Specifikastoppordlistor... 39 6.3 Stemmare... 39

6.4 Synonymer... 40 6.5 En hel webbplats som en probleminstans................ 40 6.6 Länkräknare... 40 6.7 Css-parser... 40 6.8 Referer-loggar som träningsdata... 40 Referenser 41 A Manual för utvärdering 45

Kapitel 1 Introduktion Denna rapport beskriver mitt arbete i kursen 2D1021, Examensarbete inom datalogi, på KTH Nada. Uppdragsgivare var Jajja Communications som även tillhandahöll arbetsplats och arbetsredskap under arbetets gång. Mikael Krantz var min handledare på Jajja Communications och professor Viggo Kann var min handledare på KTH Nada. 1.1 Jajja Communications Jajja Communications är en leverantör av trafik till webbplatser. Jajja Communications hjälper sina kunder att uppnå en bra rankning hos flera av Internets sökmotorer bland annat genom att på vissa sätt modifiera deras webbsidor så att de lättare kan indexeras av sökmotorernas spindlar 1. En del av det arbete Jajja Communications utför består av att välja ut lämpliga nyckelord och nyckelfraser 2 för webbsidor. Detta arbete görs idag manuellt och är en tidskrävande uppgift. För mindre kunder där vinstmarginalen är liten är det inte alltid lönsamt att göra detta arbete och Jajja Communications söker därför metoder och tekniker för att skapa ett datoriserat verktyg som kan kan vara dem till hjälp. Det system Jajja Communications efterfrågar ska kunna analysera en webbsida och välja ut ord och fraser som sannolikt passar som nyckelord eller nyckelfraser för sidan. 1.2 Problembeskrivning De texter ur vilka Jajja Communications vill extrahera nyckelfraser är webbsidor. Dessa webbsidor innehåller förutom text också metadata i form av html. Den metadata som finns tillgänglig kan användas för att ta reda på om någon del av texten utseendemässigt skiljer sig från brödtexten. Vissa element på en webbsida har också 1 Spindel är ett dataprogram som används för att söka igenom webbsidor via deras länknät. 2 Nyckelfraser kommer genomgående att användas för att omfatta även nyckelord. 1

ett attribut som gör att en text visas intill muspekaren i webbläsaren, vilket förekommer exempelvis för hyperlänkar och bilder. Ett rimligt antagande är att html-taggar på något sätt kan utnyttjas för att bedöma frasers lämplighet som nyckelfras i det sammanhang som här är aktuellt. Uppgiften var att undersöka om och hur ett befintligt system för nyckelfrasextraktion kan modifieras så att resultatet i någon mån kan vara till nytta för Jajja Communications i arbetet med att välja nyckelfraser till webbsidor. Ett sätt att bedöma olika html-taggar föreslogs i vilka text som hittas ska ses som potentiella nyckelfraser och på lämpligt sätt klassificeras som nyckelfras eller icke nyckelfras. Ett färdigt system skulle modifieras så att det tog hänsyn till den taggning som html utgör och de föreslagna egenskaperna skulle implementeras. Resultatet skulle utvärderas med avseende på den förenkling verktyget skulle innebära i Jajja Communications arbete jämfört med det omodifierade verktyget. 1.3 Mål Målet med arbetet var att utveckla en prototyp av ett system för nyckelfrasextraktion som grundar sitt urval delvis på html. Detta system skulle användas för att undersöka i vilken utsträckning html kan vara en hjälp när Jajja Communications ska välja ut nyckelfraser att tilldela en webbplats. Prototypen utvärderades och resultat och slutsatser finns att läsa i kapitel 4 och 5. 1.4 Avgränsningar Uppgiften omfattade att implementera och utvärdera en prototyp som tog hänsyn till html. Css och andra element som förekommer på webbplatser omfattades inte av detta arbete, inte heller att extrahera text ur exempelvis animationer gjorda i Flash eller filer i pdf-format. Prototypen skulle användas till att utvärdera idéer och tekniker rörande nyckelfrasextraktion med hänsyn till html och skulle inte på något sätt implementeras i Jajja Communications övriga datormiljö inom ramen för detta examensarbete. 1.5 Disposition Kapitel 2 beskriver den teori som ligger bakom den teknik som användes och ger en ytlig orientering i ämnet. Kapitel 3 redogör för hur uppgiften löstes. Kapitel 4 innehåller resultatet av utvärderingarna, kapitel 5 innehåller en diskussion kring och en analys av resultatet. Kapitel 6 innehåller ytterligare idéer till förbättringar och fortsatt arbete inom detta område. 2

Kapitel 2 Teori 2.1 Inledning Nyckelord och nyckelfraser, ord och fraser som på ett kärnfullt sätt sammanfattar ett dokuments innehåll, kan vara till stor nytta och har flera tillämpningar. Omsorgsfullt valda nyckelfraser kan användas vid exempelvis sammanfattning och kategorisering av texter. För dokument på Internet finns ofta önskemålet att dessa ska kunna indexeras och göras sökbara av flera av Internets sökmotorer, exempelvis Google [6] och AltaVista [1]. Vidare ska dokumenten helst också av dessa sökmotorer rankas så att de kommer bland de första sökträffarna för en sökning på någon viss sökfras. Att välja ut bra nyckelfraser för ett dokument på Internet och placera dessa strategiskt i dokumentet kan vara första steget mot en framgångsrik indexering hos sökmotorerna. Långt ifrån alla dokument är försedda med separata nyckelfraser. Att för någon annan än författaren i efterhand välja nyckelfraser är ett tidsödande arbete och kräver dessutom ofta inblick i ämnet som dokumentet berör. Det har därför gjorts många försöka att automatisera detta arbete med hjälp av datorer. Det finns för datorer i huvudsak två sätt att lösa uppgiften. Det ena är nyckelfrastilldelning, vilket innebär att från ett för ämnesområdet kontrollerat vokabulär välja ut fraser som beskriver texten. Detta betyder att de tilldelade nyckelfraserna inte behöver finnas i den text till vilken de tilldelas och dessutom att nyckelfraserna för dokument inom samma ämnesområde tenderar att sammanfalla. Det andra sättet är nyckelfrasextraktion. Nyckelfrasextraktion går ut på att från det aktuella dokumentet välja ut fraser som sannolikt passar som nyckelfraser. Detta arbete fokuserade helt på nyckelfrasextraktion. Nyckelfrasextraktion går till skillnad från nyckelfrastilldelning att automatisera utan att göras domänspecifikt, något som kan ses som en stor fördel om nyckelfraser ska extraheras från dokument från mer än en domän. 3

2.2 Övervakad maskininlärning Idag finns långt gången forskning inom området automatisk nyckelfrasextraktion och färdiga system som löser uppgiften finns tillgängliga. 1999 visade Turney hur problemet kan ses som ett klassificeringsproblem där uppgiften är att klassificera fraser som nyckelfras eller icke-nyckelfras [18]. För att låta maskiner lösa klassificeringsproblem används med framgång artificiell intelligens i form av övervakad maskininlärning, och det är idag den metod som används flitigast för att lösa problemet. System för övervakad maskininlärning är program som måste tränas innan de löser sin uppgift. Programmet tränas genom att få se en mängd redan klassificerade probleminstanser. Dessa probleminstanser kallas exempel och utifrån denna exempelmängd dras slutsatser av de egenskaper varje exempel har och den klass som varje exempel tilldelats. Till ett program vars uppgift är att klassificera en fras som nyckelfras eller icke-nyckelfras ges som indata fraser i form av vektorer av egenskaper som tillskrivs frasen. För nyckelfrasextraktion är det vanligtvis egenskaper som är mått på hur ofta frasen förekommer i dokumentet, hur ofta frasen förkommer i någon korpus och var i dokumentet frasens första förekomst står. Det finns många typer av övervakad maskininlärning och några av de vanligast förekommande är beslutsträd, naiv Bayesiansk klassificering och genetiska algoritmer. 2.2.1 Beslutsträd Beslutsträd är en konceptuellt enkel men ändå kraftfull form av klassificerare. I ett beslutsträd svarar varje intern nod mot en testvariabel och varje möjligt utfall på denna leder till en efterföljande nod på väg mot ett löv. Varje löv motsvarar en klass, och efter att en probleminstans undersökts med avseende på testvariablerna med utgångspunkt i trädets rot landar den i ett löv och tilldelas den klass som lövet representerar. En testvariabel kan förekomma flera gånger i ett träd, dock bara en gång på varje stig från roten till ett löv. Alla testvariabler måste heller inte finnas med på en stig mellan rot och löv. Alla attribut behöver alltså inte vara relevanta, utan det kan räcka med att se utfallet från en testvariabel för att klassificera ett exempel. För att beslutsträdet ska vara effektivt minimeras dess djup. Trädets djup är ett mått på hur många frågor som maximalt måste ställas för att ett löv ska nås. Det är därför av vikt i vilken ordning frågorna i trädet ställs. Djupet minimeras genom att vid varje förgrening välja att undersöka det mest informativa attributet av de som ännu inte undersökts längs stigen. Det mest informativa attributet är det attribut som går längst mot en exakt klassificering som delar upp träningsmängden i delmängder sådana att de bara innehåller exempel från samma klass. Följande formel används för att beräkna informationsinnehållet I i bitar hos ett attribut V med sannoliketer P (v i ) för de olika utfallen [14]: 4

I(P (v 1 ),P(v 2 ),...,P(v n )) = n P (v i )log 2 P (v i ). (2.1) i=1 2.2.2 Naiv Bayesiansk klassificering Naiv Bayesiansk klassificering bygger på Bayes sats om betingad sannolikhet och är en statistisk klassificeringsmetod. Naiv Bayesiansk klassificering ger en möjlighet att bestämma sannoliketen för att en hypotes håller, givet dess sannolikhet i tidigare fall och sannolikheten för datan på vilken den appliceras. Givet en hypotes h och en datamängd D så ger Bayes sats en formel för att beräkna P (h D) givet P (h), P (D) och P (D h): P (D h)p (h) P (h D) = (2.2) P (D) där P (h) är sannolikheten att hypotesen h håller och P (D) sannolikheten att observera datan D. Denna metod måste i likhet med beslutsträdsalgoritmer tränas, alltså visas en mängd redan klassificerade exempel innan den kan användas. Det är ifrån denna träningsmängd som sannolikheterna P (h), P (D) och P (D h) hämtas. Utifrån träningsmängden byggs statistik över sammanhangen mellan exemplens attribut och deras klassificering. Det naiva i denna ansats är antagandet att attributen är oberoende, något som måste gälla för att Bayes sats ska vara uppfylld. Som i fallet med beslutsträd är indata till systemet en vektor med egenskaper och deras värden. Givet en sådan vektor returnerar den naiva Bayesianska klassificeraren den mest sannolika klassen, i detta fall antingen nyckelfras eller icke-nyckelfras, enligt Bayes sats. Låt (a 1,a 2,...,a n ) vara en egenskapsvektor och K mängden av möjliga klasser så gäller att s är den mest sannolika klassen. s = argmax P (k i a 1,a 2,...,a n ) (2.3) k i K Enligt Bayes sats kan detta skrivas om som s = argmax k i K P (a 1,a 2,...,a n k i )P (k j ) P (a 1,a 2,...,a n ) (2.4) = argmax P (a 1,a 2,...,a n k i )P (k i ) (2.5) k i K Givet att de olika attributen (a 1,a 2,...,a n ) är oberoende av varandra är sannolikheten för dess konjunktion lika stor som produkten av deras sannoliketer. Detta medför att formeln ytterligare kan förenklas: 5

s = argmax k i K P (k i ) n P (a j k i ) (2.6) j=1 Denna sista förenklade form, med det naiva antagandet explicit, är den som brukar användas för att beskriva den Bayesianska klassificeraren. 2.2.3 Genetiska algoritmer Genetiska algoritmer är ett försök att låta ett dataprogram simulera evolution. I programmet existerar en population. Populationen består av en mängd individer som representerar möjliga hypoteser i form av bitsträngar. Den första populationen kan slumpas och en mängd individer skapas. Varje individ utvärderas sedan av en på förhand definierad funktion. De individer som når högst poäng väljs ut och får utgöra grunden för nästa generation i populationen. Dessa individer kan ibland gå vidare till nästa generation oförändrade men modifieras ofta för att simulera mutation. Individer kan kombineras med varandra eller slumpmässigt förändras. En gräns för hur pass livsduglig en individ måste vara enligt den på förhand definierade funktionen avgör när evolutionen ska stoppas. Den högst bedömda individen, bitsträngen, har då valts ut av systemet och den hypotes som där representeras är den som enligt systemet håller bäst. [13] 2.3 Ordklasstaggning I flera applikationer inom textanalys är det användbart att veta vilka ordklasser ord i texten har. En ordklasstaggare annoterar en text med ordklasstaggar, alltså märker upp varje ord i texten med dess ordklass. Att låta ett dataprogram kontrollera varje ord i texten mot ett lexikon där ordklass står med och sedan märka texten är inte ett alternativ som fungerar fullt ut. Orsaken är den tvetydighet som ofta uppstår i naturligt språk, exempelvis genom ord med samma stavning men olika betydelse och ordklass. Det finns många olika tagguppsättningar som används och dessa har mellan 40 och 200 olika taggar. De flesta ordklasstaggare kan delas in i två kategorier, regelbaserade taggare och stokastiska taggare, men det finns också modeller som utnyttjar båda dessa tekniker. [9] 2.3.1 Regelbaserad ordklasstaggning De regelbaserade ordklasstaggarna är vanligtvis baserade på ett tvåpass-system. Det första steget kontrollerar ord mot en ordlista och om ingen tvetydighet hittas så taggas ordet med den ordklass som finns angiven i listan. Finns någon tvetydighet går programmet vidare till nästa steg. Det andra steget använder en rad handskrivna regler för att eliminera de olika ordklassalternativ som är möjliga för ett tvetydigt ord tills bara ett alternativ återstår. Dessa regler kan exempelvis bygga på hur sekvenser av ordklasser kan användas i ett språk. 6

2.3.2 Stokastisk ordklasstaggning Stokastisk ordklasstaggning innebär att sannolikheter får avgöra med vilken klass ett ord taggas. Givet en taggad korpus görs statistik för hur ordklasser förekommer och denna statistik får sedan ligga till grund för hur andra texter taggas. En vanligt förekommande metod för stokastisk ordklasstaggning kallas Hidden Markov Model och är grunden för HMM-taggare. HMM-taggare använder sig av Bayes sats för betingad sannolikhet för att beräkna dels sannolikheten för ordet i fråga givet de olika möjliga ordklasserna, dels sannolikheten för de olika möjliga ordklasserna givet den föregående ordklassekvensen. Formellt, där T är mängden av möjliga klasser för ordet ord, ges den ordklass klass som tilldelas ordet av följande formel: klass = argmax t i T 2.3.3 Brill-taggare P (ord t i )P (t i föregående n taggar) (2.7) Brill-taggare baseras på TBL, transformation-based learning, och har fått namn efter sin skapare, Eric Brill. Brill-taggaren bygger på idéer från både regelbaserade och stokastiska taggare och arbetar i tre steg. I det första steget taggas texten med någon typ av taggare. Ofta används en stokastisk taggare till detta steg. Efter att texten passerat genom detta första steg jämförs den med en referens, en manuellt taggad korpus. Brill kallar denna korpus för sanningen [2]. En lista med förändringar lärs in som kan göras på resultatet från det första steget för att det bättre ska stämma med sanningen. En förändring består av två komponenter, en omskrivningsregel och en trigger som avgör när regeln ska tillämpas. Reglerna utformas efter mallen ändra a till b när X dära och b är ordklasstaggar och X är något villkor som omfattar något eller några av omgivande ords taggning. I det tredje steget poängbedöms dessa förändringar på något sätt, och den regel som når högst poäng tillämpas. Regeln läggs till i regellistan. Dessa tre steg för lärande genom förändringar pågår tills något stoppkriterium möts. 2.4 Ordstammar Ofta är det önskvärt att olika former av ett ord räknas som ett och samma då statistik för en text byggs upp. Exempelvis kan det vara praktiskt att räkna orden katten, katternas och katter som ett och samma. Det är rimligt att tro att orden beskriver samma ämne eller sammanhang och därför ska räknas till samma kvot. För att kunna göra detta används ett verktyg som extraherar ordstammen ur ett ord, en stemmare. Detta sker som är vanligt inom språkteknologi med heuristiska regler och resultatet blir inte helt korrekt. Stemmaren undersöker ett ord och ändrar det eventuellt med hänsyn till hur det avslutas. Vissa stemmare har en så kallad aggressiv infallsvinkel och nöjer sig med att trunkera ordet efter ett visst antal tecken och låta det som återstår vara ordets stam. Dessa verktyg har egentligen inte 7

med ordstamsextraktion att göra, men försöker genom att trunkera ordet uppnå ett liknande resultat. 2.4.1 Lovins och Porter För engelsk text finns två vanligt förekommande algoritmer för stemmare, Lovins algoritm [16] och Porters algoritm [17]. Dessa representerar varsin metod för att stemma ord. Lovins algoritm presenterades redan 1968 och var den första i sitt slag. Algoritmen arbetar i två steg och omfattar 294 suffix, 29 villkor och 35 omskrivningsregler. Varje suffix associeras med ett villkor. I algoritmens första steg hittas det längsta suffixet vars villkor är uppfyllt och detta suffix raderas. Ett villkor kan vara att återstoden av ordet efter att tillhörande suffix raderats måste vara minst tre tecken. I det andra steget tillämpas de 35 reglerna för att modifiera återstoden av ordet. Dessa regler tillämpas oavsett om ett suffix hittas i det första steget eller inte. Reglerna avser att kontrollera och vid behov ändra ord där saker som som dubblade konsonanter förekommer, eller ta hand om oregelbundna verb. Porter presenterade sin algoritm 1980. Den är uppbyggd av sju regelmängder som används i tur och ordning. Regelmängderna innehåller regler för att eliminera suffix av olika slag. De olika regelmängderna har regler för att eliminera suffix som hör till exempelvis substantiv i plural och verb i tredje person singular. Porters algoritm är mindre än Lovins, som i sin tur är snabbare. 2.5 Stoppord I ett språk finns ofta många ord som förekommer frekvent i de allra flesta texter. Dessa ord har därför låg särskiljningsförmåga när det gäller att skilja texter från varandra och är därför olämpliga som nyckelord. Dessa ord kallas stoppord och svenska stoppord är ord som att, dig, in och och. Det finns ingen absolut regel för vad som är ett stoppord eller inte, men att göra frekvensanalys i text kan ge bra idéer om vad som bör vara stoppord. Ordklasser kan också ge viss ledning när stoppord ska identifieras. Svenska stoppord är är ofta prepositioner, konjunktioner, interjektioner och räkneord. En stoppordlista innehåller vanligtvis de mest frekvent förekommande orden ur ett visst språk och är alltså språkspecifik. Denna egenskap gör att stoppordlistor passar bra att använda i tillämpningar som språkigenkänning. [5] 2.6 Nyckelfrasextraktion Alla de tre tidigare beskrivna metoderna för maskininlärning, beslutsträd, naiv Bayesiansk klassificering och genetiska algoritmer, har använts för nyckelfrasextraktion och vid en datorbaserad tillämpning som denna finns anledning att vilja utvärdera 8

det resultat som presteras. Det vedertagna sättet är att mäta vilken precision och vilken täckning som systemet har. Den referens som används inom denna tillämpning är manuellt valda nyckelfraser. Ett antal nyckelfraser väljs manuellt ur ett antal dokument och ur samma dokument extraheras sedan nyckelfraser automatiskt. Precisionen p är ett mått på den automatiska extraheringens träffsäkerhet och definieras nedan. Antal manuellt valda fraser som valts automatiskt p = (2.8) Antal automatiskt valda fraser Täckningen r avser hur stor andel av de manuellt tilldelade nyckelorden som hittas automatiskt. Antal manuellt valda fraser som valts automatiskt r = (2.9) Antal manuellt valda fraser Värt att notera är att denna typ av utvärdering ser vissa fraser och deras ordstammar som absoluta nyckelfraser, medan övriga fraser ses som icke-nyckelfraser. De fraser som ses som nyckelfraser är just de ord och fraser som valts ut manuellt. Eftersom ett mått subjektivitet finns då ett sådant val görs är denna utvärderingsmetod kanske inte den bästa för tillämpningen. 2.6.1 Kandidatfraser Utgångspunkten vid ett klassificeringsproblem är en mängd probleminstanser. Dessa probleminstanser ska klassificeras med utgångspunkt från en mängd egenskaper, attribut. Vid nyckelfrasextraktion ska fraser klassificeras som antingen nyckelfras eller icke-nyckelfras. Probleminstanserna är i detta fall en mängd fraser, kandidatfraser, som kan tillskrivas en mängd attribut. Kandidatfraserna extraheras ur texten och för att avgöra vad som ska vara en kandidatfras finns flera metoder. Att avgöra vad i en text som är en kandidatfras kallas kandidatfrasgenerering, och de fraser som genereras kandidatfraser. Frank et al. använder en heuristik för att bestämma vad som är en fras [24]. Hulth kallar deras metod för N-gram-metoden [8] och föreslår vidare två andra metoder för att avgöra vad som ska vara en kandidatfras, båda med lingvistiska element som baserar sig på ordklasstaggning. En av dessa söker i texten efter nominalfraser, den andra söker efter vissa mönster av ordklasser för att identifiera kandidatfraser. N-gram Först delas texten upp med hänsyn till skiljetecken samt parenteser för att på ett lätt sätt dela upp texten i vad som kan tänkas vara fraser. Ifrån dessa fraser väljs sedan alla sekvenser av ett, två och tre ord som varken börjar eller slutar med ett stoppord. Fraser som bara består av namn tas bort, varpå de kvarvarande fraserna 9

görs om till sina ordstammar i gemener. Ordstamsfraser som förekommer endast en gång tas bort från mängden. De fraser som finns kvar i mängden utgör dokumentets kandidatfraser. Nominalfraser En nominalfras kännetecknas av att ett substantiv, egennamn eller ett pronomen är huvudord, och metoden kretsar kring uppfattning att nominalfraser har stor potential att vara nyckelfraser. De nominalfraser som hittas i texten utgör mängden av kandidatfraser. Ordklasstaggning Texten ordklasstaggas, varpå sekvenser av ordklasstaggar undersöks och jämförs med ordklasstaggarna för manuellt tilldelade nyckelfraser. Hulth presenterar 56 olika ordklassmönster som är vanligt förekommande bland manuellt utvalda nyckelfraser [8]. De fraser med ordklassmönster som återfinns bland de 56 låter hon utgöra mängden kandidatfraser. Av dessa 56 mönster innehåller 51 substantiv. 2.6.2 Nyckelfraser När kandidatfraser är extraherade ur texten är datorns uppgift att klassificera dessa som antingen nyckelfras eller icke-nyckelfras. Detta gör man genom att undersöka vissa attribut hos fraserna och sedan låta en tränad klassificerare sköta klassificeringen. 2.6.3 Attribut hos fraser Frank et al. konstaterar att framför allt tre attribut är lämpliga för att särskilja nyckelfraser bland övriga kandidatfraser då infallsvinkeln med maskininlärning används [24]. Det första attributet är frasens frekvens i texten. Det kallas ofta termfrekvens, tf. Det andra är den inverterade dokumentfrekvensen, inversen av frasens frekvens i dokument i en korpus. Detta attribut heter invers dokumentfrekvens och förkortas idf. Dessa två slås av Frank et al. ihop till ett attribut, tf idf, och speglar då hur specifik en fras är för ett dokument [24, 25]. tf idf för en fras P i ett dokument D beräknas enligt följande formel: tf idf = freq(p, D) size(d) ( ) df (P ) log 2 N (2.10) där freq(p, D) är antalet förekomster av P i D, size(d) är antalet ord i D, df (P ) är antalet dokument i någon korpus som innehåller P och N är antalet dokument i samma korpus. Vidare är också den relativa positionen för frasens första förekomst i texten av betydelse. Detta attribut normaliseras ofta till ett värde i intervallet [0, 1) och ges av formeln: 10

pos(p, D) position = (2.11) size(d) där pos(p, D) är antalet ord i dokumentet D som står före frasen P. Dessa attribut bygger på statistik för fraser och texter och tar ingen direkt hänsyn till lingvistiska aspekter eller formatering av text. Att använda attribut som bygger på lingvistik eller formatering av text skulle eventuellt kunna förbättra de resultat som hittills uppnåtts. Ytterligare heuristiker Metoder och heuristiker som inte baserar sig på maskininlärning eller statistik för att extrahera nyckelfraser ur dokument existerar också. Dessa analyserar textens struktur och uppbyggnad i flera avseenden. Nedan listas några av dessa företeelser som gör att en fras kan lämpa sig som nyckelfras. [12] Ordet består av endast versaler. Ett ord endast bestående av versaler är sannolikt en akronym och kan därför göra sig bra som nyckelfras. Akronymer står också ofta med en parentes just bakom sig, innehållande en förklaring av akronymen. Ordet eller frasen har en annorlunda formatering än brödtexten. Denna heuristik baserar sig på att författare vanligtvis markerar viktiga begrepp genom att formatera dessa med stil som är kursiv eller fet första gången de används. Ordet eller frasen står som rubrik. Rubriker till stycken och tabeller kan i många fall passa bra som nyckelfraser. Ytterligare heuristiker kan känna igen uppräkningar i form av listor, diagram- och bildtexter och kolumnrubriker i tabeller etc. Dessa heuristiker presenteras av Krulwich [12] och de har använts i Krulwhichs arbete med att utforma agenten InformationFinder [3]. Agenten lär sig vad användaren tycker är intressant och söker sedan på Internet efter information som sannolikt också är intressant för användaren. Vid inlärningsprocessen visas ett dokument för användaren som får klassificera dokumentet som intressant eller ointressant. Klassas dokumentet som intressant ställs ett antal följdfrågor som handlar om varför användaren tycker att dokumentet är intressant. Användaren kan välja mellan alternativ som subject area, project name och person. De just nämnda heuristikerna kommer till användning när agenten därpå extraherar nyckelfraser ur dokumentet för att lära sig vad som kan vara signifikanta fraser inom det område användaren angivit. 2.7 Färdiga system Det finns färdiga system som löser uppgiften med nyckelfrasextraktion. Dessa använder sig av övervakad maskininlärning för att lära sig hitta ett mönster mellan 11

redan klassificerad datas klass och attribut för att på så sätt kunna klassificera nya data. 2.7.1 GenEx Turney har utvecklat ett system för automatisk nyckelfrasextraktion som han kallar GenEx [18]. GenEx består av två separata delar, dels Genitor som är den lärande komponenten, dels Extractor som extraherar nyckelfraser ur texter. Genitor är utvecklad av Whitley [23] och använder en genetisk algoritm för inlärning. Inlärningens mål är att justera ett antal parametrar som används för att avgöra i hur stor utsträckning en fras passar som nyckelfras. Genitor behöver en datamängd för att tränas. Datamängden innehåller redan klassificerade exempel och delas i två delar, en träningsmängd och en testmängd. Träningsmängden används av Genitor under träningen för att hitta bra värden för de parametrar som ska justeras, testmängden används då träningen är slutförd för att utvärdera Genitors resultat. Det är alltid viktigt att träningsmängd och testmängd är två disjunkta mängder så att systemet inte tränas specifikt för testmängden. Den genetiska algoritmens sätt att bedöma livsdugligheten för varje individ är att använda dess parametervärden vid extraktion av nyckelfraser från testmängden. Då Genitor har justerat parametrarna och hittat en optimal lösning kan parametrarna ges till Extractor och Genitor behövs inte mer. Extractor använder sig av en egenutvecklad algoritm för att poängbedöma fraser med utgångpunkt från ett antal egenskaper. Varje egenskap poängsätts och poängsättningen beror dels på frasens verkliga egenskap, dels på någon av de parametrar Genitor justerat. För egenskapen position för frasens första förekomst får frasen först ett värde som avspeglar positionen för frasens första förekomst. Beroende på om detta värde är högre än en viss tröskel multipliceras värdet med en av de parametrar Genitor justerat, annars med en annan. Då Extractor ska presentera nyckelfraser väljs de fraser som sammanlagt fått högst poäng sett till de olika egenskaperna. 2.7.2 Kea Frank et al. presenterar ett annat sätt att automatiskt extrahera nyckelfraser ur dokument [24]. De använder naiv Bayesiansk klassificering och deras algoritm är något mindre komplicerad än Turneys. Som beskrivet tidigare konstaterar Frank et al. att framförallt tre egenskaper hos fraser är lämpliga för att särskilja nyckelfraser bland alla kandidatfraser. Dessa egenskaper är termfrekvensen, den inverterade dokumentfrekvensen och positionen för frasens första förekomst. Termfrekvensen tf och den inverterade dokumentfrekvensen idf slås ihop ett ett attribut, tf idf. Deras idéer är implementerade i systemet Kea [25]. Turney konstaterar att GenEx och Keatenderar att uppnå resultat som inte skiljer sig avsevärt [18]. Probleminstanserna i Kea består av egenskapsvektorer till vilka sannolikheten att tillhöra en viss klass beräknas. Klass i det här fallet beskriver huruvida frasen är en nyckelfras eller 12

Ursprungsfras Ordstam tf idf position klass Målaren mål [1, 5] [1,4] false Ursprungsfras Ordstam tf idf position klass Hästen gnäggade häst gnägg [1, 5] [1,4] true Ursprungsfras Ordstam tf idf position klass en bra bil en bra bil [1, 5] [1,4] Tabell 2.1. Schematisk bild som visar hur en probleminstans, en kandidatfras, kan representeras. I Kea används attributen tf idf och position för att beskriva frasens egenskaper. Då Kea tränas med redan klassificerade data är attributet klass tilldelat ett sanningsvärde, antingen true eller false. Vid extraktion av nyckelfraser ur en text är det just sannolikheten att detta värde ska vara true som beräknas, varpå de fraser med högst sannolikhet presenteras som resultat. inte. Beräkningen görs alltså med ledning av två attribut, tf idf och position, tillsammans med den generella sannolikheten för en fras att vara nyckelfras givet träningsdatan. 2.8 Språkspecifika delar av nyckelfrasextraktion Inom automatisk nyckelfrasextraktion som den beskrivits här finns vissa delar som är språkspecifika. Dessa delar måste implementeras specifikt för det språk som avses. Dessa delar är stoppordlista, ordstamsuppdelning och ordklasstaggning. För det svenska språket kan dessutom analys av sammansatta ord vara en intressant del. 2.8.1 Ord och ordstammar En stemmer för svenska måste implementeras i ett system som portas till svenska. Porter presenterar en algoritm för stemming på svenska [15]: Låt R vara den del av ordet som står efter den första konsonanten som följer en vokal, eller tom om ingen sådan del av ordet finns. - Definiera bokstäverna bcdfghijklmnoprtvysom tillåtna avslutningar före ett s 1. Sök det längsta förekommande av följande suffix i R och utför den regel som indikeras. (a) a arna erna heterna orna ad e ade ande arne are aste en anden aren heten ern ar er heter or as arnas ernas ornas es ades andes ens arens hetens erns at andet het ast radera suffixet 13

(b) s radera suffixet om det följer en tillåten avslutning. Bokstaven som utgör den tillåtna avslutningen behöver inte vara i R. 2. Sök efter något av följande suffix i R. dd gd nn dt gt kt tt radera suffixet om det hittas 3. Sök det längsta av följande suffix i R och utför den regel som anges. (a) lig ig els radera (b) löst ersätt med lös (c) fullt ersätt med full 2.8.2 Sammansatta ord En skillnad mellan engelska och svenska är bruket av sammansatta ord. I svenska skrivs de ord som bildar en sammansättning ihop till ett ord, medan de i engelskan ofta skrivs som flera separata. Som exempel kan tas det svenska ordet taligenkänning och dess engelska motsvarighet speech recognition. Då statistik för en text byggs upp kan sammansättning av ord göra att antalet förekomster av unika ord inte riktigt speglar antalet förekomster av vissa begrepp. En text som innehåller orden bilverkstad, bildelar, lastbil och bilförare handlar sannolikt om bilar. Bil skulle eventuellt kunna vara ett nyckelord trots att det inte förekommer alls bland orden mer än som delsträng. Kann och Sjöbergh presenterar en metod för att dela upp sammansatta ord till flera [11]. I sitt arbete använder de sig av rättstavningsprogrammet Stava [10]. Eftersom Stava måste kunna kontrollera stavningen för sammansatta ord har programmet ett sätt att upptäcka vilka ord som ingår i sammansättningar. Stava använder sig av tre olika listor med ord för att kontrollera ords, däribland sammansatta, stavning. Stava har en lista med ord som inte kan ingå i sammansättningar, en lista med ord som kan vara sista delen i något ord eller ett eget ord och en lista med ordstammar som kan vara första eller mellandel i ett sammansatt ord. Genom att söka i de olika listorna försöker Stava hitta en uppdelning av ett ord för att på så sätt godkänna dess stavning. Ibland hittas bara en uppdelning av ordet men inte sällan kan det finnas flera. Stava nöjer sig dock när en uppdelning hittats och släpper sedan problemet eftersom en uppdelning innebär att ordet är rättstavat. Kann och Sjöbergh vill nu gå vidare för att veta vilka enskilda ord som ingår. Då Stava bara hittar en tolkning av ordet är problemet redan löst. Det är när flera uppdelningar existerar 14

som de ställs inför problemet att välja vilken av dessa tolkningar som är den mest troliga. Tvetydiga sammansättningar Det problematiska vid uppdelning av ett sammansatt ord i sina komponenter är att hitta den uppdelning som är den mest troliga. Kann och Sjöbergh presenterar ett flertal heuristiker för att lösa uppgiften [11]. Ett sätt att välja komponenter är att välja den tolkning som innebär minst antal komponenter i ordet. Det semantiska sammanhanget kan också analyseras. De 100 ord som står framför eller efter sammansättningen innehåller eventuellt någon eller några av komponenterna i sammansättningen. Andra statistiska metoder är möjliga, att exempelvis beräkna sannolikheten för att en komponent ingår i en sammansättning samt sannolikheten för vissa mönster av ordklasser för komponenter i en sammansättning. Den metod som visar sig ge bäst precision är att kontrollera sannolikheter för att ordets tecken-4-gram ska vara gränsen mellan komponenter. Vissa teckenkombinationer förekommer bara i gränsen mellan komponenter i ordsammansättningar, medan de allra flesta gränser består av teckenkombinationer som också kan förekomma inuti ord. Frekvensen för alla tecken-4-gram i sammansatta ords komponenter alltså inte i själva gränsen beräknades. Det tecken-4-gram som har minst sannolikhet att förekomma inuti ord är den mest sannolika gränsen mellan sammansättningens komponenter. 15

Kapitel 3 Genomförande Genomförandet bestod i huvudsak i att modifiera Kea så att html-kodning användes som en del i klassificeringen, men också i att anpassa Kea till den struktur webbplatser kan ha. Genomförandet omfattade dessutom att använda Kea omodifierat för att kunna göra en jämförelse mellan de två systemen. För att använda Kea omodifierat lades visst arbete på att anpassa innehållet och strukturen hos webbplatser för att passa Kea som indata. I båda dessa fall var det nödvändigt att anpassa språkspecifika moduler till det svenska språket. Kea valdes som system att modifiera eftersom det är fritt tillgängligt och bygger på öppen källkod. 3.1 Nyckelfrasextraktion på svenska Då ett befintligt system för nyckelfrasextraktion för engelsk text skulle användas på svenska texter var vissa ändringar nödvändiga att göra. Delar av ett system för nyckelfrasextraktion är språkspecifika och dessa delar måste implementeras för svenska. Engelska är morfologiskt sett något mindre komplicerat än svenska, varför det kan vara svårt att konstruera dataprogram för svenska som är lika effektiva som för engelskan; detta gäller i första hand stemmare. Den algoritm för stemmare på svenska som skrivits av Porter [15] och beskrivs i avsnitt 2.8.1 användes. Liksom Porters algoritm för stemmare för engelska texter fokuserar algoritmen på att hitta suffix som kan raderas. Sammansättningar kan som beskrivet tidigare göra att förekomsten av vissa av ords komponenter inte kommer till del i statistik grundad på exempelvis frekvensanalys. Den splittrare som beskrivs i avsnitt 2.8.2 fanns vid tidpunkten för detta arbete tillgänglig på en server på KTH Nada och användes. Granskataggaren [4] är en HMM-taggare för svensk text, utvecklad på KTH Nada. Liksom splittraren fanns Granska tillgänglig för detta arbete och var den ordklasstaggare som användes. 16

3.2 Webbplatser De webbplatser som användes som träningsmängd och testmängd var webbplatser tillhörande nyblivna kunder hos Jajja Communications. Det rörde sig om relativt små kunder vars webbplatser inte redan optimerats enligt de förslag Jajja Communications gett. Webbplatserna tillhandahölls dels i form av URL:er, dels i form av URL:er tillsammans med en mängd nyckelfraser som Jajja Communications valt att tilldela sidan. Till de webbplatser som inte redan fått nyckelfraser bestämda valde jag ut ord och fraser från sidan. Webbplatserna delades upp i två mängder, en träningsmängd och en testmängd. Träningsmängden bestod av 32 webbplatser, testmängden av 19. Förutom på de 19 webbplatserna i denna testmängd användes också de båda systemen på tre ytterligare webbplatser. Dessa tre webbplatser tillhörde kunder där Jajja Communications hade tillgång till webbservrarnas filer med referer-loggar. I dessa referer-loggar gick det att se hur en sökning hos en sökmotor som genererat ett besök på webbplatsen sett ut. Mot dessa loggfiler mättes vilken täckning resultatet från de båda systemen utgjorde. Lokala kopior av webbplatserna gjordes och för att kopiera materialet från Internet användes unix-kommandot wget. Kommandot användes med lämpliga flaggor så att inte filer av en viss typ och över ett visst avstånd från indexsidan kopierades. 3.2.1 Filstrukturer Webbplatsernas filer kopierades och sparades i en filstruktur liknande den de var sparade i på respektive webbserver. Detta innebar att de var sparade i en struktur som inte alltid var platt; filer kunde ligga i kataloger som i sin tur innehöll kataloger med filer. Vidare innehöll givetvis filerna en mängd metadata i form av html utöver den text som är synlig i en webbläsare. För att på ett bekvämt sätt kunna läsa denna data användes ett färdigt mjukvarupaket [7] för att läsa html-filer. Detta paket användes för alla html-specifika delar av detta arbete. 3.3 Användning av Kea Kea består av två delar: en av delarna används för att träna och konstruera en klassificerare, den andra delen används för att tillämpa klassificeraren på nya data. Då Kea tränas används par av textfiler som indata där en av filerna innehåller de tilldelade nyckelfraserna och den andra filen innehåller hela texten från vilken nyckelfraserna är hämtade. Kea är inte skapat för att fungera med html-dokument och de dokument som gavs som indata innehöll inte några html-taggar. Med utgångspunkt från varje webbplats indexsida extraherades den synliga texten från de 17

dokument som gick att nå via sidornas länkar. Dessa texter sparades i separata filer. Till varje sådan textfil skapades också en fil för nyckelfraser. Varje webbplats hade ett tiotal givna nyckelfraser och dessa fick vara nyckelfraser för samtliga av de filer med extraherad text som skapats av webbplatsens innehåll. Det fanns då inte nödvändigtvis nyckelfraser i alla genererade textdokument, och alla tilldelade nyckelfraser fanns inte nödvändigtvis med i någon av texterna. Filerna placerades i en platt filstruktur och kunde sedan användas som indata till Keas träningssteg. För den data som utgjorde testmängd behövde inga filer innehållandes nyckelfraser skapas. Samma steg gjordes dock för att extrahera all synlig text ur html-koden och skapa en platt filstruktur. 3.3.1 Sammanställning av fraser Kea extraherar fraser ur varje enskilt textdokument och antalet extraherade fraser är valfritt, men begränsas givetvis av textens storlek. Tillsammans med varje extraherad fras presenteras den sannolikhet för att frasen ska vara nyckelfras som beräknats av klassificeraren. Eftersom målet med att extrahera fraser ur webbplatser var att få en mängd fraser för alla webbplatsens dokument användes dessa sannolikheter för att sammanställa de olika mängderna till en. Orden sammanställdes och sorterades efter den beräknade sannolikheten. Dubbletter kunde förekomma eftersom fraserna extraherats ur olika dokument. I det fallet behölls den av fraserna med högst sannolikhet medan den andra kastades. 3.4 Modifikation av attribut Kea är inte skapat för att extrahera nyckelfraser ur webbplatser utan ur enskilda textfiler. När systemet modifierades för att passa webbplatser fanns tillfälle att modifiera vissa av dess egenskaper. 3.4.1 Positionsattributet I Kea beskriver positionsattributet, formel 2.11, positionen för den första förekomsten av en viss fras i en text. Detta kan vara ett lämpligt sätt att representera position i texter där hela textinnehållet är samlat i ett dokument. Webbplatser är ofta uppbyggda av fler än ett dokument och skiljer sig på så sätt från andra typer av text, exempelvis rapporter och uppsatser. Vidare är det också vanligt att varje dokument på en webbplats inte innehåller stora textmängder, utan att den stora textmängden utgörs av webbplatsens alla dokument tillsammans. Detta betyder bland annat att ett ord som står sist i någon av texterna på en webbplats fortfarande kan stå förhållandevis nära den textens början. Eftersom en mängd dokument är relaterade till varandra inom en webbplats är det rimligt att positionsattributet inte ska vara isolerat till enstaka dokument utan på något sätt representera position mätt över hela webbplatsen. Att konkatenera alla dokument och beräkna positionsattributet 18

på traditionellt sätt inför en ny svårighet eftersom dokumenten i så fall måste ordnas. En webbplats och dess interna länkar kan betraktas som en riktad graf. Med utgångspunkt från webbplatsens indexsida kan då det kortaste avståndet till de övriga sidorna beräknas. I stället för att använda positionen för första förekomsten för en fras i ett dokument används dokumentets avstånd till indexsidan som ett positionsmått för alla kandidatfraser i dokumentet. Detta heltalsvärde normeras inte eftersom det är det faktiska avståndet som är intressant, inte om sidan relativt sett är långt ifrån indexsidan. Under de försök som gjordes var detta heltalsvärde dock alltid i intervallet [0, 3] till följd av hur webbplatserna spindlats hem. 3.4.2 tf idf Attributet tf idf ses som ett mått på hur särskiljande en fras är för ett dokument. På samma sätt som detta är ett intressant mått vid nyckelfrasextraktion ur vanlig text bör detta kunna vara ett bra mått vid nyckelfrasextraktion ur webbplatser. Ingen anledning fanns att förändra attributet. 3.4.3 Attribut för html Html består av en mängd taggar för att beskriva och formatera innehållet på webbsidor. Vissa av dessa har rent strukturella egenskaper medan andra formaterar texts utseende. Html-taggarna fick utgöra tre kategorier av kodning i detta försök. Kategorierna kallades head, style och tip. head Den första kategorin bestod av taggar som representerar sidans titel eller olika typer av rubriker. Följande taggar omfattades: h1, h2, h3, h4, h5 h6, thead, th, title. style Den andra kategorin bestod av taggar som används för att ändra texts utseende, exempelvis genom att ändra dess storlek, färg eller att göra den fet, understruken eller kursiv. Följande taggar omfattades: a, abbr, acronym, address, b, big, basefont, blockquote, cite, code, dfn, em, font, i, ins, label, legend, pre, s, samp, strike, strong, tt, u. tip Den tredje kategorin bestod av de html-element som gör att text visar intill muspekaren då denna hålls exempelvis över en länk eller en bild. Följande taggar omfattades: a, abbr, acronym, img. Varje kandidatfras associerades med booleska värden för huruvida den förekom inom några av taggarna i de olika kategorierna. Avsikten med detta var att lägga till en hänsyn till html i Keas ursprungliga algoritm. 19

3.4.4 Lingvistisk anpassning Förekomsten av sammansatta ord är stor i svenska. Det är inte orimligt att tro att en analys av dessa kan ge värdefull information i denna textanalys. Möjligheten finns att frekvent förekommande ord eller uttryck döljs i sammansättningar som är olika från gång till gång. Den i en webbläsare synliga texten extraherades från webbsidorna, varpå den ordklasstaggades av Granska. De ord Granska klassificerade som substantiv skickades sedan till splittraren. I de fall där ett ord gick att splittra lades dess komponenter till mängden fraser i den text varifrån ordet var hämtat. Dessa komponenter associerades inte med den html-kodning som ordet eventuellt var kodad med från början i dokumentet. 3.5 Implementation i Kea Kea bygger sin klassificerare med komponenter ur mjukvarupaketet weka [21]. Probleminstanser, indata till klassificeraren, representeras som egenskapsvektorer. Dessa egenskapsvektorer har olika typer av element beroende på var i programflödet de befinner sig. Egenskapsvektorerna modifieras genom att använda ett slags filter. Filter kan seriekopplas för att på olika sätt modifiera samma mängd av probleminstanser. I ett sådant filter implementerades de beskrivna attributen. Liksom i den omodifierade versionen av Kea användes varje dokument för sig som indata till programmet. De förslag som programmet levererade sammanställdes sedan för en hel webbplats och sorterades efter de sannolikheter programmet beräknat. 3.5.1 Kandidatfraser N-gram med taggning Kandidatfraserna i detta försök konstruerades genom att skapa uni-, bi- och trigram 1 av texterna. För varje n-gram noterades det i vilken kategori av html-kodning som någon av delarna hittades i. Om åtminstone ett av orden i ett n-gram hittades i en viss kodning ansågs hela n-grammet ha den egenskapen. Om samma n-gram hittades inom någon annan kodning på webbsidan adderades denna kodning till det första hittade n-grammet. Text som visades intill muspekaren invid exempelvis bilder och länkar lades till sist i texten. 3.6 Matematisk behandling av indata till Kea I den omodifierade versionen av Kea används två attribut, dels tf idf,delsposition, den normerade positionen för första förekomsten av en fras. Båda dessa värden är kontinuerliga, men för att användas i Kea diskretiseras dessa. Attributens värden är redan normaliserade till intervallet mellan 0 och 1. Detta intervall delas upp i fem 1 Ett, två och tre på varandra följande ord. 20